Voodoo3 Win32 wierdness

  • Here you see the large polygonal floor of a room. It is textured and lightmapped. There is a little light spot under the guy near the center. (note that red and blue are reversed in these screenshots :).
  • Here's the same picture with only the lightmap showing.
  • Now we rotate the view a little bit. All hell breaks loose as soon as one of the polygon verts is clipped by the viewport. Note that the lightmap warping seems to radiate from a vertex over in the upper left area. that is the 1st vertex in the GL_POLYGON, which presumably gets drawn like a GL_TRIANGLE_FAN...
  • Here you see the same picture with the normal texturing re-enabled. You see that the texture warping doesn't occur with the normal texture, only the lightmap. Here are some more angles that demonstrate how the lightmap texture is further warped.

    Here is a 3.5M mpg animation showing the problem.

    I am rendering the scene using vertex arrays for the polygon, and texture coord arrays for the textures. I have tried non-square lightmaps, and square lightmaps. I have tried mipmapping the lightmaps.

    I think for some reason the texture coord array for the lightmaps is getting screwed up. Could the renderer be skipping one of the texture coordinates when a vertex is clipped? I suspect that maybe the renderer is silently adding in an extra vertex to the polygon, but forgetting to add it to the texture coord array... But why does it work correctly with one set of textures?

    I only see this occuring with the 3dfx Voodoo3 driver for Win98. It does not occur with the Linux Mesa/Glide driver for the same card, nor with a Voodoo2 under linux. It also does not occur for the TNT card and driver for Win98, nor the GeForce 2.

    Has anyone seen a problem like this before?


    jwatson@tempusmud.com
    Last modified: Sun Sep 24 16:40:54 EDT 2000