Why are polygons typically triangulated in computer graphics?

  • Thread starter Synthetix
  • Start date
  • Tags
    Geometry
In summary: This is done in the vertex program for 3D graphics cards.In summary, triangles are the simplest representation of a closed area and that is why they are used as primitives. It is also because trigonometric functions can be applied to triangles more easily than other polygons.
  • #1
Synthetix
5
0
Hello, I just have a basic geometry question (really within the context of computer graphics). What is the significance in triangulating polygons? Why not squares, or polys with more angles? Why triangles? Is that because it is the simplest representation of a closed area? Also, is it due to trigonometric functions being able to operate on triangles? Are there similar functions in mathematics for rectangles, etc? I never took geometry in school, so now that I'm working with 3D graphics these questions are on the brain!
 
Physics news on Phys.org
  • #2
The Sega Saturn used quadrilaterals as primitives. Any polygon triangle or higher can be used. Any polygon can be broken into triangles. There is potential in using higher polygons, but it also caused problems because triangles are the standard much of the hardware and software is optimized for them. Often when evaluating the tradeoffs it is better to just use more triangles.
 
  • #3
Hey Synthetix and welcome to the forums.

The main advantage is they form a plane (minimum to form one) and you can do them in parallel with the right hardware design (and algorithms).

The way graphics cards are setup nowadays, you have a vertex pipeline and a fragment pipe-line.

With triangles, these are well understood and the card can be optimized to do them per triangle since it is uniform for all triangles but not necessarily for other non-parametric primitives (like quadrilaterals).
 
  • #4
Thanks for the replies. I wasn't aware that the Saturn used quads as primitives. I read the Wikipedia entry on it and was surprised to see that triangular surfaces required the fourth edge to be a length of zero! That's just wacky, especially when we're so used to triangles. And texturing must be a real challenge in this case!

What about it terms of geometry (math) in general? Clearly, trigonometry operates on triangles, but are there similar mathematical functions that operate on other polygons? I haven't come across any computer graphics math from what I can recall that would be specific to anything more than a triangle or quad.
 
Last edited:
  • #5
Are you familiar with how triangles are rasterized (i.e textured) in terms of the technique?
 
  • #6
chiro said:
Are you familiar with how triangles are rasterized (i.e textured) in terms of the technique?

I'm familiar with it, although I don't completely understand all of the math involved. I use a Phong shader written in GLSL as part of the fragment program. I send the coordinates (vectors) of the lights, along with the vectors for each point in 3D. The shader seems to sort this all out, resulting in a nicely Phong-rendered scene.

I've recently tried to take on shadow mapping, and although I am getting a "result," it is not correct. How the fragment shader takes coordinates from lights and objects and rasterizes shadows is beyond me at the moment. I've of course used a lot of code taken from forums, etc., but again I really don't understand how the math is working (it's more of a "try this, oops, that doesn't work, try something else" approach).

That's why I've decided I need to understand the math better, not just "paste this code and see if it works." :smile:
 
  • #7
The basic texturing method involves interpolation.

You do is do a line by line scan of the triangle raster by associating the texture co-ordinates with the end-points of the triangle.

You then do a horizontal line scan and interpolate across each line for the texels (texture element) and that location on the screen buffer becomes the texel.

So in short, you do a series of horizontal line scans and each line retrieves the texels for that line and dumps that in the screen buffer which is what you see.
 
  • #8
Three points are the smallest number of points to define a plane, as chiro said.

Furthermore, any more points, and you have to CHECK they all fall on the same plane. Three points always define a triangle, but four points don't always form a quadrilateral!

Triangles are also a "finer" structure. If you're approximating a sphere with triangles, you will get a much more accurate result if you're using triangles instead of quads (given the same number of points).

Three ordered points also gives you a very fast way to take the normal of the triangle's plane. If your tri has coordinates(p0, p1, p2), then simply take the cross product of (p1 - p0) x (p2 - p1), and normalize it.
 

What is geometry?

Geometry is a branch of mathematics that deals with the study of shapes, sizes, positions, and properties of objects in space.

What are the basic elements of geometry?

The basic elements of geometry are points, lines, angles, and shapes.

What is the difference between a line and a line segment?

A line is a straight path that extends infinitely in both directions, while a line segment is a portion of a line with two endpoints.

What is the Pythagorean Theorem?

The Pythagorean Theorem states that in a right triangle, the square of the length of the hypotenuse (the side opposite the right angle) is equal to the sum of the squares of the other two sides.

How do you calculate the area of a rectangle?

The area of a rectangle can be calculated by multiplying the length by the width. The formula for area of a rectangle is A = l x w.

Similar threads

Replies
5
Views
3K
  • Precalculus Mathematics Homework Help
Replies
2
Views
1K
Replies
1
Views
2K
Replies
2
Views
2K
  • Special and General Relativity
2
Replies
40
Views
2K
  • Programming and Computer Science
Replies
29
Views
2K
Replies
13
Views
1K
  • STEM Academic Advising
Replies
13
Views
2K
Replies
22
Views
3K
  • Cosmology
Replies
29
Views
6K
Back
Top