How does a computer render an object to the screen?

Are all computer graphics rendered using polygons? What I mean is, some computer geometries are mathematically represented in the form of equations (for example, CAD software).

Does the computer first have to tessellate those geometries before it can properly render the visualization to screen or are there other methods of getting the picture to the screen without having to tessellate an object?

Edit: I guess more specifically focused on the GPU. How dose the GPU do it? what kind of inputs dose it require, ie, what model formats dose the GPU work with? can it use a perfect mathematical representation directly or dose it tessellate the model itself before actually rendering to screen or dose the GPU require a tessellated model to begin with.

Also, what i mean by tessellation is the way a computer breaks down a mathematical representation of an object into a surface approximation of polygons (almost always triangles). The more polygons used, the closer the surface is to the actual object.


This is following up your comment on @nik's answer:

The vast majority of CAD systems use polygons (well triangles) to render their models.

They'll store the models in a variety of ways based on CSG (Constructive Solid Geometry) or B-rep (Boundary Representation) models for example, but when it comes to display these will be faceted and the triangles sent to the GPU for drawing.

Each system will have it's own solution for breaking the model into triangles.


I am not sure at what level of curiosity you are asking this question,
But, in general I'd refer you to the Wikipedia Computer Graphics page.

There is also A Critical History of Computer Graphics and Animation link there.
You could jump to the section of interest from their contents page.


Update: I wonder if your question is based on concepts related to this UnlimitedDetail site.

Most 3D graphics today are based on what’s called the polygon system; it’s a system that builds things out of little flat shapes called polygons.

...

The three current systems used in 3D graphics are Ray tracing, polygons and point cloud/voxels, they all have strengths and weaknesses. Polygons runs fast but has poor geometry, Ray-trace and voxels have perfect geometry but run very slowly.

etc...


If you really wish to go deeply into the mechanics of the GPU and rendering techniques, the following book can now be found online:

GPU Gems 3, Addison-Wesley Professional (August 12, 2007)

GPU Gems 3 is edited by Hubert Nguyen, Manager of Developer Education at NVIDIA. Hubert is a graphics engineer who worked in the NVIDIA Demo Team before moving to his current position. His work is featured on the covers of GPU Gems (Addison-Wesley, 2004) and GPU Gems 2.

GPU Gems 3 is a collection of state-of-the-art GPU programming examples. It is about putting data-parallel processing to work. The first four sections focus on graphics-specific applications of GPUs in the areas of geometry, lighting and shadows, rendering, and image effects. Topics in the fifth and sixth sections broaden the scope by providing concrete examples of nongraphical applications that can now be addressed with data-parallel GPU technology. These applications are diverse, ranging from rigid-body simulation to fluid flow simulation, from virus signature matching to encryption and decryption, and from random number generation to computation of the Gaussian.

Previous editions are also online and are still very much worthy of reading:

GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time Graphics, edited by Randima Fernando, March 2004

GPU Gems 2: Techniques for Graphics and Compute Intensive Programming, edited by Matt Pharr, March 2005

Programming Vertex, Geometry, and Pixel Shaders, Second Edition, by Wolfgang Engel, Jack Hoxley, Ralf Kornmann, Niko Suni, and Jason Zink, December 2008

The last is an uneven draft of a book, but extremely valuable in places. The lighting chapter by Jack Hoxley gives detailed explanations of various lighting models along with working shader code.


Rendering something alway means you use polygons. It´s even used by artists. Polygon means plane figure. To create something three dimensional you always take several polygons and put them together. The more plane figures you use, the more details you can add to your three dimensional figure. Equations are used to calculate things like for example the radiance of the object.

To fully understand this procedure you should read the wikipedia article nik already mentioned.

edit.: I am not sure anymore about my interpretation of what you mean by "tesselate an object". If possible, could you explain it in detail?