- The lightmap layouting tries _very_ hard to find a good layout. This incurs a lot of looping over the geometry data ... in that aspect the algorithm is horrible. So it may not actually be an infinite loop, just that it takes a _long_ time.
- A better "hack" against black speckles than disabling self-shadowing completely could be to slightly offset the "surface" point (simple, but still risk of speckles) or ignoring shadows from triangles adjacent to a vertex (better result I think, but harder to implement - esp. finding adjacent triangles).
- No idea why lights would be ignored.
Working spotlights sound good!
And on posting screenshots, it's okay to choose shots where the computation issues are barely or not visible ;)
One thing to note, I get an assert trigger if I compile in debug mode (which I want to do right now). It happens in the xml shader plugin inside ReadCondOperand() (condeval.cpp:1928). I've just been commenting out this assert so that it will leave me alone and everything still seems to be okay. Hope this is okay. Since my work is concerned with lighter2 mostly I've figured it wasn't a big deal.
Thanks for the tip! I'm still learning about best practices concerning branch maintenance and merging so I think the lesson here is check the revision checkin notes to make sure the trunk is stable before you merge.
"Note that I used an old version of walktest.exe to render these images (from the 08 SOC branch for lighter2). The one in my branch is still not working with light maps for unknown reasons."
I just make a checkout of your branch and looked to see what the problem is. Seems that you just happen to have a broken revision of CS (shaders don't compile). If you merge trunk (up to and including r32656 should be enough) into your branch it should then work (you may need to clear your shadercache too).