CGI Studio 3.7
CGI Studio 3.7 - What's new:
Welcome to CGI Studio 3.7, Candera's software development platform for development of hybrid 2D and 3D graphical interfaces for Automotive Systems.
This page provides information about the most important features added since the last Release.
Auto Values
Auto values is a novel feature which displays parameter/property values internally computed by SceneComposer, Candera or inherited from other objects, as well as the information, that this value was automatically set.
The user can interact with auto-values through the switch button which is available - in the Properties panel - near the field were the value control is displayed as read-only. As can be seen in the image below, a suffix indicates that the value is auto. As expected, if the button is used the value will become editable and the user will be allowed to modify it as desired.
Example: The TextNode2D.LineHeight is a property where the auto values are often used. By switching auto on (which happens by default), Candera will compute the value to be used based on the associated text style. The user can overwrite this auto value through by switching auto off (using the auto button) and force the engine to use the specified line height which now the user can modify. By setting the height to “0” the automatic computation is again enabled and Candera will return to the usage of the automatically determined line height for text placement.


More information is available in chapter Auto Values.
HMI Report
The HMI Report feature produces statistics, summary and details for the solution loaded in Scene Composer, including but not limited to:
- How many bitmaps are loaded in this solution?
- How many of them are actually used and which is the biggest/smallest?
- What controls/behaviors/texts do I have in the solution and where are they used?
The HMI report is presented in browser in the form of a set of HTML documents. Each document is linked to one another by a navigation bar.
To generate an HMI report after loading a solution, one must click on the Report button from within the main bar in the upper part of the screen and select the Create Solution Report: This will open the HMI Report Customization Dialog, where in the 2 mandatory text fields the user defines where to store the generated output and from where to load the css file necessary to style said HTML documents. Furthermore, using the checkbox grid the user can customize the resulting report.


The 2 textboxes are for setting up where the output HTML documents shall be stored and from where to retrieve the css file needed to style said HTML documents. These 2 fields are mandatory. The checkbox grid is for selecting which of the available sub reports you would like to have added.


More information is available in chapter HMI Report.
Annotations
A new property named Annotations was introduced for every SceneComposer element. This property can be used to assign individual information to the selected object and it is located in the Properties panel under the General section. The property can be restored to its default empty state using the Restore Default button.
Annotations are not included in the asset, but only in the HMI report.


More information is available in chapter Annotations.
Canvas Text Outline
This feature enables adding an outline to a canvas text in a 3D scene by using a dedicated shader program.


More information is available in chapter Canvas Text Outline.
Support for Object Script Reference Properties
It is possible to assign objects from the solution script component properties. Once a script has been assigned to a node, it is shown as a script component in the scene extra tree (a script having user parameter values) and the property panel will display the properties exposed by the script.
Scripts can use assigned objects for post processing effects, animating nodes in the scenes, starting and stopping animations, and other.
More information is available in chapter Support for Object Reference Properties.
Script Component Templates
It is possible to create a template from an existing script component. To do this, just right click on an existing script component - in Scene extra-Tree - and from the context menu select the "Save as Template... > ScriptComponent..." option.


More information is available in chapter Script Component Templates.
Post Processing Effects
Until now the rendering flow of the effect had to be modelled completely with the scene graph including manual management of any temporary render targets involved, creating a rigid structure that was hard to extend and tweak since effect parameters were scattered around in the scene graph and its assets. That is why the usage of post processing effects was cumbersome and not intuitive. Consequently, the process was simplified through the introduction of a scriptable post processing pipeline and the creation of predefined effects. Since this version on, the user has the possibility to use them in an easy and intuitive manner, just by dragging and dropping any predefined effect on a camera node, or by creating a new effect with just implementing a single callback in a script.
Four predefined post processing effects are available in the "Templates": "References > SCL:ConstructionKit > ScriptComponents":
- Bloom
- Depth of Field
- FXAA ("Fast Approximate Anti-Aliasing")
- Blur


A new sample "PostProcessing" was added to demonstrate how post processing effects can be used.


