[BUG Report]+[Fix] project_pbr_material.mdl produces projection artifacts when zoomed out from target

Hello NVIDIA Community,

Version isaac_sim-4.1.0.
RTX-Interactive(Path Tracing) render.
Meters per unit 0.01

I think there could be a bug in /ov/pkg/isaac-sim-4.1.0/extscache/omni.replicator.core-1.11.14+106.0.1.lx64.r.cp310/mdl/project_pbr_material.mdl

This image will show a simple scene with chair and projected face:


On close range nothing happens

The problem could be seen when camera is zoomed out from it:

You can see a gray line coming from face to the bottom. And same lines are coming from all face sides from pixels closest to texture border (see face on the farther arm).

This could be fixed by applying uv_bounds in project_pbr_material for cutout_opacity instead of applying just normal_clip.

It is not clear for me why uv_bounds float uv_bounds = xmax * xmin * ymax * ymin * normal_clip; is not used constantly in the code, as it is clear that it already contains spatial uv bound + special normal bound to remove projection texture from mesh parts which are facing more than 90 off the projector normal.

You can find code rows starting with:

173 float3 normal_pixel = ...
227 float opacity_value = ...
and replace normal_clip with uv_bounds to fix this issue.

This is after fix, object is far away from camera, no artifacts are seen.

And at row 176 float r_pixel = ... I think multiplication of uv_bounds again by normal_clip is unnecessary.

@pcallender
Could you please check this.

Thanks for bringing this up with proposed fix! I’ll take a look and get this into the MDL for future updates.