Render Modes#
ovrtx provides three render modes with different balances of throughput and image fidelity. Each RenderProduct selects its mode independently, so cameras in the same scene can use different modes: for example, Real-Time Path Tracing for color images and Minimal for segmentation.
Choosing a render mode#
Choose a mode based on the lighting and outputs your application needs. Real-Time Path Tracing is the default.
Mode |
|
Use and behavior |
|---|---|---|
|
Path-traced lighting with real-time denoising, including indirect illumination, reflections and shadows. Use for camera simulation and synthetic images that need these lighting effects at interactive rates. |
|
|
Accumulates samples within a render step. Use for offline or reference images when the additional convergence time is acceptable. |
|
|
Simplified shading for workloads that prioritize throughput over path-traced lighting, such as segmentation, bounding-box visualization and reinforcement learning across many environments. |
Output support differs by mode; see Camera Outputs. Minimal does not produce HdrColor and cannot supply the input required by the Camera generic core model.
Selecting a render mode#
Author the token attribute omni:rtx:rendermode on the RenderProduct.
These snippets select Path Tracing for a 640 × 480 product and request
LdrColor. They use an existing Camera prim at
/World/Camera; the Python snippet uses an existing USD stage.
#usda 1.0
def Scope "Render" {
def RenderProduct "Camera" {
int2 resolution = (640, 480)
rel camera = </World/Camera>
rel orderedVars = [<LdrColor>]
# Select path-tracing render mode
token omni:rtx:rendermode = "PathTracing"
def RenderVar "LdrColor" {
string sourceName = "LdrColor"
}
}
}
from pxr import Gf, Sdf, UsdRender
stage.DefinePrim("/Render", "Scope")
product = UsdRender.Product.Define(stage, "/Render/Camera")
product.CreateResolutionAttr().Set(Gf.Vec2i(640, 480))
product.CreateCameraRel().SetTargets(["/World/Camera"])
# Select the render mode on this product, independently of other products.
product.GetPrim().CreateAttribute(
"omni:rtx:rendermode", Sdf.ValueTypeNames.Token
).Set("PathTracing")
# Request the tone-mapped color image.
color = UsdRender.Var.Define(stage, "/Render/Camera/LdrColor")
color.CreateSourceNameAttr().Set("LdrColor")
product.CreateOrderedVarsRel().SetTargets([color.GetPath()])
Mode availability#
All three modes are available by default. Disable unused modes when creating the renderer to avoid allocating resources needed only by those modes. For example, a Minimal-only workload can save memory by disabling both path-tracing modes. Selecting Minimal on a RenderProduct alone does not disable the others or release their resources.
Availability is configured through RendererConfig in
Python or configuration entries passed to ovrtx_create_renderer()
in C:
Python option |
C configuration entry |
|---|---|
|
|
|
|
|
At least one mode must remain enabled; disabling all three fails renderer creation. With the default renderer settings, if a RenderProduct requests an unavailable mode, the renderer logs a warning and uses the first available mode in this order: Real-Time Path Tracing, Path Tracing, Minimal.
Renderer instances in one process share mode availability. A later instance
inherits it when the options are omitted; an explicit conflicting option
fails that instance’s creation. The choice stays fixed while shared graphics
resources remain alive, including when retained by keep_system_alive.
See Startup render mode availability
for Python/C examples and the resource-lifetime rules for changing that choice.