More information is available in chapter Post Processing Effects.
State Machine Extensions for Sub-charting and Debugging
The state machine support has been extended with new modeling and debugging capabilities, for example sub-charts, used to abstract and hide modeling details of complex states and transitions, or the possibility to inspect the active state, transition dynamics and executed actions by attaching to a running Player and opening the State Machine panel.
More information is available in chapter State Machine.
Export Images
If necessary, it is possible to export any imported image from solution to a .png file. This operation can be done through the context menu which is available when right click on any image.


More information is available in chapter Export Imported Images.
New Controls for CGI Studio 3.7


More information is available in chapter Breadcrumb.
Circular Slider Control
In addition to the Slider, there is now a circular version called Circular Slider.


More information is available in chapter CircularSlider.
Dial Control
A Dial behaves similar to a physical rotary switch.


More information is available in chapter Dial.
Drawer Control
CGI Studio 3.7 provides a control that allows to hide content that can be shown again when it is needed.
This control is Touch Screen compatible, but can also be used with Events.




More information is available in chapter Drawer.


More information is available in chapter IconButton.
Particle Emitter Control
CGI Studio 3.7 provides a way to implement Particle Effects with Controls and Behaviors.
There is a Showcase of different Particles Effects integrated in the 3D Effects Solution.

Particles.PNG
Solution: 3D Effects
More information is available in chapter Point Sprite Emitter.
Spin Box Control
CGI Studio 3.7 provides a Spin Box. With it Values can be increased or decreased by a certain value.


More information is available in chapter SpinBox.
Behaviors: Deep Copy/Paste
If a behavior is just the reference of another (parent) behavior, the referenced behavior will be marked by a specific sign and a tooltip will become visible on it:
referenced_behavior.png A Referenced Behavior and Its Visible Link

If a behavior which contains referenced behavior is copied, a new option will become available in the context menu: "Deep Paste".
behaviors_deep_paste.png "Deep Paste" Option in Context Menu

More information is available in chapter Behaviors: Deep Copy/Paste Operation.
Focus Navigation
Gesture Recognition
An abstract interface for gesture detectors has been introduced. Existing gestures (click, press/release and drag/drop) have been restructured to implement that interface. In addition a swipe/flick gesture detector (detecting swipes/flicks to the left/right/up/down) and a transform gesture detector (rotation/pan/pinch) have been implemented.
More information is available in chapter Behavior Gesture.
Enhanced Player
The Player has now a new interface (CGIPanel) that allows to use the newly introduced features like:
- panel usability on target (TCP/IP, Serial), logging, scripting, render statistics, snapshots or recording of application handling.
BSS_bcp_building_cgi_panel.png Player Panel

More information is available in chapter Player.
Enhanced Render Statistics
Render Statistics inform the user about current performance indicators during rendering. Therefore they are of major help when trying to identify performance bottlenecks. This statistic has been enhanced with the following information:
2D:
- Uploaded BitmapImages
- Total Uploaded BitmapImages
- Render Camera2D Calls
3D:
- Uploaded Textures (incl. breakdown to BitmapTextureImages, CubeMapTextureImages, DirectTextureImages)
- Total Uploaded Textures (incl. breakdown to BitmapTextureImages, CubeMapTextureImages, DirectTextureImages)
- Uploaded Shader Programs
- Total Uploaded Shader Programs
- Uploaded VertexBuffers
- Total Uploaded VertexBuffers
- Render Camera Calls
If CANDERA_RENDER_STATE_CACHING_ENABLED and CANDERA_DETAIL_STATISTICS_ENABLED are set to true, additional information about Render State Cache Effectivity is available.
- Render State Cache Hits informs about the number of OpenGL state changes that were saved because the value was already cached.
- Render State Cache Misses informs about the number of OpenGL state changes that had to be executed because the new value was not in the cache.
- With these values the Render State Cache Hit Rate can be calculated, where 100% would mean no state changes.
These values are visible either in the Render Statistics Overlay of the Player, the Render Statistics Panel in SceneComposer (only for applicable properties) or directly accessible from the API.


Default Render Target
A new camera is automatically assigned to a default render target. The user can specify a default render target via context menu in the Render Target panel. In case that no default render target is defined a default render target is set automatically when a new camera is created. Especially for beginners this features eases the start with Scene Composer.