#usda 1.0 ( """ This shows and object with a pose which is fixed per sample, but the background is moving within the sample. This is done by using Clip instead of Frame samplers on the object. """ ) def Xform "Scene" { def ClipSampler "RandomRotation" { float3[] rotation = [(-180, -180, -180), (180, 180, 180)] } def Xform "ObjectsRoot" { def Xform "ObjectsPlaceholder" { } def Xform "DefaultObjectPrim" { def FrameSampler "RandomPoseInFOVByPixelSizeWithOverlap" { rel ref_model_diameter = <..> rel ref_camera = bool inverse_z_sampling = false int max_iterations = 3 float max_occluded_ratio = 0.5 float max_occluding_ratio = 0.7 float[] pixel_count_ratio_range = [0.2, 1.0] float border_region = 0.05 # This range gets set by the template. float3[] rotation = [(-90, -180, -180), (90, 180, 180)] # The template choses from these range options based on object parameters. def TemplatingParameters "RotationRanges" { float[] limited_x_range = [0, 90] float[] limited_y_range = [-90, 90] float[] limited_z_range = [-180, 180] float3[] all = [(-90, -180, -180), (90, 180, 180)] } } # A PoseLocalToWorld label request will be added after centering and scale } } def Camera "main_camera" { float camera:field_of_view = 45 float2 clippingRange = (0.0001, 1000) def FrameSampler "ImageProcessing" { float[] bloom = [0.0, 0.2] float[] camera_noise = [0.0, 0.3] float[] tint_hue = [0.0, 1.0] float[] tint_strength = [0.0, 0.8] float[] exposure = [-1.0, 1.0] float[] gaussian_range = [0.0, 3.0] float[] motion_blur_strength = [0.0, 0.01] float[] motion_blur_angle = [0.0, 360.0] } def LabelRequest "CameraLR" { string[] request:names = ["PoseLocalToWorld", "CameraIntrinsics"] } } def Xform "BackCube" ( references = @Cube.usda@ ) { over "Cube" { double size = 100 } float model_diameter = 100 def FrameSampler "RandomPoseInFOVByPixelSize" { rel ref_model_diameter = <..> rel ref_camera = float3[] rotation = [(-90, -180, -180), (90, 180, 180)] bool inverse_z_sampling = false float[] pixel_count_ratio_range = [0.6, 1.3] float border_region = 0.3 } def ClipSampler "RandomVisibility" { float probability = 0.9 } } def Xform "ForeObjectBase" () { float model_diameter = 0.01 def FrameSampler "RandomPoseInFOVByPixelSizeWithOverlap" { rel ref_model_diameter = rel ref_camera = float3[] rotation = [(-90, -180, -180), (90, 180, 180)] bool inverse_z_sampling = false float[] pixel_count_ratio_range = [0.1, 1.0] float border_region = 0.05 int max_iterations = 3 float max_occluded_ratio = 0.5 float max_occluding_ratio = 0.7 } def FrameSampler "AdaptiveScale" { rel ref_model_diameter = } } def Xform "ForeCube1" ( references = @Cube.usda@ inherits = ) { } def Xform "ForeCone1" ( references = @Cone.usda@ inherits = ) { } def Xform "ForeCapsule1" ( references = @Capsule.usda@ inherits = ) { } def Xform "ForeSphere1" ( references = @Sphere.usda@ inherits = ) { } } def DomeLight "Background" { float3 xformOp:rotateXYZ = (0, 180, 0) uniform token[] xformOpOrder = ["xformOp:rotateXYZ"] def ClipSampler "RandomBackground" { asset folder = @LeonaroTexturesAssets/TextureImages@ string[] filenames = ["*.hdr", "*.exr", "*.jpg"] } }