fan vs strip....


In pure term of speed, can someone tell me if stirps are faster than fans ??
I don’t think so because both of them only need one vertex/uv/normal to compute the next triangle.
I am wrong or not ??


The truth…

It all depends on the 3D hardware you’re running on.
Some require fans to work, and will then convert strips to fans internally, some other do the reverse…

I use strips often, but you’d better look at the 3D cards docs to find out which format is the most commonly used internally.

It depends on the model data that you got. From what I have seen, many people have a set of strips with a set of fans because it is not always optimal to use entirely one method. Some modeling programs can actualy save the model with a set of strips and fans.

I don’t think you should ever code GL so that it will work optimal for a specific card, it is up to the authors of the hardware drivers to make sure they implement OpenGL with both strips and tris in mind.


Strips and Fans are two different things entirely. Fans have a center point that every poly in the fan shares. Because of this they wrap in a circle and are very good at representing a circular plane but not very good at representing a long strip. If you try to take a long strip of polys and break it into fans then you will have many small fans 1 or 2 polys in length which doesn’t do much for you. Likewise triangle strips are good at repesenting long strips of triangles but cannot be used to represent a fan without breaking them into many small strips which again minimizes the gain of using strips or fans in the first place.

The reason fans and strips can be very fast is because you represent the poly with shared
vertices that you don’t have to specify everytime. The longer the strip or fan the more efficient your list of vertices will be representing the data.

TO sum this up: Use both types. Both work well for different situations but neither one works well for both. A while back I had to impliment a class called a geometry optimizer that looked at the mesh and broke it into fans and strips. If I could get more polys in a fan then I created a fan. If I could get more polys in a strip then I used a strip. Most things optimized into many sets of fans and strips.

Then again some cards work just as fast using regular old face index’d arrays without the need to create stips and fans so you might look hard what you are doing and decide the best route.

Also, I have never seen a card that is faster at fans then strips or vice versa.