<p>That's actually incorrect. You can transform every ray of your camera if you wish (and numerous implementations do so). There are some advantages and disadvantages to each method (e.g. if your rays are more than your vertices you end up doing more transformations, however you don't incur cache misses by running over all vertices).</p>

CC BY-SA 4.0
2019-04-05T04:49:23.210Z
2019-04-05T04:49:23.210Z
lightxbulb
<p>My lecturer for a computer graphics (raytracing) paper has stated that <i>'It is easier to apply the inverse transform to the world than it is to apply the transform to the camera.'</i> The example given was that is it easier to shift all objects in a scene 5 units to the left than it is to shift the camera 5 units to the right.</p>

<p>This seems to imply that it's easier to iterate through and transform multiple objects in a scene than it is to apply a single transformation to the camera. </p>

<p>Is this correct, and if so, why is this the case?</p>

CC BY-SA 4.0
2019-04-05T04:01:00.773Z
Yes, this is correct. The iteration is happening when you multiply a camera matrix with every point you want to project. In short, this is because you ultimately need to transform to screen coordinates. You could certainly project points/things to another plane in 3d space without applying the inverse of the camera to the objects. Positioned elsewhere. But ultimately need it back in screen resolution.
Andrew Wilson
CC BY-SA 4.0
2019-04-05T04:24:43.100Z
@AndrewWilson: "*But ultimately need it back in screen resolution*" That's only true if you're doing rasterization. You don't need "screen resolution" if you're doing raytracing; you merely need to know the ray direction for a particular pixel, which isn't difficult either way.
Nicol Bolas
CC BY-SA 4.0
2019-05-06T05:02:34.650Z
For raytracing it's not 'easier'. But it might have some precision benefits.
Yakov Galka
<raytracing>
Why is it easier to inverse transform every object in a scene than to transform a camera?
Laserbreath
# Why is it easier to inverse transform every object in a scene than to transform a camera?

(Asked by: username_0 on 2019-04-05)

My lecturer for a computer graphics (raytracing) paper has stated that *'It is easier to apply the inverse transform to the world than it is to apply the transform to the camera.'* The example given was that is it easier to shift all objects in a scene 5 units to the left than it is to shift the camera 5 units to the right.

This seems to imply that it's easier to iterate through and transform multiple objects in a scene than it is to apply a single transformation to the camera.

Is this correct, and if so, why is this the case?

**Tags:** raytracing

> **Comments:**
> **username_1**: Yes, this is correct. The iteration is happening when you multiply a camera matrix with every point you want to project. In short, this is because you ultimately need to transform to screen coordinates. You could certainly project points/things to another plane in 3d space without applying the inverse of the camera to the objects. Positioned elsewhere. But ultimately need it back in screen resolution.  
> **username_2**: @username_1: "*But ultimately need it back in screen resolution*" That's only true if you're doing rasterization. You don't need "screen resolution" if you're doing raytracing; you merely need to know the ray direction for a particular pixel, which isn't difficult either way.  
> **username_3**: For raytracing it's not 'easier'. But it might have some precision benefits.  

---

## 1 answers

### Answer by username_4 on 2019-04-05. Score: 2 | Accepted answer

That's actually incorrect. You can transform every ray of your camera if you wish (and numerous implementations do so). There are some advantages and disadvantages to each method (e.g. if your rays are more than your vertices you end up doing more transformations, however you don't incur cache misses by running over all vertices).


---

