GafferHQ / gaffer

Gaffer is a node-based application for lookdev, lighting and automation
http://www.gafferhq.org
BSD 3-Clause "New" or "Revised" License
962 stars 207 forks source link

Add Orthographic cameras to list of available viewer cameras #4523

Closed cdspring77 closed 2 years ago

cdspring77 commented 2 years ago

Summary

In most 3D packages, the viewer camera list includes a set of orthographic cameras that allow the user to see their scene from three basic orthographic views: top, side, front. These typically correspond to the three primary axis of X, Y, and Z. In many cases, there are short cuts or bookmarks for selecting these camera views provided in the viewer. It would be great if Gaffer provided these three orthographic camera views in the viewer window in addition to the default perspective camera. While not necessary, it would be great if these views could be rendered as well.

User story

What

Many times I want to be able to see my scene from a top down or side view so that I can properly place or align my lights or blocker objects in a particular plane (XY, YZ, XZ). In many cases, I also like to view my scene from the Top down view so that I can get a better sense of where objects are places relative to each other so that I can better place my lights in the scene. Having an orthographic view allows me to see the scene un distored y the camera's position in space so that I can better judge relative distances and relationships between objects.

Why

Having the ability to view things through an "orthographic" perspective quickly and easily allows me to do my work efficiently. Not having to "create" a camera, place it and set up its various options would speed up my process emensively. Having a set of camera views that are easily selectable would eliminate the need to be creating cameras and/or managing them in my scene. Simply be able to open a view and navigate (move, rotate, and zoom in/out) would dramtically speed up any process the requires an orthographic perspective.

Feature proposal

Example scenario(s)

1) Open a shot 2) Got to the viewer window 3) Click click on the camera icon 4) Select "top" view 5) Viewer switches to a "top down" view of the scene 6) User selects and object and presses "f" 7) Scene frames on the object 8) User left mouse clicks and the camera rotates when mouse moves 9) User middle mouse clicks and the camera pans when mouse moves 10) User left and middle mouse clicks and camera zooms in and out when mouse moves 11) User shift "left and middle" mouse clicks and camera dollys in and out when mouse moves. 12) User clicks on "front" view "hot key" and view shifts to a front view. 13) USer clicks on "perspective/default" view "hot key" and view shifts to the perspective/default camera.

Implementation notes

(Optional) Add any relevant technical notes.

johnhaddon commented 2 years ago

Thanks @cdspring77 - couple of questions...

User left mouse clicks and the camera rotates when mouse moves

Can you clarify this? Are you talking about spinning around the camera's Z axis, or genuinely free rotation? As soon as the camera is rotated, it's not really a "top" or "front" view any more, so labelling it as such would be misleading.

it would be great if these views could be rendered as well.

As described, these cameras will exist only in the UI, so will not be available to the rendering nodes. I think this feature would need to wait until we have a renderer (other than the GL one) embedded in the viewport.

cdspring77 commented 2 years ago

I was thinking that it would be free to rotate like the top/front/side cameras are able to do in maya. This is just so that you could do a minor tilt off axis if necessary. That being said, I don't think it has to be an essential feature as long as the user can move, zoom, and dolly.