Voxelization
Voxelization Mask
This mask excludes objects (on a per-layer basis) from voxelization and has the highest priority over all other layer masks. Layers excluded in this dropdown will not be voxelized, even if they are included in other layer masks.
This mask doesn't affect screen-space rays. If an object is excluded via this mask it can still contribute to GI and receive it, as long as it remains within the frame.
Update Mode
This mode defines how voxel data will be updated.
Constant: Updates all voxels every frame. It has zero latency and is useful for building scenes, iterating level design, and testing. However, it is not intended for shipping due to its high performance cost.
Partial: Uses a more advanced, time-sliced approach that adaptively culls geometry and minimizes voxelization cost. This mode updates voxels in a 5-frame cycle, introducing slight latency. It processes only new data and only when the voxelization bound move. All dynamic objects (those that move, scale, or change material properties) must be placed on user-selected layers, and these layers must be included in the Dynamic Objects dropdown under Update Options when this mode is active.
Attach To
This parameter specifies an anchor object for the voxelization bound. Voxelization will occur around this object and will follow it when it moves. This could be your main character, the main camera, or even an empty static object if the voxelization bound doesn’t need to move (e.g., for architectural visualization).
If Attach To contains a camera
object, an additional parameter called Center Shift will appear. This parameter allows you to shift the voxelization bounds along the view axis, providing a larger voxelization area in front of the camera at the expense of some area behind it.
Directional Light
Your main shadow-casting directional light. It is usually set up automatically.
Expand Shadowmap
This parameter controls the area covered by the custom directional shadowmap. The shadowmap is used to evaluate direct lighting and shadowing at hit points of world-space rays. It is centered around the voxelization bound, and its size is adaptively scaled to ensure it covers the entire bound. However, in some cases, it may be important for the shadowmap to capture objects beyond the voxelization bounds to avoid light leaks. For example, in a very tall interior where the voxelization bound doesn’t reach the roof, expanding the shadowmap may help capture the roof geometry (even if the voxelization itself doesn’t), ensuring that no sunlight or skylight is visible for world-space rays
Avoid expanding the shadowmap unless necessary, as it has a fixed resolution; expanding it too much can increase visible shadow-mapping artifacts. You can inspect the shadowmap in the Debug dropdown
Maximum LOD
This parameter defines which Level of Detail will be used for meshes during the voxelization stage. Lower (coarser) LODs should be used when possible, as they are faster to voxelize. Additionally, since voxel representation is inherently coarse, it is unlikely to be negatively affected by using lower LODs.
Voxel Density
Controls the resolution of the voxel volume (3D Texture). Lower values reduce the volume resolution, while higher values provide finer detail. The Voxel Density is limited by the Voxel Bounds parameter to ensure voxel sizes remain between 4 and 8 centimeters. This parameter allows for fine-tuning of voxel resolution while maintaining the size of the voxelization bounds.
Voxel Bounds
Controls the maximum size (in meters) that the voxelization bound can cover, with a limit of 80 meters. The lower and the upper limits for the bound size are also clamped by the Voxel Density to ensure that voxels will not get bigger than 8 centimeters and will not get smaller than 4 centimeters.
If you absolutely need to extend the voxel bounds limit beyond 80 meters, you can adjus MAX_VOXEL_BOUNDS
in the HTraceConstants.cs
file. This is an experimental feature.
Cap Bounds Height
Sets the maximum height of the voxelization bound. This parameter is particularly useful for "flat" levels with low verticality, where the scene extends along the X and Z axes but has minimal content along the Y axis (e.g., indoor scenes where the distance to walls is typically greater than the distance to the floor or ceiling). Using this option can save VRAM, as it directly impacts the size of all 3D textures used for voxelization
Ground Level
Ensures that the voxelization bounds will always remain above this specified level. This option is useful when you know the base level of your scene and there is no need to voxelize anything below it.
Statistics
Shows the current voxelization statistics. Use this information to monitor your GPU memory consumption.
Voxel Resolution: The resolution (in pixels) of voxel volumes.
Voxel Size: The size (in centimeters) of voxels. The Color size indicates the resolution of the voxel diffuse buffer, with each voxel representing only one color. The Position size indicates the resolution of the voxel occupancy (whether a voxel is filled or empty) buffer and is half the size of the color resolution because each voxel is virtually subdivided into 8 octants. Therefore, a voxel resolution of
512 x 512 x 512
pixels corresponds to a color resolution of512 x 512 x 512
and an occupancy resolution of1024 x 1024 x 1024
.GPU Memory Consumption: The memory (in megabytes) required to store voxel data. Note that this does not represent the total memory consumption of HTrace, as it does not include other buffers and resources (e.g., those used for denoising). However, the memory consumed by the voxel volumes (3D Textures) typically constitutes the largest portion of the total memory footprint, making it a key parameter to track.
Memory consumption can be an important optimization factor for some GPUs. Be sure to monitor it when changing voxelization parameters and Update Modes. Using the Cap Bounds Height parameter is an effective way to reduce VRAM consumption.
Last updated