The textured_background and coloured_background macros both create a DataObject that can be used as a static background to a Viewer window. The textured_background macro uses a supplied image field while the coloured_background macro generates a interpolated fade based on 4 RGB values.
Name | Type | Description | |
texture_in | Image | Image to use as Viewer background. | |
Name | Type | Description | UI Control |
depth | float | Distance background is from camera. | None |
Upper_Left_Red Upper_Left_Green Upper_Left_Blue |
float | RGB values for upper left corner of image. | UIslider |
Upper_Right_Red Upper_Right_Green Upper_Right_Blue |
float | RGB values for upper right corner of image. | UIslider |
Lower_Left_Red Lower_Left_Green Lower_Left_Blue |
float | RGB values for lower left corner of image. | UIslider |
Lower_Right_Red Lower_Right_Green Lower_Right_Blue |
float | RGB values for lower right corner of image. | UIslider |
Name | Type | Description | |
out_fld | Mesh+Node_Data | Field containing Quad cell-set that is used as background. | |
out_obj | GDobject | Directly renderable output object. | |
The textured_background and coloured_background macro both create a DataObject that can be used as the background to a Viewer window. The textured_background macro allows an image to be used as the background while the coloured_background macro allows the user to specify a colour fade.
The effect of a static viewer window background is produced by creating a field that contains a single square cell-set. This cell-set is sized so that it covers the viewer window and is slightly in front of the far clipping plane. The far clipping plane specifies the maximum distance that an object can be away from the camera before it is ignored. Therefore by placing the background slightly in front of the far clipping plane it should be behind everything else. The field is then placed into a DataObject and the transformation of the DataObject is locked. This ensures that the background is not transformed with the rest of the scene.
The background image is created by using node data. The coloured_background macro creates a set of node data with a triplet of RGB values at each corner of the square. AVS/Express interpolates between each of these RGB values as normal to create the colour fade effect that can be seen. In a similarly the textured_background macro creates a set of node data. However this node data specifies texture coordinates for each corner of the square. These texture coordinates are then used to texture map the square with the input image. The input image can be any AVS/Express image field. The output of the background_generator macro can be used to generate an alternate form of colour fade.
texture_in
2D image field that should be used to texture map the generated mesh data. This input is only present on the textured_background macro.
depth
This floating point parameter specifies now far the background should be from the camera. By default this distance is 0.98 and therefore the background is just in front of the far clipping plane. Normally this distance will not need to be changed and hence no user interface component is presented. However if the far clipping plane is altered or you wish to occlude some parts of your model this parameter can be used.
Upper_Left_Red Upper_Left_Green Upper_Left_Blue |
Upper_Right_Red Upper_Right_Green Upper_Right_Blue |
Lower_Left_Red Lower_Left_Green Lower_Left_Blue |
Lower_Right_Red Lower_Right_Green Lower_Right_Blue |
The shading of the quad cell-set generated by the coloured_background macro is calculated by blending the colours at the corners towards the centre of the image. The colours of the 4 corners of the image are specified by the parameters shown in the table above. The colours are specified in the Red-Green-Blue colour model. These parameters are only present on in the coloured_background macro.
out_fld
Output field containing the generated background field data. This field contains a Quad cell-set and a single set of node data. In the coloured_background macro this node data contains the RGB colour values for each corner while in the textured_background macro this node data contains the texture coordinates for each corner. Normally this output should not be used as its transformation is not locked and it does not contain the necessary texture image.
out_obj
The GDobject version of the output. If this output is connected to a viewer a background will be placed into that viewer window. The output object contains the generated field data and, if necessary, the texture image data. The transformation for the output object is locked so that the background will always stay at the back of the visualization.
The user macro coloured_background uses the RGB_BackgroundParams parameter block and the RGB_BackgroundUI user interface macro. The textured_background macro does not use either a parameter block or a user interface.
The TexturedBackgroundEg example application uses the background_generator macro to create a background image and then uses it as the background to the teapot. The ColouredBackgroundEg example application creates a similar colour fade and also uses it as the background to the teapot.
iac_proj/backgrnd/bg_mods.v contains the V definitions of the BackgroundCore module and the BackgroundParams and RGB_BackgroundParams parameter blocks.
iac_proj/backgrnd/bg_macs.v contains the V definitions of the BackgroundUI and RGB_BackgroundUI UI macro, the BackgroundFunc functional macro and the background, textured_background and coloured_background user macros.
iac_proj/backgrnd/bg_apps.v contains the V definition of the BackgroundEg, TexturedBackgroundEg and ColouredBackgroundEg example applications.
Neither of these user macros rely on low-level code and hence do not need to be compiled. The background_generator user macro does rely on the low-level BackgroundCore module. If this macro is to be used the project should be compiled as normal.
Sabreen Vig, Larry Gelberg, Ian Curington Advanced Visual Systems, Inc.
Andrew Dodd, International AVS Centre
International AVS Centre Manchester Visualization Centre Manchester Computing University of Manchester Oxford Road Manchester United Kingdom M13 9PL