Page History: Renderer Element
Compare Page Revisions
Page Revision: 2013/08/08 16:42
The Renderer element allows one to render any static graphical content stored in the Material Library, for example bitmaps or vector shapes. The Renderer element provides a scalable viewport for the content, spatial transformations and various visual effects. Several hardware-accelerated image processing procedures are also available. Multiple content items can be loaded into element's list in order to form a visual stimulus set.
|
Renderer Element
|
Info |
Category: |
Visual stimuli |
|
AddIn: |
Base Elements |
Creator: |
OkazoLab Team |
|
Scope: |
Parent Event |
Owns Snippets: |
no |
|
Usage: |
Runtime Screen,Snippets |
Snapshots
3D Graphic | Jpg/Png pictures | Vector Graphic | Built-in library vector graphic |
Practical use
The rendering can be tuned with various properties of the Renderer element. For example, you can adjust the size and contrast of the original graphics item and set its rotation angle.
Each Renderer element works with its own list of loaded Library items. It's handy for experimental scenarios where you need to present a visual stimulus selected randomly from a stimulus set. You can form a list by simply dragging library items to a Renderer element in the Element Panel. The items included in the list can be always reordered such that each item has its own integer index. Renderer elements has a property that defines which item is currenlty selected and rendered on the screen. Changing this property will cause rendering of a new item.
Creating a single Renderer on a visual scene
- Click on "add element", and select the Renderer element.
- Navigate to the Material Library.
- Drag selected visual materials (e.g an image or images) onto the Renderer element, in the element list on the left of the main window. Notice that you can change sorting order
- Click on an expander button of Renderer icon to check a list loaded items and rearrange them, if necessary.
- Adjust a position and size of the Renderer viewport on the event surface.
- Check other properties of the Renderer element in the property grid (the element has to be selected first)
Using Renderer to create a switchable stimulus list
- The procedure is the same as above, except that you may drag & drop multiple visual materials onto the element.
You may click on the down arrows to expand the list of elements.
You may double click on one of the material items in the element to draw it on screen.
The 'Selected Index' property will hold the index of the item in the element and the 'Selected Item' property will hold the name of the item. These properties can be changed at run time as described below.
Multiple Materials
Adjusting the renderer at runtime using a proxy variable
You can change what the Renderer Element shows at run time by using code and a
Proxy Variables.
- Create a Renderer Element with multiple material items as above.
- Create a Proxy Variable from the "Selected Index" property. (please see Proxy Variables if you do not know how to do this). E.g name it "StimulusIndex"
- Now you can use the following code to change which item is displayed in the Renderer Element:
StimulusIndex=2;
- Alternatively, one can create a Proxy Variable for the "Selected Item" property, and then use code to change the item according to it's name.
e.g
StimulusItem="Red Circle";
Synchronized Internal Actions
Experiment Start | Parent Event Onset | Status change between Onset/Offset | Parent Event Offset | Experiment End |
---|
| Is displayed on screen | | Is removed from screen | |
Properties
+=== Properties inherited from the Visual Element class ===
Name | Description | Constraints | Value Type | Upon Runtime Change |
---|
VISUAL APPEARANCE |
Alpha Masking | Defines whether the visual content rendered by this element will be used as an opacity mask which is applied onto the given event surface. The active opacity mask allows one to expose pixels of the parent event surface through a solid background of the given event. If the value is true, the darker pixels of the content will make more transparent holes on the entire event surface. | | Boolean | |
AntiAliasing | If true, the rendered content will be anti-aliased for smoother visual appearance. If false, rendering will be authentic to its source, e.g. a bitmap. | | Boolean | |
Position | Defines the position of the element viewport on the screen. The position can be set in any of three coordinate systems: a) pixels, b) polar, c) central. | | clPoint | |
Size | Defines the size of the element viewport on the screen. The size can be set in any of three coordinate systems: a) pixels, b) visual degrees, c) 'relative-to-screen' size. | | clSize | |
Z Order | Indicates the current depth order of the element viewport on the surface of the parent event. The greatest number corresponds to the top position. The order can be changed by moving the element up and down in the element list. | | Int32 | |
Pivot Point | Defines the pivot point (coordinate and the rotation centers) within the element viewport. | | stAlignment or Int32 | |
Visible | Defines whether the element is currently visible on the event surface. The property is convenient for switching visual content on and off. | | Boolean | |
Rotation | Defines the rotation angle (in degrees) of element viewport relative to the its pivot point. | | Double in the range 0..360 | |
EFFECTS |
Transparent Color | The color of the original pixels of rendered content that will be set as transparent. | | stColor | |
Transparency Tolerance | Tolerance ratio for choosing colors that become transparent. Zero means that effect is not applied, 1 denotes that all colors will become trasparent. | | Int32, range (0..100) | |
Color Mask | Produces a multiplicative combination of the original pixels and the selected mask color (except the alpha channel). The effect emulates a look through a colored glass. White or transparent mask color doesn't change the original pixels. | | stColor | |
Opacity | Opacity of the rendered content. | | Int32, range (0..100) | |
Contrast | Contrast of the rendered content. | | Int32, range (-100..100) | |
Brightness | Defines the brighness of the rendered content. | | Int32, range (-100..100) | |
Saturation | Saturation of the rendered content. | | Double | |
Pixelation | Defines the pixel scale of the rendering. | | Int32, range (0..100) | |
Blurring | The radius used in the gaussian blur of rendered content, as a pixel-based factor. The default is 0 which means no blurring. | | Int32 | |
POSITIONAL JITTER |
Reset Jitter | Set to true at runtime to reset the current positional jitter. | | Boolean, set true for action | |
Current Jitter | Jitter range, in pixels (non inclusive). | . | clSize | |
Jitter Range | Jitter range, centered at the original position of the element. | . | clSize | |
+=== Properties inherited from the Library Element class ===
Name | Description | Constraints | Value Type | Upon Runtime Change |
---|
Material List |
Selected Index | Defines the index of the active item in the material list of the element. | | Int32 | A change causes the current item to be reloaded and an update of the element. |
Selected Item | Defines the name of the active item in the material list of the element. The name matches to a name of item in the Material Library | | String | A change causes the current item to be reloaded and an update of the element. |
Item Count | Returns the total number of items in the material list of the element. | | Int32 |
Equalize RGB | The property is only available in the visual element. If the value is true, the average RGB pixel intensity will be equalized across all items in the material list. You can turn on this property, when you need to obtain a luminance-balanced set of visual stimulus. | | Boolean | |
+=== Properties inherited from the base Element class ===
Inherited properties of clElement
Name | Description | Constraints | Value Type | Upon Change |
---|
Control |
Is Enabled | If set to false the element is completely omitted when the experiment is run. | | Boolean |
|
Title | Title of the element. | | String |
|