Kristoffer Dyrkorn, November 4, 2022

10. Epilogue

(This article is the last part of a series. You can jump to the previous section if you would like to.)

I hope the tutorial was useful! The material presented here is the result of searching, reading and testing out concepts in code. Two sources I can recommend:

I have tried to go deeper into topics that are rarely explained in detail, such as the determinant adjustments, the need to use fixed-point numbers, and the relation between fixed-point numbers and subpixels. Hopefully this has helped you understand more of what high-quality triangle rasterization means.

Did you miss anything? Were some of the topics hard to understand? Was something incorrect? Feel free to give me feedback!

What next?

Although the concepts presented here might seem complicated, this is still a rather simple software rasterizer. For example, we can only draw single-colored triangles. If we wanted to use the rasterizer to draw triangle-based 3D objects, we would need to support more advanced pixel filling. Some examples:

Also, although writing an incremental version of the rasterizer gave a nice performance boost, there are still quite a few optimizations that could be tried out. A software rasterizer is never fast enough!

Some examples of ideas to explore:


Have fun!


Kristoffer


About the author

Kristoffer Dyrkorn is a Senior Principal Software Engineer at Autodesk. He makes software that renders geodata in architectural visualizations. He can be reached at kristoffer.dyrkorn AT autodesk.com.