Nick Nougat

02-10-2003, 09:01 AM

Hi!

I'm about to reengineer the model-drawing part of my engine from rudimentary and unoptimized "just get it on the screen" to implementing octrees for frustum culling and collision checking. Sooner or later I'm planning to use some form of tri-stripper, too. Now, thinking about how to best organize the vertex data I see this problem coming up:

If I correctly understand how strippers work, they organize your vertex data into triangle strips, the longest ones being the best of course. So, how I see it, if I want to use frustum culling, I will break up those optimized strips again as soon as the model is only partially in the frustum. Furthermore, since my data is reorganized into strips whose 'orientation' on the model surface is arbitrary, could I run into problems (like degenerate strips, or even vertex data not suitable for strip interpretation ->i.e. data that will lead to a different shape than the one intended) by 'cutting' out a part of a strip via culling? (The worst case I can imagine: every second triangle(its center) of a strip lies in the neighbouring cube of the octree, getting culled away, if I culled per cube-volumes).

So could anyone share their knowledge with me and tell me if my perception of the problem(s) is correct?

Is there any golden rule for organizing your model data?

Thanks,

Nick

I'm about to reengineer the model-drawing part of my engine from rudimentary and unoptimized "just get it on the screen" to implementing octrees for frustum culling and collision checking. Sooner or later I'm planning to use some form of tri-stripper, too. Now, thinking about how to best organize the vertex data I see this problem coming up:

If I correctly understand how strippers work, they organize your vertex data into triangle strips, the longest ones being the best of course. So, how I see it, if I want to use frustum culling, I will break up those optimized strips again as soon as the model is only partially in the frustum. Furthermore, since my data is reorganized into strips whose 'orientation' on the model surface is arbitrary, could I run into problems (like degenerate strips, or even vertex data not suitable for strip interpretation ->i.e. data that will lead to a different shape than the one intended) by 'cutting' out a part of a strip via culling? (The worst case I can imagine: every second triangle(its center) of a strip lies in the neighbouring cube of the octree, getting culled away, if I culled per cube-volumes).

So could anyone share their knowledge with me and tell me if my perception of the problem(s) is correct?

Is there any golden rule for organizing your model data?

Thanks,

Nick