Jump to content
  • Advertisement
Sign in to follow this  
meteorstorm42

Writing a software rendering pipeline . . . how to optimize?

This topic is 3159 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi guys, So I'm implementing a simple graphics pipeline in software, and I had a few questions about keeping it fast (as fast as software can allow anyway...). So, I have a list of triangles for the geometry. First, I want to make sure... I have to do these things for EVERY frame, right: 1 - transform vertices from object -> world -> clip space ( using matrices, some of which I can combine before applying to vertices ) ( so I need to create a new list, for clip-space triangles, empty if from the previous frame, and fill it with new triangles - transformed from my geometry list ) 2 - clip triangles ( remove a bunch of triangles from the above list - outside viewable area ) ( add some new ones - for triangles that are partly inside / outside viewable area) 3 - homogenous divide & viewport transform ( modify position values of triangles in the above list of clip-space triangles ) 4 - rasterize ( create a list of fragments, empty it from the previous frame ) ( add a bunch of fragments for triangles in the viewable area ) 5 - texture look-up ( ... haven't messed with this part, because I'm just using colors not interpolating yet ) 6 - depth buffering ( go through all fragments, check depth, draw accordingly ) Does that sound about right? Those linked lists of transformed triangles and fragments, especially having to empty and refill them each frame... It seems really expensive. But I do have to do all that, right? Am I overlooking any obvious speed-up?

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!