flags

Set of 'switches' to be set in a VIEW definition, separated by " | ". Individual flags can also be set or reset at runtime. All flags are reset by default. The following flags are supported:

Parameters:

SHOW

If this flag is set, the view actively renders on the screen or on the target bmap. By resetting this flag the view is not active unless it's a postprocessing stage. The camera view is set to SHOW by default.

AUDIBLE

If this flag is set, the view position and orientation determines direction and distance of sound sources and entity sounds in the level. The view must be visible for this. The camera view has this flag set by default. To avoid a sound mix-up, only one view should have this flag set

ISOMETRIC

The view uses an orthogonal projection, rather than a perspective projection. The view frustum is not a cone, but a rectangular area with a size either given by the arc parameter, or by the left, right, bottom, up border parameters . This can be used for isometric games from a bird's view perspective, or for clipping with a rectangular view volume e.g. for PSSM shaders. The distance of the camera to an object does not affect its size on the screen in this mode; this causes far objects - f.i. the sky - to appear extremely magnified.  LC   C 

UNTOUCHABLE

Entities in this view don't react on the mouse. This speeds up view rendering.    LC 

PROCESS_SCREEN

Prevents that a) the screen is cleared before rendering and b) that the previous view stage automatically renders into the render_target. Can be used for rendering an additional scene over the previous view (see stage).  LC 

PROCESS_TARGET

Does not render a scene, but just a screen-sized rectangle with the content of the render_target or the render_stencil (see stage). Can be used for post-processing a view or for blurring the content of the stencil buffer.  LC 

CHILD

Inherits all VIEW parameters from the previous view stage, except for the flags, material, bmap, and stage parameters. The screen position and size parameters are only inherited when both views render into target bitmaps. The entity culling and sorting process is skipped, so the same content as of the previous stage is rendered. Filter flags such as NOFLAG1, NOWORLD, etc. have no effect.  LC 

TRANSLUCENT 

If this flag is set, the view is displayed translucent over the background. The translucency can be given through the view's alpha parameter in percent. Some special effects can be achieved this way, but translucent views are rendered with reduced quality - static shadows are not visible and the sorting order of polygons can be wrong.  C

PORTALCLIP

Level surfaces are clipped away at the view's clip plane. Usually used for mirrors. NOSHADER and NOPARTICLE should be set when a clip plane is used.  C

CULL_CW

Polygons are culled clockwise instead of counterclockwise (the same happens when arc or aspect are negative). Useful if the view is to be rendered onto a bmap that is used for mirror or reflection effects.

NOCULL

Disables BSP tree culling for the view. If this flag is set, objects are rendered even when hidden behind walls. The BSP tree is still used for rendering, but it's precaclulated visibility information (PVS) is not used.   P  

NOSHADOW

If this flag is set, no shadows are generated, and the render_stencil shadow map is not rendered over the scene. Useful for special views used for mirrors, radar screens etc, or for views that process parts of the scene in a view stage chain.

SHADOW

The opposite of NOSHADOW: Only level geometry and shadow-throwing entities are rendered. If both flags are set (SHADOW | NOSHADOW), level geometry and shadow-throwing entities are rendered, but shadows are not generated. Useful for rendering depth maps for shadow mapping purposes.  LC 

NOSKY

The sky or level background is not rendered, and the screen buffer and z buffer are not cleared at the beginning (unless the bg parameter is set to a background pixel color) . Set this flag if you want several views to render into the same screen buffer, f.i. for giving the impression of an endless repeating level. An example of this effect can be found in the level_loadendless() function in include\level.c.

SKY

The opposite of NOSKY: Only the sky is rendered.

NOPARTICLE

If this flag is set, no particles are displayed in the view.

NOSHADER

If this flag is set, material effects and shaders are ignored in the view.

NOFLAG1

If this flag is set, no entities and textures with FLAG1 are rendered in the view.

NOCAST

If this flag is set, no entities with CAST flag are rendered in the view. 8.10   LC 

NOWORLD

If this flag is set, no level blocks and terrains are rendered in the view. 8.10   LC 

NOENT

If this flag is set, no map, model, or sprite entities are rendered in the view, except for the genius entity and it's child entities. 8.10   LC 

NOLOD

If this flag is set, the LOD state of entities is used, but not changed by this view. Useful for shadow mapping render stages that render from a light source position and use the LOD steps from a previous view.  LC 

NOFOG

If this flag is set, fog is suppressed in the view, similar to the NOFOG entity flag. 8.03   LC 

Remarks:

In C-Script, a flag was set or reset at runtime by assigning the ON or OFF value (like panel.SHOW = ON;). In C, C++, or Lite-C, a flag is set by or-ing the flags parameter with the flag (panel.flags |= SHOW;) and reset by and-ing the flags parameter with the inverse flag (panel.flags &= ~SHOW;). The predefined macros set, reset, and toggle can also be used for manipulating individual flags.

Example:

VIEW* camera2 =
{
  ...
  flags = SHOW | AUDIBLE;
}

...
set(camera2,NOFLAG1);
...

See also:

VIEW, layer, genius, portal, material, bmap, stage

► latest version online