Quick one this time; just been doing some Intel bugfixing and testing. The Intel 965 seems to interpret D3DSHADE_GOURAUD and D3DSHADE_FLAT in a very odd manner indeed when combined with shaders. Fortunately I've just been able to get rid of them entirely from the engine.
More speed too, and with more optimizations to come. Particles and sprites are the last remaining items to get another working over, and there's something else with MDLs I want to try.
Then I think I'm into a final round of testing and might release the early beta. It won't happen till next week though, and that means towards the end of next week, not Monday.
The RMQ folks have the software Quake MDL lighting code now so it'll be interesting to get feedback from them on it.
______________
Update: the experimental "something I wanted to try with MDLs" didn't work out too good. In theory it could have avoided even more vertex buffer updates by splitting lastverts and currverts into two buffers, but it ended up being slower (owing to two buffer locks per mdl, plus two walks through the in-memory copy of the verts to update the buffers) and it broke muzzleflashes. Nice idea though, and sometimes you do just have to try these things out.
Wednesday, February 16, 2011
DirectQ Update - 15th February 2011
Posted by
mhquake
at
12:03 AM
Subscribe to:
Post Comments (Atom)
3 comments:
Define "very odd." Is it a driver glitch?
> Define "very odd." Is it a driver glitch?
Odd as in it applies the render state to texture coordinates instead of (or as well as) to colours. It only affects the UI elements and particles (and presumably sprites too, but I didn't check) as these are the only things left that take a colour as input (MDLs are now very different), only happens on a hardware VP device, and only with shaders.
As soon as you switch back to flat shading these go as if all 4 texcoords were {0,0}.
I presume that it's a driver glitch as I can't see any obvious code bugs, and the circumstances that trigger it are very limited and specific.
I'm glad you worked around it efficiently, in any case. What was with VQuake's method of rendering that seemed so distinctive?
Post a Comment