Updating output file structure for USD frames
This commit is contained in:
Vendored
BIN
Binary file not shown.
@@ -348,6 +348,11 @@ class USDLight(object):
|
|||||||
self.translate_op = self.xform.AddTranslateOp()
|
self.translate_op = self.xform.AddTranslateOp()
|
||||||
self.translate_op.Set(pos)
|
self.translate_op.Set(pos)
|
||||||
|
|
||||||
|
if pos == (0, 0, 0):
|
||||||
|
self.prim.GetIntensityAttr().Set(0);
|
||||||
|
else:
|
||||||
|
self.prim.GetIntensityAttr().Set(50000);
|
||||||
|
|
||||||
# TODO attributes:
|
# TODO attributes:
|
||||||
# - direction
|
# - direction
|
||||||
# - intensity
|
# - intensity
|
||||||
@@ -355,8 +360,6 @@ class USDLight(object):
|
|||||||
# - radius
|
# - radius
|
||||||
# - specular
|
# - specular
|
||||||
|
|
||||||
self.prim.GetIntensityAttr().Set(15000);
|
|
||||||
|
|
||||||
class USDCamera(object):
|
class USDCamera(object):
|
||||||
"""
|
"""
|
||||||
Class for created cameras
|
Class for created cameras
|
||||||
|
|||||||
@@ -19,18 +19,21 @@ class USDRenderer(object):
|
|||||||
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,
|
output_frame_dir="frame_tmp"):
|
||||||
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.frame_count = 0
|
||||||
|
self.output_frame_dir = output_frame_dir
|
||||||
|
if not os.path.exists(self.output_frame_dir):
|
||||||
|
os.mkdir(self.output_frame_dir)
|
||||||
|
|
||||||
if in_memory:
|
# Directory to store all image assets used by the usd scene
|
||||||
self.stage = Usd.Stage.CreateInMemory()
|
if not os.path.exists("image_assets"):
|
||||||
else:
|
os.mkdir("image_assets")
|
||||||
self.stage = Usd.Stage.CreateNew(tmp_usd_stage_file)
|
|
||||||
|
self.stage = Usd.Stage.CreateInMemory()
|
||||||
|
|
||||||
UsdGeom.SetStageUpAxis(self.stage, UsdGeom.Tokens.z)
|
UsdGeom.SetStageUpAxis(self.stage, UsdGeom.Tokens.z)
|
||||||
|
|
||||||
@@ -47,10 +50,10 @@ class USDRenderer(object):
|
|||||||
return self.renderer.scene
|
return self.renderer.scene
|
||||||
|
|
||||||
def save_scene(self):
|
def save_scene(self):
|
||||||
if not self.in_memory:
|
output_file_path = os.path.join(self.output_frame_dir, f'frame_{self.frame_count}.usd')
|
||||||
self.stage.GetRootLayer().Save()
|
with open(output_file_path, "w") as f:
|
||||||
else:
|
f.write(self.usd)
|
||||||
raise Exception("Can only save files if in_memory=False")
|
self.frame_count += 1
|
||||||
|
|
||||||
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)
|
||||||
@@ -80,7 +83,7 @@ class USDRenderer(object):
|
|||||||
pixels = 3*height*width
|
pixels = 3*height*width
|
||||||
rgb = self.model.tex_rgb[data_adr:data_adr+pixels]
|
rgb = self.model.tex_rgb[data_adr:data_adr+pixels]
|
||||||
img = rgb.reshape(height, width, 3)
|
img = rgb.reshape(height, width, 3)
|
||||||
file_name = f'{texid}.png'
|
file_name = f'image_assets/{texid}.png'
|
||||||
img = im.fromarray(img)
|
img = im.fromarray(img)
|
||||||
img = ImageOps.flip(img)
|
img = ImageOps.flip(img)
|
||||||
img.save(file_name)
|
img.save(file_name)
|
||||||
|
|||||||
Reference in New Issue
Block a user