My camera is in orthographic mode so there is no depth. I want to create a fake sense of depth by making the objects in the scene become physically smaller the farther away they are from the camera or a specified point. Is there a way to do this?
2 Answers
You can do this by drivers.
Right click on Scale X property and Add Driver > Manually Create Later (Single).
Go to Graph Editor and switch to Drivers mode.
Draw a line like this: (this line will show dependence between distance and scale)
In Drivers tab change value to distance, select both objects in Object 1 and Object 2 inputs and swich Type to Averaged value
Update Dependencies. You will see that x-scale now depends of distance between objects:
Finally copy y and z scale from x. Paste
#self.scale.x
in Scale Y and ZTo makes this work, you need to enable Use self in Drivers tab on Scale Y and Z channels.
Update Dependencies.
In a more limited usage case, where you are using particle systems, you can use weight paint to create a gradient that controls the size of the rendered objects. The camera in the scene below is an orthographic camera:
You will need to tweak your gradient so the effect looks the way you want it to. It can be a good idea to use another gradient (perhaps the same gradient with inverted influence, as in my example) to control the density of the particles, otherwise it looks like you have too many in the foreground and not enough in the background.