|
From: Frank C. <dev...@ch...> - 2005-06-19 07:16:36
|
On 19-Jun-05, at 2:09 AM, James W. Walker wrote: > On Jun 18, 2005, at 9:41 PM, Frank Condello wrote: > >> Another problem is that retained or not, no mesh is guaranteed to >> be static. Even if you track data locks/replacements there's no >> "safe" time to build and use a display list (even without software >> backface culling). > > When you say "mesh" here, are you speaking specifically of the Mesh > geometry, or do you use the word mesh in a more general sense? Trimesh is what I meant (not sure its worth optimizing other types). > I usually use TriMesh geometries. I would think that one could > invalidate a cached display list on Q3TriMesh_UnlockData and > Q3TriMest_SetData, and rebuild it just in time. Yes, but if someone is updating a trimesh every frame (which isn't an unreasonable expectation) you'll be compiling a new display list every frame, which will certainly be slower than using the current vertex array path. To use display lists to their potential you need a geometry type that's guaranteed never to change, or some sort of flag for existing geometries that allows you to declare them as "static" once their data is set. Frank. |