Renderer Properties are values that may be attached to a renderer object, using Q3Object_SetProperty, to request special behavior. The request may be handled by only some renderers (e.g., only the OpenGL renderer) or only some platforms.
Data type: TQ3Boolean.
Default value: kQ3False.
When this property is set to kQ3True on an OpenGL renderer, rendering can include shadows, provided that at least one light has been set up to cast shadows. Shadows can also be turned off in some cases by cast-shadows style objects and NULL illumination shader objects.
Data type: TQ3Boolean.
Default value: kQ3False.
By default, OpenGL rendering calculates lighting at each vertex and then interpolates across triangles. If you set this property to kQ3True, the OpenGL renderer will instead compute lighting at each pixel. This is most noticeable when the triangulation is course or when spot lights are used.
Per-pixel lighting is implemented using the OpenGL Shading Language, which may not be available on some older video cards and drivers.
Data type: TQ3Boolean.
Default value: kQ3True.
A complex triangle mesh can be rendered more efficiently if the triangles are arranged in triangle strips. When this property is not kQ3False, the OpenGL renderer will automatically compute and cache triangle strips for sufficiently large TriMesh objects.
It is possible to compute triangle strips yourself using the Q3TriMesh_MakeTriangleStrip function, and supply them to the renderer using CETriangleStripElement_SetData.
Data type: TQ3Boolean.
Default value: kQ3False.
By default, Quesa assumes that pixel data for a texture with an alpha channel is provided in premultiplied form, meaning that the red, green, and blue values have been multiplied by the alpha value. If your texture data is not premultiplied, you can set this property to kQ3True and have Quesa do the conversion for you.
Data type: TQ3Float32.
Default value: Reciprocal of 2 to the number of bits per color component.
When a point or spot light is set to attenuate with distance, it will effectively provide no light, and hence no shadows, beyond a certain distance. The render takes advantage of that for efficiency, culling a mesh from a shadow pass if the light's attenuated brightness is less than the given value. Increasing the threshold above the default may speed rendering, at some expense in shadow accuracy.
Data type: TQ3Float32.
Default value: 1.0.
The property provides the line width to be used in wire frame and hidden line renderers. (In the OpenGL renderer, you can set the width of lines using line width style objects.)
Data type: TQ3Boolean.
Default value: kQ3True.
In the WireFrame Renderer, this property determines whether lines should follow the geometry color or be drawn in black. In the Hiddenline Renderer, this property determines whether the renderer has to fill color the geometries or leave them white.
Data type: TQ3Boolean.
Default value: kQ3True.
The OpenGL renderer accelerates rendering of large meshes using vertex buffer objects (VBOs) so long as the OpenGL driver claims to support them. In the unusual case that the driver supports VBOs incorrectly, you can use this property to avoid the bug.
Data type: TQ3Boolean.
Default value: kQ3True.
The OpenGL driver implements kQ3AntiAliasModeMaskEdges using glEnable( GL_LINE_SMOOTH ). When dealing with a buggy driver, you may wish to turn off the use of GL_LINE_SMOOTH using this property.
Data type: TQ3Float32.
Default value: 0.0.
When used with per-pixel lighting, this rounds the light being applied to each pixel to certain values, producing a cartoonish look. More precisely, if the value q is provided here, each component c of the light will be replaced by the value floor( c * q ) / q, resulting in an integer multiple of 1/q. The greater the value of q, the more distinct shades are produced. A value less then or equal to 0.0 turns off quantization.
Data type: TQ3Float32.
Default value: 1.0.
Range: [0, 1].
When used with quantized per-pixel lighting (see kQ3RendererPropertyQuantizePerPixelLight) this controls how much diffuse lighting is allowed to light triangles that are nearly perpendicular to the view vector.
Data type: TQ3Float32.
Default value: 1.0.
Range: [0, 1].
Normally, geometry with transparent color or texture does not affect the OpenGL depth buffer. By setting this property, you can make sufficiently opaque fragments (alpha greater than the given threshold) update the depth, at the expense of a little extra rendering time.
Data type: TQ3RendererPassInfo.
The OpenGL renderer sets this property so that client code can tell whether the pass is for non-shadowing lights, marking a shadow, or adding light outside a shadow. For instance this information can be used to make certain objects only cast shadows from certain lights.