Adding support for in memory usd scenes
This commit is contained in:
Vendored
BIN
Binary file not shown.
@@ -18,14 +18,20 @@ class USDRenderer(object):
|
|||||||
model,
|
model,
|
||||||
height=480,
|
height=480,
|
||||||
width=480,
|
width=480,
|
||||||
geom_groups=[1,1,1,1,1,1]):
|
geom_groups=[1,1,1,1,1,1],
|
||||||
|
in_memory=True,
|
||||||
|
tmp_usd_stage_file='tmp_usd_stage.usd'):
|
||||||
self.model = model
|
self.model = model
|
||||||
self.data = None
|
self.data = None
|
||||||
self.renderer = mujoco.Renderer(model, height, width)
|
self.renderer = mujoco.Renderer(model, height, width)
|
||||||
|
self.in_memory = in_memory
|
||||||
self.loaded_scene_info = False
|
self.loaded_scene_info = False
|
||||||
|
|
||||||
self.stage = Usd.Stage.CreateNew('usd_stage.usda')
|
if in_memory:
|
||||||
|
self.stage = Usd.Stage.CreateInMemory()
|
||||||
|
else:
|
||||||
|
self.stage = Usd.Stage.CreateNew(tmp_usd_stage_file)
|
||||||
|
|
||||||
UsdGeom.SetStageUpAxis(self.stage, UsdGeom.Tokens.z)
|
UsdGeom.SetStageUpAxis(self.stage, UsdGeom.Tokens.z)
|
||||||
|
|
||||||
# TODO: maybe change where we initialize this?
|
# TODO: maybe change where we initialize this?
|
||||||
@@ -41,7 +47,10 @@ class USDRenderer(object):
|
|||||||
return self.renderer.scene
|
return self.renderer.scene
|
||||||
|
|
||||||
def save_scene(self):
|
def save_scene(self):
|
||||||
self.stage.GetRootLayer().Save()
|
if not self.in_memory:
|
||||||
|
self.stage.GetRootLayer().Save()
|
||||||
|
else:
|
||||||
|
raise Exception("Can only save files if in_memory=False")
|
||||||
|
|
||||||
def update_scene(self, data):
|
def update_scene(self, data):
|
||||||
self.renderer.update_scene(data, scene_option=self.scene_option)
|
self.renderer.update_scene(data, scene_option=self.scene_option)
|
||||||
|
|||||||
Reference in New Issue
Block a user