Quads Necessary?

Started by
5 comments, last by BCullis 15 years, 4 months ago
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
Advertisement
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.
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
DirectX doesn't even support quads...
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.
-----------------------------------------------------www.agonyart.com
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--7Triangle Strip (with at least the quality of a quad):1--3--5--7|\ |\ |\ || \| \| \|0--2--4--6Triangle 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).
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.

Hazard Pay :: FPS/RTS in SharpDX (gathering dust, retained for... historical purposes)
DeviantArt :: Because right-brain needs love too (also pretty neglected these days)

This topic is closed to new replies.

Advertisement