Skip to content

Rendering

OpenCL

An Introduction to the OpenCL Programming Model OpenCL 3.0 Reference Guide

My first opencl issue!

OpenCL benchmark example

image2d_array_t

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)

a2flo/oclraster

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.

Vertex Shader

Binner

Rasterizer