PMC Kernel


The PMC kernel is a custom mutating unbiased kernel written for GPUs. It lets OctaneRender® resolve complex caustics and lighting.


Figure 1: The PMC kernel parameters


PMC Kernel Parameters

DiffuseAmount of diffusion, or the reflection of light photons at different angles from an uneven or granular surface. Used for dull, non-reflecting materials or mesh emitters. Depth - The maximum number of times a ray can bounce, reflect, or refract on a high roughness/diffuse surface. Higher values mean higher render times, but more realistic results. For outdoor scenes, a good value is around 4. For lighting interiors with natural light, you need higher values such as 8 or more. While high values are possible, in reality, rays won't go beyond 16 ray bounces.

SpecularAmount of specular reflection, or the mirror-like reflection of light photons at the same angle. Used for transparent materials such as glass and water. Depth - Controls the number of times a ray refracts before dying. Higher values mean higher render times, but more color bleeding and more details in transparent materials. Low values introduce artifacts or turn some refractions into pure black.

Scatter Depth - The maximum path depth that allows scattering.

Exploration Strength - Specifies how long the kernel investigates good paths before it tries to find a new path. Low values create a noisy image, while high values create a splotchy image.

Direct Light Importance - Makes the kernel focus more on paths with indirect light. For example, imagine sunlight through a window, which creates a bright spot on the floor. If Direct Light Importance is set to 1, the kernel focuses its sampling on this area. If Direct Light Importance is reduced, the kernel reduces its efforts to sample that area, and focuses more on more tricky areas that are harder for light rays to reach.

Caustic Blur - Increasing this parameter's value results in less caustic noise.

Figure 2: A comparison of various Caustic Blur values


GI Clamp - This clamps each path's contribution to the specified value. Reducing this value reduces the amount of fireflies caused by sparse but strong contributing paths. Reducing this value also reduces noise by removing energy.

Figure 3: A comparison of various GI Clamp values


Max Rejects - Controls the render's bias. Reducing the value creates more biased results along with shorter render times.

Parallel Samples - Controls how many samples OctaneRender® calculates in parallel. Small values require less memory to store the sample's state, but renders are slower. High values use more graphics memory, and renders are faster. The change in performance depends on the scene, the GPUThe GPU is responsible for displaying graphical elements on a computer display. The GPU plays a key role in the Octane rendering process as the CUDA cores are utilized during the rendering process. architecture, and the number of shader processors on the GPU.

Work Chunk Size - The number of work blocks done per kernel run. Increasing this value also increases the memory requirement on the system, but it does not affect memory usage, and may increase render speed.

Old Volume Behavior - Emulates the behavior of emission and scattering from previous versions of OctaneRender®.

AI Light - Enables AI lights. AI light functionality learns from the scene, and rendering becomes more efficient as more samples are rendered. When used with Adaptive SamplingA method of sampling that determines if areas of a rendering require more sampling than other areas instead of sampling the entire rendering equally., AI Light becomes even more effective as it learns pixel and light importance in a scene, and some pixels are no longer sampled.

AI Light Update - Enables dynamic updates to the AI lighting.

Light IDs Action - Determines whether the L.IDs (Light IDs) and L. Inv (Light Inverse) buttons enable or disable lights with matching Light Pass ID numbers.