Sign in to follow this  
MrBrown

Quads Necessary?

Recommended Posts

MrBrown    122
Hi all, I have just a general question about 3d modelling. I am working on a demo for a project of my own; I will eventually call for and assemble a team once I have made good progress. I am using the Open Graphics Library with C++ for the Windows Vista system. I would like to ask a question about in-game art content (i.e. environment, and characters etc.). When creating a character for instance, is it just good practice to construct the entire model with quads or is it absolutely necessary? The reason I ask is because, as a very experienced programmer as well as a decent (but noobie) artist I believe the only reason could be speed or memory? But before I thought this, I assumed OpenGL drew triangles requardless if it used glquads or gltriangels? If I want to add any detail to my models after constructing the basic shell I find it near impossible to make quads throughout my model as this requires me to cut around the entire model (thus wasting memory anyway by creating more polygons?). So basically, is it really bad if I just use triangles throughout? Is it a matter of preference or, from a professional p.o.v does it make a real difference? Thanks all :) Ryan

Share this post


Link to post
Share on other sites
Rattenhirn    3114
It's neither good practice nor necessary to constructs models out of quads. Often it is even impossible.

Rendering a model using a quad list can be faster than rendering the _same_ model using a triangle list, because it has to send only 4 instead of 6 vertices per quad. This cost can be reduced by a vertex cache / post transform buffer in the graphics hardware.

It's possible that for some hardware, the driver will turn the quad into two triangles anyaways, completely removing any advantage.

Don't forget triangle strips and triangle fans. Those are well supported by most graphics hardware and need even less vertices per primitive. On the downside, you'll have to insert degenerate triangles or "reset" indices (if your hardware supports that), which will decrease the throughput again.

So, basically, it all depends on the target platform, but triangle list are the safest bet for all current platforms and 3d packages.

Share this post


Link to post
Share on other sites
MrBrown    122
Thank you Rattenhirn, that's exactly what I needed to hear. I have spent the last year or so teaching myself 3dsm and I have built some great stuff, but none of it was completely quads. I was getting worried that you might have to be a greatly experienced modeler to even build a basic character. lol

Thanks again,

Ryan

Share this post


Link to post
Share on other sites
eld    162
It's an artistic thing,

modelling the model with quads, and a nice polygonflow will usually make
things work and look better.

But it mainly comes from the world of subdivision surface highpoly modelling, where you're mostly better of avoiding triangles at all.


when doing random game model modelling, triangles are not a big issue at all.

Share this post


Link to post
Share on other sites
phresnel    953
If rendered in software, or if true quads are supported by hardware, quads would be interpolated smoother between vertices.

Consider that in a triangulated quad you have actually two isolated areas, in which interpolation is done within them, and those two triangles are then glued together at the border. Obvious, on real quads, that interpolation would be smoother. Taking this further, think of real disks, with a normal N and a center C, instead of approximating it with a fan (ugly in rasterized graphics), or spheres, or other higher order primitives.

Rule of thumb: The less approximation, the better. But probably there are exceptions to this.


edit: Compared to triangle-strips, there's no bandwidth advantage for quads for an equal number of vertices: It takes 2 startup nodes, plus 2 nodes for each triangle-pair/quad:


Quad Strip (exact layout == implementation detail):
1--3--5--6
| | | |
0--2--4--7

Triangle Strip (with at least the quality of a quad):
1--3--5--7
|\ |\ |\ |
| \| \| \|
0--2--4--6

Triangle Strip with worse quality:
0--2-----4
| / \ /|
|/ \ / |
1-----3--5


But the latter is ugly and really out of discussion (one could also reduce the quality of the quads).

Share this post


Link to post
Share on other sites
BCullis    1955
If you start out modeling the right way, quads are fairly easy to maintain and (IMHO) allow for easier cutting and subdividing if you want to add detail. An all-quad (or mostly quads with triangles here and there) model will have nicely flowing edge-loops that are easily subdivided, split, rotated, etc.

Usually, quads are easier to maintain in a box-modeling/subdivision approach. Especially in character modeling I always have an easier time working from cylinder primitives than trying to extrude or use splines.

Attention is paid to topology more so in organic modeling than in hard-edge modeling (i.e. a bear vs a starship), so it really depends on what you're modeling as to whether or not you need to be picky about your polygon types. More than anything, it's good practice to avoid anything more-sided than a quad.

If your model is static, then you can go nuts, as it will never have to deform anyway.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this