I think we are optimizing the wrong thing. I think I'm not alone in wanting round objects more than perfectly ray-traced but polygonal objects.
I think we are optimizing the wrong thing. I think I'm not alone in wanting round objects more than perfectly ray-traced but polygonal objects.
Unreal 5's Nanite system is a big step up but it's brand new and unique. Not many games are out yet and no other big engines have a competitor technology.
- "Infinite" detail, like models that would be described by curves and others are mathematically absurdly expensive. And when you need your entire frame to be out in 16ms, there really isn't much space to keep both the advancements _and_ new very expensive math. It's done for some things like font rendering (see Slug), but it would be horrible for everything to be done that way.
- All of the tooling is still made around triangles and exporting meshes made out of triangles, because that's how everyone works.
- It's how everyone works because your GPU is good at one thing: triangles. It has dedicated units for that single goal: take triangles, and rasterize them to the screen. So, even if you made a brand new GPU with a Bézier Engine :tm: in there to make it efficient... well you still have to support all of the GPUs that only know how to do triangles, and you're back to doing math to transform these into triangles.
- Even if you do that, surprise, your screens don't do curves either, nor do your framebuffers! They're a bunch of pixels, so you just transferred your aliasing problems from "triangles along a grid don't look good" to "you need to match your curve to your grid", and if your detail becomes small enough, you now also have aliasing there.
- There's nothing that we have in this world that is round and we can't do a convincing job of with triangles. Sure, maybe something that has absurd scale, like a planet you can both see from outer space and up close: that'd be a lot of triangles to make it look smooth at all angles. It would be kind of performance wasting, but you can do it. And techniques like Nanite would actually even fix the problem a little bit.
Secondly, raymarching usually involves something different than NURBS, which are Signed Distance Functions (which Inigo,the author, is quite fond of). These have no proper authoring tools to support them. The few games that I know of that uses them are Dreams and Claybook, and that's only as a descriptor of geometry. Dreams then transforms those SDF Into point clouds, then into triangles. And Dreams has basically been the research project of an employee they went through every possible failure before reaching something tolerable.
The smoother the edges the more polygons there are. The more polygons there are the more work the processor has to do to render them. In a very basic sense.
Now, it is absolutely possible to round the corners without incurring heavy processing cost but then you’re probably not going to get good collision, instead you’ll get incredibly obvious clipping (when one seemingly solid object passes through another without triggering collision).
So game developers have to make a choice: look good in still photos or look good in gameplay? (Clipping is a jarring experience while playing). Bonus benefit: if you do it right the lower polygon count and less fancy graphic stuff means your game runs on a wider variety of hardware (smartphones, switch, Xbox/PlayStation, PC, specialty stuff).
And that’s all not even getting into the cost of paying an artist to round those corners. Do you balloon your art payroll and have dozens of artists working on a few hundred “perfect” assets or would you rather they work on thousands of assets that are styled consistently and damn the real world verisimilitude? Games are a passion for many but capitalism invokes a cost when making them.
The approximation to polygons when rendering is a non trivial task. Individual curved patches can be easily approximated to triangles but once you connect those patches together you have to ensure that the tessellated triangle edges match between neighboring patches. For the most part it is just easier and more performant to model with triangles and brute-force render them. One day curved surfaces may be a better choice but currently triangles are dominant.
Those require NURBS, Non-uniform rational basis spline, and (almost) no one does NURBS assets, because it is most of the time it is a unnecessary pain to use and manipulate them directly.
Yes.
They are unlikely to ever be 'round'. Perhaps when the entire scene, and not just reflections is rendered by raytracers. That way one can represent mathematically correct curves. At that point we'll basically be throwing away all advancements in GPU tech.
Besides, it's utterly unnecessary when we can fake roundness by increasing the number of polygons and by clever illumination.
The following article provides an in-depth exploration of how polygon count affects performance.
https://www.linkedin.com/pulse/polycount-understanding-model...