Hi all, I wanted to ask you if you ever came across a bug where basicwriter just doesn’t work?
I am switching between usd’s and getting some synthetic data and sometimes it just skips some files. That gives this warning for next usd processes after it skips one;
[Warning] [omni.graph.core.plugin] Node compute request is ignored because “/Render/PostProcess/SDGPipeline/RenderProduct_Viewport_InstanceSegmentationSDExportRawArray” is not request-driven
And also is that possible to set name of file using basicwriter ?
Here is the code I’m working on.
import os
import time
def render_with_omni(projectid):
usdpath = f"P:/Projects/A/scenes/output/usds/v05/{projectid}/"
# Get from args
GEN_CONFIG = {
"renderer": "RayTracedLighting",
# "renderer": "PathTracing",
# "renderer": "Iray",
"headless": True,
}
RES = (600, 600)
from omni.isaac.kit import SimulationApp
simulation_app = SimulationApp(GEN_CONFIG)
import omni.replicator.core as rep
from omni.replicator.core import Writer, AnnotatorRegistry
import omni.kit
from pxr import Usd
import omni.usd
import carb
from semantics.schema.editor import PrimSemanticData
output_directory = r'C:/Users/arda/Documents/Arda/omniverse_test/out/'
# Get all the file names from given path
usd_files = [f for f in os.listdir(usdpath) if os.path.isfile(os.path.join(usdpath, f))]
for usdfile in usd_files:
workid = usdfile.replace(".usd", "").split("_")[1]
omni.usd.get_context().open_stage(f"{usdpath}{usdfile}")
with rep.new_layer():
render_product = rep.create.render_product("/AI_DRONE_STREET_RENDER", RES)
stage = omni.usd.get_context().get_stage()
for prim in stage.Traverse():
if prim.GetTypeName() == "Mesh":
prim_sd = PrimSemanticData(prim)
prim_sd.add_entry("class", f"House{prim.GetName()}")
writer = rep.WriterRegistry.get("BasicWriter")
writer.initialize(
output_dir=f"{output_directory}{projectid}_{workid}/",
instance_id_segmentation=True,
bounding_box_2d_tight=True
)
writer.attach([render_product])
with rep.trigger.on_frame(num_frames=1):
rep.orchestrator.step()
if __name__ == "__main__":
folder_path = r"P:/Projects/A/scenes/output/usds/v05/"
projectids = [f for f in os.listdir(folder_path) if os.path.isdir(os.path.join(folder_path, f))]
for projectid in projectids:
render_with_omni(projectid)
time.sleep(0.3)
print("Done")