ID 334171 - Creating a crop before or within a Project3D node that gets fed into a RayRender node, will create horizontal scanline artifacts in the viewer.

Follow

Problem summary
It is possible to project a custom image over geometry in nuke using the 'Project3D' node and using either the 'ScanlineRender' or the 'RayRender' node render it to 2D from 3D.

If you are using a 'RayRender' node as the renderer, and crop the projection to only affect a portion of the geometry within the 'Project3D' node, when applied over the alembic geometry the 'RayRender' node will not process this correctly. In the viewer there will be black line horizontal artifacts shown in the viewer when processing.

This appears to occur more prominently on larger alembic files with a higher number of separate geometry, and not occur on smaller size alembics that have minimal geometry, or internal 3D primitives eg. spheres and cubes.

The cropping of the input image appears most prominently when the 'project on' value set to 'crop', although it also appears when any crop operation (eg. Crop or BlackOutside) is made between the custom image and the 'Project3D' node.


Customer reported version
nuke.10.5v5

Customer reported platform
windows7

Steps to reproduce

Open the attached script

or

1) Open a new script in Nuke

2) Create a 'Checkerboard' node

3) Create a 'Project3D' node and ensure 'project on' is set to 'front' and the 'crop' checkerbox in on.

4) Create a 'Camera' and connect it into the 'cam' input of the 'Project3D' node (this will be used to project the texture over the geometry)

5) Import a larger multi-geometry alembic file using the 'ReadGeo' and connect the 'img' source from the 'Project3D'

6) Looking through the 'ReadGeo' node, rotate the 'Camera' to crop off a section of the geometry in the viewer. (The easiest way to do this is move it closer and rotate the camera up)

7) Create a 'Scene' node and connect to the 'ReadGeo' node

8) Create another 'Camera' node and connect it into the 'Scene' node (this will be your viewing camera)

9) Inside the 'Camera' properties, alter the camera location to be framing the imported geometry.

10) Create a 'RayRender' node and connect the viewing camera into the 'cam' input and the scene into the 'obj/scn' input

11) View results of the 'RayRender' node
Result: Horizontal lines through the viewer and unfinished rendering.

12) Toggle on and off the 'crop' in the 'Project3D' node
Result: Turning on and off the crop allows you to view the RayRender result

13) To confirm it is the 'RayRender' node causing the problem, create a 'ScanlineRender' node and connect the viewing camera into 'cam' and the 'Scene' node into 'obj/scn'
Result: even with the crop option in the Project3D turned on, this works correctly.

Workaround
When applying an image as a texture using the 'Project3D' node, attempt to project the image over the entirety of the geometry when using the 'RayRender' node.

Reproduced by support
This bug has been reproduced in:
Nuke 11.1v1 - Windows 7 - MacOSX 10.13 - CentOS 6.9
Nuke 11.0v4 - Windows 7
Nuke 11.0v1 - Windows 7 - MacOSX 10.13 - CentOS 6.9
Nuke 10.5v7 - Windows 7
Nuke 10.5v1 - Windows 7 - MacOSX 10.13 - CentOS 6.9
Nuke 10.0v6 - Windows 7
Nuke 10.0v1 - Windows 7 - MacOSX 10.13 - CentOS 6.9

Earliest version tested
Nuke 10.0v1
- This feature did not exist before this version (RayRender)

Expected behaviour
When cropping an image through the Project3D node, the RayRender node should allow you to apply a texture to a section of geometry and process in the viewer without issues.

Actual behaviour
When cropping an image through the Project3D node, the RayRender node does not allow you apply a texture to a section of geometry and process in the viewer without issues, give horizontal artifacts and does not finish drawing scanlines.

    We're sorry to hear that

    Please tell us why