Nurbs 3D engine?

Seems to be that realtime parametric surfaces were a bit of a rage back in the late 90s but have fallen out of use since then.

The real reason for this, I think, is the unpredictability of realtime tessellation. I sometimes do work in Second Life, and that engine is composed of “prims”, which are surface descriptions that are tessellated on the fly.

The problem with such surfaces is that you must carefully manage your rendering budget, otherwise you quickly run out of frame time. The SL client spends a lot of time tearing down/building up meshes for objects as they shift between LODs.

Yeah, the idea of infinite-scalable resolution for NURBs-like objects is a neat idea, but kinda plays heck with the concept of geometry optimization. It’s hard to predict where your bottlenecks will be when the geometry stage is in continuous flux. At least with triangles, you get a flat usage curve. You know your model will always use a maximum of X triangles at its highest LOD. So, it makes the math simpler for figuring out where to optimize.

Second Life also had issues when tweaking the LOD for the different tessellation levels. It’s hard to get realtime generated surfaces to look right at all detail levels.

It’s much easier to do that tweaking at the triangular level in your modeler of choice. You take a high-poly mesh, decimate it to a lower form and then tweak it to look optimal at that resolution.

It’s why you don’t see schemes like CLOD (continuous level of detail, where triangles are split/merged in realtime) used outside of things like terrain. It can change the shape of the object and UV coordinates are interpolated linearly which can look really odd on surfaces that are supposed to be curved.

Note that I am talking about realtime tessellated surfaces. What Treeform said is exactly how technologies such as NURBs are used for today… Generating high-detail meshes for normal maps, in the pre-processing stage of things.[/b]