Rendering¶
OpenCL¶
An Introduction to the OpenCL Programming Model OpenCL 3.0 Reference Guide
To run OpenCL on the CPU download the runtime.
Rasterization¶
Rasterization: a Practical Implementation
Optimizing Software Occlusion Culling
Generalized Barycentric Coordinates on Irregular Polygons
A Quadrilateral Rendering Primitive (implemented)
Tiny renderer or how OpenGL works: software rendering in 500 lines of code
Sampling¶
Antialiasing: To Splat or Not Filter Importance Sampling Blender Cycles implementation of importance sampling
Rasterization Workflow¶
Primitive Shader¶
The prim shader calculates the area per primitive. This will later be used to calculate the intensity. It also calculates the bounds per primitive for all wavelengths. There were a few optimizations that didn't work. To interpolate between different wavelengths, we have to store prims in the binning queue that are outside rrel. Only if the prim of all wavelengths is outside rrel can the primitive be culled.
Culling areas that were really small also didn't seem like it was helping as it just introduced small artefacts in caustics and didn't speed up the renderer.