The Transform3D node's perspective view is weird.

   458   3   1
User Avatar
Member
123 posts
Joined: March 2025
Offline
Honestly, I don't get why Transform3D stretches the image like a sausage when you rotate the plane and enable the perspective camera. It looks bizarre. For comparison, here is the standard viewport view of the grid. Is this a bug, or is there a reason for it?
Unfortunately, you can't change the focal length here. I have to create a camera at the OBJ level and reference it inside a COPnet located one level down. The COPnet doesn't see a camera created at the same level as the COPnet itself (i.e., inside the COPnet object). Plus, changes to the OBJ-level camera don't always update the viewport; I have to go into the COPnet and click on nodes, and sometimes the views get stuck—either between nodes or between the 2D and 3D viewports.
Honestly, it all seems incredibly convoluted, and I’m looking for a simpler way to get a perspective view in COPs. There is a camera node in COPs, but how do you use it for anything other than rasterization? Take this texture after a Transform node, for example: I plug the camera into a Layer node, feed the layer and the texture into a Layer Merge node—now the texture rotates in 3D space, but there’s no perspective, even though the "Perspective" checkbox is on. So then I connect it to "Projection on Layer" using an empty layer. That setup seems to produce a perspective projection, but the result is hard to interpret and difficult to control. At this point my brain started to boil. There has to be a simpler way!

Attachments:
Screenshot 2026-10-08 005910.jpg (80.2 KB)

User Avatar
Staff
7146 posts
Joined: July 2005
Offline
I think it is quite questionable that we added that "Perspective Camera" toggle at all, as it leads to this confusion...

The toggle merely changes the layer's camera to perspective. So if your layer was already a camera, it will do nothing. And, as you note, the focal length and aperture offsets will all just inherit whatever the incoming values were...

With H22 we have a Camera COP that lets you setup a camera directly in COPs without needing to import an Object Camera.

The workflow I'd suggest is:
a) Use transform3d with rasterize OFF to position your card properly in 3d.
b) Use rasterize layer to image your card onto a camera - the camera is the first input, the 3d positioned layer the second.

Project on Layer does the opposite of rasterize layer - it shines the 3d card onto your camera plate using the projection of the card.

An important thing to note is that every layer in Copernicus is a camera - they all have an idea of how to "project". By default they are orthogonal cameras.
User Avatar
Member
123 posts
Joined: March 2025
Offline
Oh my god, I finally figured out what the "rasterize layer" node is for. I had read the documentation before, of course, but completely failed to grasp the node's purpose from it. Thanks, jlait. It’s actually simple—you don't need to touch the Transform 3D node at all; you just rotate the camera and plug it into the "rasterize layer" node. That clears things up immensely.
But there is a catch. I still couldn't understand why the image was stretching unnaturally. I compared it to an OBJ-level camera, and the difference was huge, even with identical angles and transforms. When I imported the OBJ camera into the COP network, everything was fine. But when I used the COP-level camera, it looked wrong. Checking the parameters revealed that the COP camera had its "Screen Window Size" set to 2/2 by default, whereas the OBJ camera was set to 1/1. I have absolutely no idea what that setting actually does—I’ve never touched it—but it was the culprit. Setting it to 1/1 makes the perspective look familiar, "correct," and identical to the OBJ camera. A 2/2 setting might be handy for vertical projection, but the perspective looks very unnatural to me when tilted. The built-in camera in the Transform 3D node clearly uses 2/2 for this parameter; you can replicate that weird perspective with a standard camera just by setting it to 2/2, whereas 1/1 makes it look just like the OBJ camera. I’m leaving this note here for future searches, in case anyone else runs into this issue.
Trying to reset the camera to factory defaults triggers Python errors, so it's hard to say for sure if 2/2 is the actual default setting. But if it is, it seems incredibly confusing for the user.
User Avatar
Staff
7146 posts
Joined: July 2005
Offline
I've submitted a bug about the revert-to-factory. Default screen window size is 1,1 in the camera cop itself.

Default ortho cameras (which a random layer will have if you've not done default canvas) have a screen window of 2. The transform COP just toggles the perspective, leaving all the other settings to their ortho-relevant defaults. So I'm really thinking we should never had that toggle...
  • Quick Links