In the previous post I introduced the concept of single instruction, multiple data using 4 bytes in a 32-bit unsigned integer, and using Intel’s SSE instructions. Using SSE instructions, a sequence of so-called vector instructions operates on four instances of a single scalar flow. Take the following simple example: vec3 P1( 1, 1, 1 );…

# Category: Tutorial

## OPT#3:SIMD (part 1 of 2)

This is the third article in the series of posts on Optimization, which accompany online lectures for the IGAD program of the Breda University of Applied Sciences. You can find the first post (on profiling) here. The second post, on low level optimization, introduced the Rules of Engagement, which can help when approaching the bottlenecks…

## OPT#2:LowLevel

Part two of the Art of Software Optimization, in which we explore low level optimization.

## OPT#1:Profiling

First part in a series of blog posts on the Art of Software Optimization.

## Probability Theory for Physically Based Rendering Part 2

This is article 2 in a series of 2. Article 1 can be found here. Integrals in Physically Based Rendering To calculate light transport in a virtual scene we use Kajiyaâ€™s rendering equation: This is the three point formulation of the rendering equation. It describes that light arriving at point from point is the sum…

## Probability Theory for Physically Based Rendering

Introduction Rendering frequently involves the evaluation of multidimensional definite integrals: e.g., the visibility of an area light, radiance arriving over the area of a pixel, radiance arriving over a period of time, and the irradiance arriving over the hemisphere of a surface point. Evaluation of these integrals is typically done using Monte-Carlo integration, where the…