[ELI5] Why can computers not make curves?

906 views

Every 3D modelling software simply uses a series of flat polygons, small enough to appear curved, to created spheres etc. Why? Why can technology even today find it easier to render literally millions of little triangles, than just one curve?

In: Technology

16 Answers

Anonymous 0 Comments

They can. In 2D, [vector graphics](https://en.wikipedia.org/wiki/Vector_graphics) can draw curves using [splines](https://en.wikipedia.org/wiki/Spline_(mathematics)). If you use a vector graphics program like Adobe Illustrator, or an image format like [SVG](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) you’ll see first-hand that you’re working with smooth curves that never become jagged no matter how much you zoom in.

For 3D graphics, one common technique is called [Constructive Solid Geometry](https://en.wikipedia.org/wiki/Constructive_solid_geometry). You can zoom into a CSG model as far as you want and it will continue to be smooth. Many CAD programs use a technique called [NURBS](https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline) to specify curve surfaces like airplane wings and car bodies.

But developers often don’t use these techniques because it’s slower to render. The root cause is that polygons are natural fit for the kind of parallelization a modern graphics card can do, while techniques for dealing with curved surfaces are not. A modern graphics card will have over 1,000 processors working in parallel. A modern graphic pipelines will take the vertices of a 3D model, rotate and scale it in the scene, transform it into triangles, use a texture to paint it to a 2D screen with a z-buffer, then apply various shaders and effects on top of that, all inside the GPU, all at a parallelization factor of 1,000. It’s very hard for fancier techniques to compete with that!

You are viewing 1 out of 16 answers, click here to view all answers.