3D C/C++ tutorials - Software rendering
3D C/C++ tutorials -> Software rendering
Use for personal or educational purposes only. Commercial and other profit uses strictly prohibited. Exploitation of content on a website or in a publication prohibited.
To compile and run these tutorials some or all of these libraries are required: FreeImage 3.16.0, GLEW 1.11.0, GLUT 3.7.6 / GLUT for Dev-C++, GLM 0.9.5.4
Simple software renderer

The purpose of this tutorial is to help you understand the math and algorithms behind

  • multithreaded rendering
  • getting number of processor cores
  • creating threads
  • running every thread on a different core
  • setting the minimum timer resolution
  • thread synchronization
  • initializing, resizing and clearing color and depth buffers
  • primitive assembly
  • vertex shader
  • per vertex lighting
  • triangle visibility testing using homogeneous coordinates
  • triangle clipping using homogeneous coordinates
  • perspective division
  • front and back face triangle culling
  • triangle rasterization with perspective correct z and attribute values interpolation
  • depth test
  • fragment shader
  • nearest and bilinear texture filtering
  • 24-bit color buffer and 16-bit depth buffer
  • 2x2, 3x3 and 4x4 antialiasing

>> Simple software renderer <<
Software shadow mapping

The purpose of this tutorial is to help you understand the math and algorithms behind

  • rendering to textures
  • shadow mapping
  • bilinearly filtered shadows

>> Software shadow mapping <<
Fractal

>> Fractal <<
Gallery
© 2010 - 2016 Bc. Michal Belanec, michalbelanec (at) centrum (dot) sk
Last update June 25, 2016
OpenGL® is a registered trademark of Silicon Graphics Inc.