Visualizer#

Visualizer 类是 Genesis 中所有可视化和渲染的主控制器。它管理 viewer、相机和渲染器后端。

概述#

当你创建 Scene 时,Visualizer 会自动创建,并负责:

  • 管理交互式 Viewer 窗口

  • 协调多个 Camera 实例

  • 处理渲染器后端(Rasterizer、Raytracer、BatchRenderer)

  • 将渲染状态与仿真同步

访问方式#

通过 scene 访问 Visualizer:

import genesis as gs

gs.init()
scene = gs.Scene(show_viewer=True)
scene.build()

# 访问 visualizer
visualizer = scene.visualizer

# 更新可视化
visualizer.update()

常用操作#

添加相机#

# 添加用于渲染的相机
cam = scene.add_camera(
    res=(1280, 720),
    pos=(3, 0, 2),
    lookat=(0, 0, 0.5),
    fov=40,
)

更新视图#

# 每步更新可视化
for i in range(1000):
    scene.step()
    scene.visualizer.update()

控制 Viewer#

# 访问交互式 viewer
viewer = scene.visualizer.viewer

# 检查 viewer 是否处于活动状态
if scene.visualizer.viewer is not None:
    # 可进行 viewer 操作
    pass

API 参考#

class genesis.vis.Visualizer(scene, show_viewer, vis_options, viewer_options, renderer_options)[source]#

Bases: RBC

This abstraction layer manages viewer and renderers.

destroy()[source]#
add_camera(res, pos, lookat, up, model, fov, aperture, focus_dist, GUI, spp, denoise, near, far, env_idx, debug)[source]#
add_mesh_light(mesh, color, intensity, pos, quat, revert_dir, double_sided, cutoff)[source]#
add_light(pos, dir, color, intensity, directional, castshadow, cutoff, attenuation)[source]#
reset()[source]#
build()[source]#
update(force=True, auto=None)[source]#
update_visual_states(force_render: bool = False)[source]#

Update all visualization-only variables here.

colorize_seg_idxc_arr(seg_idxc_arr)[source]#
property is_built: bool#
property viewer#
property rasterizer#
property batch_renderer#
property context#
property raytracer#
property renderer#
property scene#
property has_display#
property cameras#
property segmentation_idx_dict#

另请参阅#