My question could be stupid but I didn't find good example of triangle strip utilization:
http://i.stack.imgur.com/KL8jk.png
With vertices like that:
A: -0.5f, -0.5f, // Bottom left.
B: -0.5f, 0.5f, // Top left.
C: 0.5f, -0.5f, // Bottom Right.
D: 0.5f, 0.5f // Top right.
----------------------------------
B--D
|\ |
| \|
A--C
Sometimes, in examples, we can find this configuration:
or this:
What is right? I've tried both and both works.
Now I would like to use degenerate triangle to merge two square.
B--D F--H
|\ | |\ |
| \| | \|
A--C E--G
Here is what I've got:
ABCD + DEEF + EFGH
But here again, I've got some artifacts sometimes.
A degenerate triangle has all three of its vertices lying on the same straight line, so the triangle is squashed completely flat.
A degenerate triangle is the "triangle" formed by three collinear points. It doesn't look like a triangle, it looks like a line segment. A parabola may be thought of as a degenerate ellipse with one vertex at an infinitely distant point.
A triangle strip is a series of connected triangles. Because the triangles are connected, the application does not need to repeatedly specify all three vertices for each triangle. For example, you need only seven vertices to define the following triangle strip.
The primary reason to use triangle strips is to reduce the amount of data needed to create a series of triangles. The number of vertices stored in memory is reduced from 3N to N + 2, where N is the number of triangles to be drawn. This allows for less use of disk space, as well as making them faster to load into RAM.
If you use backface culling, the two configurations would not produce the same result. In the ABCD case, BCD is counterclockwise, whereas in the ABCCBD case, CBD is counterclockwise. The right way to draw two quads would depend on whether you care about orientation. I would suggest ABCDDEEFGH.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With