Model optimization

Advanced OpenGL source port fork from ZDoom, picking up where ZDoomGL left off.
[Home] [Download] [Git builds (Win)] [Git builds (Mac)] [Wiki] [Repo] [Bugs&Suggestions]

Moderator: Graf Zahl

Locked
User avatar
Risen
Posts: 39
Joined: Fri Sep 02, 2005 17:48
Contact:

Model optimization

Post by Risen »

I'm trying to optimize a model I'm creating, and wanted to know the opinion of more experienced modelers and those who work with the renderers as well. I have two questions.

First, see attached image. As shown, I have 2 quads covering 6 points, A-F. One at ABEF, one at BCDE. They exist in the same plane. Is is best to leave the model as-is, or to optimize this to a single ACDF quad? In doing so, It would leave a 'hole' at ABC and another at DEF, but the 'hole', geometrically, has no area. As also shown in the image, I can't eliminate vertex E because other geometry relies on it. (B may or may not be eliminated.) Is it better to leave no holes, or to reduce polys? Why?

Second, is there a method available in Blender 2.44 to optimize a mesh without doing it by hand, that also preserves its geometry exactly? I've tried the 'poly reducer' script, but it deforms it considerably. It seems like the kind of optimization I'm trying to do could be easily automated, but I don't know how.
Attachments
ABEF + BCDE, or ACDF? What happens at E?
ABEF + BCDE, or ACDF? What happens at E?
optimize.png (4.57 KiB) Viewed 736 times
DaniJ
Posts: 130
Joined: Sat Oct 08, 2005 19:22

Post by DaniJ »

It depends a lot on what Graf wants to ultimately do with the model renderer. Strickly speaking, because the two quads exist on the same plane and their are no polys sharing one or more edges whose angle is >= 45 (but even that value can differ depending on issues too broad for me to cover given I don't know GZDoom's model implementation) then in general; yes they could be optimized out by combining them.

However, if Graf plans to implement any of the following then in general; no:

Poly LOD (for example the ATI Trueform extension, or a built-in adaptive tesselator).
Dynamic mesh deformation
Per-vertex lighting on models (e.g. traditional dynamic lights).
Built-in tri-stripping or similar algorithm designed to compact vertex data by reusing vertices.

However, speaking as a programmer on Doomsday and an experienced modeller I would advise against it unless you are over your poly budget and there really is no other way to meet the budget. If the software mandates a complete mesh (i.e. a common edge must have the same number of vertices on each side) then you can not combine them.
User avatar
Risen
Posts: 39
Joined: Fri Sep 02, 2005 17:48
Contact:

Post by Risen »

Thank you! I still haven't found a method to automate the optimization, but I've got a good method down to do it by hand now, and I'm getting better at not generating models that need optimized to begin with.
Locked

Return to “GZDoom”