d3drs_wrap[0-7] ???

David Welch welch at cwcom.net
Thu Oct 21 17:34:48 CDT 2004

On Thu, Oct 21, 2004 at 09:43:34PM +0200, N. Dahn wrote:
> Hopefully this isnt the case, and according to this
> http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dx8_c/directx_cpp/graphics_using_9bn7.asp
> i have luck for this time i think. :) Comments?
> Okay, i think i got one step further: on gamedev.net i found the
> suggestion to use glTexParameteri(GL_TEXTURE_2D, TEXTURE_WRAP_U/V/W,
> wrapParm). Besides, could this also be an 3D Texture? I think I worked
> it out and im going to try it out now, but theres one thing bothering
> me: as mentioned earlier in d3d there exists the d3dwrapcoord_3 flag
> which wraps textures through the 4th dimension (that should be time).
> However, i was unable to find _anything_ going into that direction in
> opengl so i stubbed it out for now. Does anybody know how to proceed
> with this? 
What you're suggesting won't work. Texture addressing 
(D3DTSS_ADDRESS[U,V,S]) and texture coordinate wrapping (D3DRS_WRAP[0-7]) 
apply at different stages in the 3d pipeline and have different effects.

Texture addressing affects what happens when a texture lookup
is done with coordinates outside the range 0 to 1 - D3DTADDRESS_REPEAT
ignores the integer part of the coordinate, D3DTADDRESS_CLAMP samples
on the edge of the texture, etc.

Texture coordinate wrapping affects interpolation of texture coordinates
across a triangle. When wrapping is enabled for a component of a texture
coordinate set then interpolation takes the shortest route across the
triangle (considering 0 to be next to 1). So if we have a triangle with
one vertex with texture coordinate (0.7, 0) and another vertex with
texture coordinate (0.1, 0) and wrapping is enabled then pixels between
the two vertices will get coordinates starting at (0.7, 0) and going up to 
(1, 0) then from (0, 0) up to (0.1, 0). With wrapping disabled the 
coordinates will start at 0.7 and go down to 0.1. 


More information about the wine-devel mailing list