Proposal
Current IsaacRTX Marker is constructed using pointinstancer, whose transform and scale is updated through a CPU path
Point Instance assets has some special API that populate the scene with arbitrary number of instances at every call.
you can expect something like this to work :
given stage
/World/env/envs_0/.....
/World/env/envs_1/.....
/World/env/envs_2/.....
/World/Visualizers/Sphere
PointInstancer Instance
point_marker = UsdGeom.PointInstancer.Define(stage, "/World/Visualizers/Sphere")Visualization using
PointInstancer in lab implementation will be:
def visualize(translation, orientation):
point_marker.GetPositionsAttr().Set(Vt.Vec3fArray.FromNumpy(translation))
point_marker.GetOrientationAttr().Set(Vt.QuathArray.FromNumpy(orientation))
you may see that this will make things very slow in high count of marker.
The ask is either
- figure out a way to interact with point-instance in gpu native path without numpy getting our way for point instance.
or
- if there is more faster way to visualize marker, we can switch to a new marker implementation that uses non-point-instance.
Proposal
Current IsaacRTX Marker is constructed using pointinstancer, whose transform and scale is updated through a CPU path
Point Instance assets has some special API that populate the scene with arbitrary number of instances at every call.
you can expect something like this to work :
given stage
PointInstancer Instance
PointInstancer in lab implementation will be:
you may see that this will make things very slow in high count of marker.
The ask is either
or