Mobile Software Renderer - Use of triangle strip

Started by
0 comments, last by Ravyne 15 years, 9 months ago
Hi, I am trying to develop a software renderer for mobile devices. My development language is C++. The target platform is BREW and target processor is ARM 7(no floating point support). I have thought of using triangle strips for rendering meshes. I was going through some articles on gamedev.net regarding use of triangle list over triangle strips : http://www.gamedev.net/community/forums/topic.asp?topic_id=456455 http://www.gamedev.net/community/forums/topic.asp?topic_id=300087 I know that although these articles have mentioned rendering using GPU (which is not available in my case), still i would like to know is there any problem using triangle strips for software rendering. The reason why i thought of using triangle strips is bcoz i can store previously transformed vertex positions. So i dont need to re-tranform the same vertex positions again for a new triangle which shares the same vertices. Pls do let me know any information regarding this. Thnkx in advance
Advertisement
You don't need triangle strips for that and, in fact, triangle strips are generally not preferred anymore due to the difficulty of generating optimal strips from a mesh (and how little, if any, gain there is on modern graphics cards). Triangle strips have a small advantage only because they make more optimal use of the limited vertex cache.

What you really want to do in a software 3D engine is to avoid performing transformation on a vertex more than once. An indexed vertex buffer is a better choice for this. Instead of processing each triangle as 3 vertices, you put *all* vertices of a given mesh into a buffer and transform them all in one fell swoop. Then, triangles are defined by 3 indices into the output vertex buffer (which have already been transformed) so each triange is just 3 simple look-ups.


I recall this page having a lot of good information of software rendering and the software transformation pipeline in particular... The articles you want to read are "The Poly Pipeline" and "The way your 3D engine should be".

throw table_exception("(? ???)? ? ???");

This topic is closed to new replies.

Advertisement