3D Scene Editor
The "Scene Editor" is the main panel of the application in which scenes and animations are displayed ("render view"). It is the only panel that cannot be closed.
This page describes the five types of interactions that are possible with the render view.
See Also : 3D Editing Helpers
General
By default, only one Scene Editor is displayed (Scene Editor (0) only). You can display up to four Scene Editors (Scene Editor (0) to (4)) as needed. You can show or hide them from the menu bar [ View > Editors > Scene Editor ].
Displaying multiple Scene Editors is useful when you want to check a 3D model from multiple directions at the same time.
Additionally, scene editors (1) to (3) support floating display. By using floating display, you can display any scene editor on a separate display.
If the displayed Scene (or Control) is updated, it will be reflected in all Scene Editors.
The following is an explanation of the scene editor tool icons.
Camera Manipulation
The Camera combo box provides following camera views for a 3D scene:
- "Perspective" camera: It offers an approximate representation of the image as it is seen by the eye. A default light is used when the scene doesn't contain any object of type light. Scene Editor provides a navigation panel on the bottom right so the objects can be viewed from all sides.
- "Orthogonal" cameras with the subcategories Front, Rear, Top, Bottom, Left and Right: Orthogonal projection is a means of representing a three-dimensional object in two dimensions.
- Scene cameras: Further, each camera part of the scene is listed in the combo box. If a scene camera is selected, the scene is displayed from that camera's perspective. Scene cameras are created by dragging an item of type "Camera" from the Toolbox panel and dropping it into the Scene Tree or Scene Editor panel.
- The scene has to contain an object of type Light to ensure proper lighting in the scene.
-
In scene camera view, the camera properties can only be edited in the "Properties" panel.
Perspective Camera (Editor):
Orthogonal Cameras:
Scene Camera View
The Aspect Ratio and the Aspect Autofit properties are available for Camera 3D. If the Aspect Autofit property is set to true (when the checkbox available for Aspect Ratio property is checked), the aspect of the camera will be calculated based on the width and height of the render target. Otherwise, if the checkbox available for Aspect Ratio is left unchecked, the aspect of the camera will be calculated based on the resolution of the display.
-
Both properties are available under the name of the first property - Aspect Ratio.
Camera Panning and Zooming
The scene content displayed in the Scene Editor can be modified like this:
- Panning: Move the mouse while holding the middle mouse button down
- Zooming: Rotate the mouse wheel forward for zooming in and backward for zooming out
Enable panning and zooming also for scene cameras with a preference option:
- Tick "Enable scene camera manipulation" in the "Editor Preferences" dialog opened from File-Preferences menu option.
Orient Camera to Selected Object
Sometimes it is quite difficult to locate in a 3D scene a new added object. This feature provides new control to active camera: orienting it to a selected object.
-
This feature is available only for "Perspective" camera.
First select the object in the Scene Tree. After this the "Perspective" camera will be oriented towards the selected object, by pressing the "O" key. The position of the camera remains unchanged; the only thing that changes is its orientation. The reference of the orientation is the geometric center (or "centroid") of the selected object.
Rotate Perspective Camera around Selected Object
The object can be seen from different angles by rotating the Perspective Camera around a selected object. After the desired object is selected in the Scene Tree, the camera can rotate around it by holding down the Ctrl key and using Rotate camera.
-
On the Perspective Camera Scope menu, the "Selection" option should be chosen.
Camera Look-At Node
When this property is set the camera is automatically oriented towards the look-at-node. Up direction and look-at direction are not shown anymore in property grid. Look-at direction is discarded.
Camera Preview Thumbnail
Even though the current selected camera is the Perspective camera, it is possible to see the content displayed by another camera in the thumbnail available in property grid. If the camera is not associated to a render target, the preview will be done on a fixed size virtual render target surface:
- 100x100px for 3D cameras
If the camera is associated to a render target, the preview will be generated:
- on a surface of the same aspect ratio as the render target, and then reduced to a thumbnail image - for 3D cameras
The camera preview thumbnail will be displayed in the property grid by selecting the camera whose perspective should be viewed in the Scene Tree.
-
The "Alpha Blend Factor" and the "Alpha Destination Blend Factor" in the Default Render Mode Configuration should be set properly. For instance, the former value could be InverseSourceAlpha and the latter value could be DestColor.
Reset Camera
Use the "Reset Camera" button left to the Camera combo box to reset the selected view to the default location and orientation.
Camera Sequence Editor
When many cameras are associated to the same Render Target, editing of the camera sequence can be done in two different ways. The first one is done by following these four steps:
- In the Render Targets panel select one camera associated to the respective render target;
- Press the F3 key on your keyboard; in this way, the (0) sequence number which is placed next to the name of the camera between round brackets will become editable;
- Choose and write the desired sequence number;
- Press the Enter key.
The second way to edit the sequence of all cameras associated with the same Render Target is based on the usage of button "Go to Camera Sequence Editor view" which is placed in the Render Targets panel right to the Search field.
When this button is selected, a window with all the cameras from the entire solution is displayed. The filter button "Show only associated cameras" on the left allows to filter just those cameras which are associated to a render target. In the list displayed, every camera has an associated field where the sequence number can be edited.
Unfiltered list in Sequence Camera view:
Filtered list in Sequence Camera view:
-
When a previously created solution is converted, the user is asked if the sequence numbers have to be changed or not. If the user declines, the sequence numbers will not be updated. FTCCmd.exe does not provide this option. It will not change sequence numbers when converting the solution.
Context Resource Pool
A Context Resource Pool (CRP) is used to share resources among different Context Providers. It allows grouping of render targets and associated device objects (Shaders, Texture Images, Vertex Buffers, etc.) in a common pool.
The Context Resource Pool is accessible via Render Targets panel by using the specific button as can be seen in the image below.
Each platform has some rules and restrictions related to CRPs, for example on some platform multiple displays can share the same CRP, while on some other platform a CRP is required for each Window Surface. SceneComposer displays the relationship between CRPs, Displays, Window Surfaces and Frame Buffer Objects in the Render Target Explorer panel (main view and an additional CRP view).
Depending on the platform, the texture render targets (frame buffer objects) may have an Owner property of type render target reference or CRP. The Owner property is available in the Properties panel (see the image below).
If the type of the Owner property is render target reference, the owner must be a display render target (window surface).
If the type of the owner property is CRP (integer value in SceneComposer), the possible values will be obtained from the available displays.
If the Owner property is available for a render target but it is not set by the user, the render target will be considered orphan.
Camera Group
Camera group feature offers extended support for display visualization. They can be added in a camera group to allow the user to enable or disable any of them (solution with many cameras).
How to create a "CameraGroup":
- Via "Add" > "New item" option by using the Scene Explorer context menu. Creates a Camera group in a folder specified by the user during this process.
After creating a CameraGroup, it will be visible in the "Camera Group Explorer View". A camera group is a flat list of camera groups identified by a unique name.
Any camera from any scene can be dragged from the Scene Tree inside the group.
Another way to add a camera to the group is by using the context menu: right click on a camera and select the "Add Camera To Camera Group" option.
Any camera inside the group can be locked or unlocked, enabled or disabled. Initially, all newly added cameras are ordered alphabetically. It is possible to change this order manually by dragging the cameras in the desired position.
-
A camera can belong to multiple groups, but its state is unique, meaning that enabling the camera in one group will enable it in all groups and also in the Render Target panel where it is associated to a render target. If a group is disabled or enabled, all the cameras inside it will be disabled or enabled. If one or many from those cameras are members of another group, the second group will be enabled or disabled too.
-
When a camera is a added into a Camera Group it will become a member of an array where all the other cameras are included. If one of those cameras added into a Camera Group is removed, the "Delete Items" panel will become available and the user will have the possibility to use the "Remove Array Item" resolution. In this way, the selected camera will be removed from the array of cameras contained by the Camera Group.
Camera Gizmos
For a camera object the following properties can also be edited by using gizmos, not only from the Properties panel:
LookAtVector
Editing is done by click-and-drag the front of the camera as it can be seen in the image bellow and the current look at vector will be rotated by a free rotation alt-azimuthally model, using both X and Y mouse movement.
Up Direction
Editing is done by click-and-drag the ring around the camera body (which is highlighted with yellow when selected). The current up-vector will be rotated around the world looking-at direction, obtaining a "rolling" effect considering the Y mouse movement.
Projection
For Perspective view a wireframe frustum is provided, constructed to suggest fov,znear and zfar; for Orthographic view a wireframe rectangular prism is provided, constructed to suggest width, height, znear, zfar; for Generic projection no impersonator is provided.
Light Gizmos
For a light object the following properties can also be edited by using gizmos, not only from the Properties panel:
Direction
Editing is done by click-and-drag on the direction arrow. The direction vector will be rotated by a free rotation alt-azimuthally model, using both X and Y mouse movement.
Range
For light of type Point the range is suggested by a set of n concentric circles laid at an exponential step (1, 2, 4, 8, etc.). For light of type Spot the range is suggested by the length of the wireframe cone. Editing (spot and point) is done by click-and-drag on the centered light source object (yellow sphere) and the range value will be modified using a combination of X and Y movement.
Spot Exponent
Editing is done by click-and-drag on the top part of the spot cone (as it can be seen in the image bellow), and the spot exponent is modified using Y movements (up movement increases the value of property spot exponent and down movement decreases it).
Spot Angle
A wireframe cone is provided and the editing is done by click-and-drag on the cone, the spot exponent value is modified using a combination of Y movements.
Picking and Transforming Items
In the Scene Editor, an item can be picked by clicking on it. After picking, the bounding box of the item is displayed together with the XY axes, and it is selected in the "Scene Tree" panel:
-
Groups cannot be picked in the render view; they need to be selected in the "Scene Tree" panel. The "Scene Editor" and "Scene Tree" panels are synchronized in terms of the selected item.
Interaction Modes: Selection, Edit the margin of objects inside a layout, Translate, Rotate, Scale
These interaction modes are available for 3D scenes in the Toolbar:
Select
Edit the margin of objects inside a layout
For more information about this, please refer to Adorners.
Translate
In this mode, a translation gizmo is represented by an axis coordinate system, having three arrows handles pointing in the directions of the corresponding axis (x, y, or z). For combined operations (translate xy, xz, ..), more rectangle handles positioned on the center and aligned to the corresponding axis combination are provided. Editing is done by click-and-drag a specific arrow handle or a specific rectangle handle.
For translation mode three options are available:
- "Only object" will move only the object selected and
- "Object and Children" will move the selected object with its children.
Rotate
In this mode, a rotation gizmo is represented by a set of circles, each corresponding to a plane (xy, xz, yz). Editing is done by click-and-drag a specific circle.
Usually the object is freely rotated except the situations when the rotation angle is close to a fixed angle controlled by a tolerance. The tolerance defines the range between two multiple values where the object can freely rotate without being snapped.
- the fixed angle values shall be multiples of 45
- the angle snapping tolerance shall be 22.5 degrees.
Edit the object with a fixed angle by enabling this option using the button placed near active rendering button.
In Translate mode, another feature is the "Translation System" that allows choosing between Parent and View reference system. When Parent system is selected, the reference system is the coordinate system of the scene. Otherwise, the reference system is the coordinate system of the selected object. In both cases, the object can be moved by using the arrow keys.
Scale
In this mode, a scale gizmo is represented in a similar way as the translation gizmo. For the combined operations (xy, xz, yz), rectangle handles are provided. For the combined (xyz) mode, a sphere handle is provided (located in the center of the gizmo). Editing is done by click-and-drag a specific arrow, a specific rectangle or the sphere.
Move the mouse while pressing left mouse button to translate, rotate, or scale the selected object in the render view. The modification of the properties is also reflected in the "Properties" panel for the selected item.
Editing Aids
Move from a selected element to another one by using the Tab key. First in the Scene Editor an element would be selected by Left click on it. After this all the elements placed at the same level (in the same group) can be selected by using the Tab key.
-
In complex 3D scenes is not possible to select some objects just by Left clicking on them. For instance, in a tunnel scene, if the user is trying to select the car by Left clicking on it, just the "hardware" element will be selected - which is in the front of any other elements. To select the car, right click on it and select any element placed in the ray of the "car" group.
After the selection is done, it is possible to tab all the selected elements situated at the same level. By using the Shift key + Tab all the elements can be selected in an ascendant order.
Another possibility is to tab selected elements on the same (visual) ray. This option can be done by holding down the Left key and then use the Tab key. To get the ascendant direction the same combination is available: Shift key + Tab (when the Left mouse button is holding down).
Move Elements with Arrows Keys
Any element can be moved/scaled/rotated by using arrows. After the selection of the object use the Left, Right, Up and Down arrows to get the desired results.
Unselect an Item
The camera cannot be manipulated and vice versa when an item is selected.
Unselect an item by hitting the Esc key.
Please refer to section 3D Editing Helpers for further information.
Navigation Panel
SceneComposer provides a navigation panel which allows the user to manipulate the predefined perspective and orthogonal cameras using gizmos.