Usage Examples#

Register and unregister a Custom Renderer#

from omni.hydra.pxr.settings import RendererSettingsFactory

# Define your renderer details
plugin_id = "MyCustomRenderer"
display_name = "My Custom Renderer"
stacks_list = ["Global", "MyRenderer"]  # Stack names for renderer visibility in UI

# Register the renderer - this makes it available in the RenderSettings Widget
# and adds it to the Viewport renderer drop-down
RendererSettingsFactory.register_renderer(
    plugin_id=plugin_id,
    stacks_list=stacks_list,
    display_name=display_name
)

# Unregister the renderer - this removes it from both the RenderSettings Widget
# and from the Viewport renderer drop-down
RendererSettingsFactory.unregister_renderer(plugin_id=plugin_id)

Enable and Disable a Renderer from the Viewport#

This should be done at startup.

from omni.hydra.pxr.settings import RendererSettingsFactory
import carb.settings

# Enable a specific renderer for the viewport only
plugin_id = "MyCustomRenderer"
display_name = "My Custom Renderer"

# This adds the renderer to the viewport's dropdown list
# without affecting the RenderSettings Widget
RendererSettingsFactory.enable_viewport_renderer(
    plugin_id=plugin_id,
    display_name=display_name
)

# This removes the renderer from the viewport's dropdown list
# without affecting the RenderSettings Widget
RendererSettingsFactory.disable_viewport_renderer(plugin_id=plugin_id)

# Verify the renderer was removed from the renderers list
settings = carb.settings.get_settings()
renderers = settings.get("/pxr/renderers")
print(f"Available renderers after disabling: {renderers}")