Skip to main content
  1. Posts/

Software Rasterizer (and OpenCL implementation)

education

School assignment in year 2 to make a Software Renderer

Assignment Requirements:>

Assignment Requirements: #

Rendering:>

Rendering: #

  • Perspective correct texturing and depth interpolation;
  • Sub-pixel & sub-texel accurate for all input;
  • Correct sorting using z-buffering.
Scene:>

Scene: #

  • Object must requires a scene graph, at least 3 levels deep;
  • Object must be user-controllable at various levels;
  • Application must load the scene and materials from obj/mtl file(s);
  • Scenegraph does not have to be loaded from a file.
Architecture:>

Architecture: #

  • Clear data ownership;
  • Scene must clean up completely when deleted (no leaks);
  • Triangle & vertex data must be relocatable / serializable.
Performance:>

Performance: #

  • Not a requirement (however, slideshow = no respect).
Debugging:>

Debugging: #

Normal Debugging
Hodgeman Clipping
Hodgeman Clipping
Showcase:>

Showcase: #

Example image
Example image
OpenCL:>

OpenCL: #

For a later assignment in year 3 I took the opportunity of writing some code for the GPU, To add a “hardware renderer” to this framework. mostly because i thought it would be funny.



Daniel Wustenhoff
Author
Daniel Wustenhoff
‘Software Engineer’