Pointing out the positions of the XYZ
This will be a brief Nuke Tips as I’m behind schedule in finishing up my new demoreel.
The reason why one want to generate a point cloud in Nuke is to get a rough preview of the scene in 3D space.
This will helps a lot when you need to relight as you will not be guessing blindly as you arrange the light setup.
Before you can do that, you need to make sure you check the following list:
- You need a Position pass and Normal pass from your 3D renderer. Ensure it is both in 32-bit floating point (EXR is your best format) and in world-space.
- Verify that it is NOT CLAMP. For this example, I did a mistake when outputting from Octane Render with the tone mapping enabled (even though it is set to Linear response). It screw up the result for Position to Points node when using clamped value.
- Repeat step 1 and 2 if the result gone awry.
The Position to Points node settings
Obviously make sure you have copy both the Position and Normal pass into your main render tree. You can see how I set it up in the screenshot at the end of the article.
I will skip both display, render and shadow settings as it is self-explanatory (and the same settings can be found in the ScanlineRender node).
Surface Point: This is where you choose the Position pass render. As you copy the channel, make sure to label the Red, Green and Blue channels as X, Y and Z respectively.
Surface Normal: This is where you choose the Normal pass render. Same procedure as usual as mentioned above.
Point Detail: Adjust the amount of points being rendered in the 3D space. Lower down the value if Nuke struggle to navigate the 3D space if the point cloud is very dense.
Point Size: Adjust the size of the point. Increase it if you need to see the point bigger and vice versa. This can come in handy if you have really large scene and you cannot make out the distance point cloud.
Usually I will use the Copy node to copy the Position and Normal pass render into my main stream. See the following screenshot for example.
As you can see in the above node graph screenshot, I arrange the fail version of the render elements above the proper version.
This is what will happen if you use CLAMP VALUE:
The room got squished! (complete with wrong Normal values)