#include <W3DScene.h>
Inherits SimpleSceneClass, and SubsystemInterface.
Inherited by SkeletonSceneClass.
Protected Member Functions | |
| void | renderOneObject (RenderInfoClass &rinfo, RenderObjClass *robj, Int localPlayerIndex) |
| void | updateFixedLightEnvironments (RenderInfoClass &rinfo) |
| void | flushTranslucentObjects (RenderInfoClass &rinfo) |
| void | flushOccludedObjects (RenderInfoClass &rinfo) |
| void | flagOccludedObjects (CameraClass *camera) |
| void | flushOccludedObjectsIntoStencil (RenderInfoClass &rinfo) |
| void | updatePlayerColorPasses (void) |
Protected Member Functions inherited from SimpleSceneClass | |
| virtual void | Post_Render_Processing (RenderInfoClass &rinfo) |
Protected Member Functions inherited from SceneClass | |
| SceneClass (const SceneClass &) | |
| SceneClass & | operator== (const SceneClass &) |
Protected Member Functions inherited from RefCountClass | |
| virtual | ~RefCountClass (void) |
Protected Attributes | |
| RefRenderObjListClass | m_dynamicLightList |
| Bool | m_drawTerrainOnly |
| LightClass * | m_globalLight [LightEnvironmentClass::MAX_LIGHTS] |
| The global directional light (sun, moon) Applies to objects. | |
| LightClass * | m_scratchLight |
| a workspace for copying global lights and modifying // MLorenzen | |
| Vector3 | m_infantryAmbient |
| scene ambient modified to make infantry easier to see | |
| LightClass * | m_infantryLight [LightEnvironmentClass::MAX_LIGHTS] |
| The global direction light modified to make infantry easier to see. | |
| Int | m_numGlobalLights |
| number of global lights | |
| LightEnvironmentClass | m_defaultLightEnv |
| default light environment applied to objects without custom/dynamic lighting. | |
| LightEnvironmentClass | m_foggedLightEnv |
| default light environment applied to objects without custom/dynamic lighting. | |
| W3DShroudMaterialPassClass * | m_shroudMaterialPass |
| Custom render pass which applies shrouds to objects. | |
| W3DMaskMaterialPassClass * | m_maskMaterialPass |
| Custom render pass applied to entire scene used to mask out pixels. | |
| MaterialPassClass * | m_heatVisionMaterialPass |
| Custom render passed applied on top of objects with heatvision effect. | |
| MaterialPassClass * | m_heatVisionOnlyPass |
| Custom render pass applied in place of regular pass on objects with heat vision effect. | |
| MaterialPassClass * | m_frenzyMaterialPass |
| MaterialPassClass * | m_occludedMaterialPass [MAX_PLAYER_COUNT] |
| Custom rendering passes for each possible player color on the map. | |
| CustomScenePassModes | m_customPassMode |
| flag used to force a non-standard rendering of scene. | |
| Int | m_translucentObjectsCount |
| number of translucent objects to render this frame. | |
| RenderObjClass ** | m_translucentObjectsBuffer |
| queue of current frame's translucent objects. | |
| Int | m_occludedObjectsCount |
| number of objects in current frame that need special rendering because occluded. | |
| RenderObjClass ** | m_potentialOccluders |
| objects which may block other objects from being visible | |
| RenderObjClass ** | m_potentialOccludees |
| objects which may be blocked from visibility by other objects. | |
| RenderObjClass ** | m_nonOccludersOrOccludees |
| objects which are neither bockers or blockees (small rocks, shrubs, etc.). | |
| Int | m_numPotentialOccluders |
| Int | m_numPotentialOccludees |
| Int | m_numNonOccluderOrOccludee |
| CameraClass * | m_camera |
Protected Attributes inherited from SimpleSceneClass | |
| bool | Visibility_Checked |
| RefRenderObjListClass | RenderList |
| RefRenderObjListClass | UpdateList |
| RefRenderObjListClass | LightList |
| RefRenderObjListClass | ReleaseList |
Protected Attributes inherited from SceneClass | |
| Vector3 | AmbientLight |
| PolyRenderType | PolyRenderMode |
| ExtraPassPolyRenderType | ExtraPassPolyRenderMode |
| bool | FogEnabled |
| Vector3 | FogColor |
| float | FogStart |
| float | FogEnd |
Protected Attributes inherited from SubsystemInterface | |
| AsciiString | m_name |
Additional Inherited Members | |
Public Types inherited from SceneClass | |
| enum | { SCENE_ID_UNKOWN = 0xFFFFFFFF , SCENE_ID_SCENE = 0 , SCENE_ID_SIMPLE , SCENE_ID_LAST = 0x0000FFFF } |
| enum | PolyRenderType { POINT , LINE , FILL } |
| enum | ExtraPassPolyRenderType { EXTRA_PASS_DISABLE , EXTRA_PASS_LINE , EXTRA_PASS_CLEAR_LINE } |
| enum | RegType { ON_FRAME_UPDATE = 0 , LIGHT , RELEASE } |
Static Public Member Functions inherited from RefCountClass | |
| static int | Total_Refs (void) |
| static RefCountClass * | Add_Active_Ref (RefCountClass *obj) |
| static RefCountClass * | Set_Ref_Owner (RefCountClass *obj, char *file, int line) |
| static void | Remove_Active_Ref (RefCountClass *obj) |
| static bool | Validate_Active_Ref (RefCountClass *obj) |
Public Attributes inherited from RefCountClass | |
| RefCountNodeClass | ActiveRefNode |
| ActiveRefStruct | ActiveRefInfo |
Static Public Attributes inherited from RefCountClass | |
| static RefCountListClass | ActiveRefList |
Scene management for 3D RTS game
Definition at line 61 of file W3DScene.h.
| RTS3DScene::RTS3DScene | ( | ) |
RTSScene constructor.
Definition at line 95 of file W3DScene.cpp.
| RTS3DScene::~RTS3DScene | ( | ) |
RTSScene desctructor.
Definition at line 201 of file W3DScene.cpp.
| void RTS3DScene::addDynamicLight | ( | W3DDynamicLight * | obj | ) |
| Bool RTS3DScene::castRay | ( | RayCollisionTestClass & | raytest, |
| Bool | testAll, | ||
| Int | collisionType ) |
ray picking against objects in scene
Does a ray intersection test against objects in our scene. By default, it only tests objects determined to be visible to the user. Setting testAll forces it to test all objects in the scene. CollisionType is used as a mask to ignore certain types of objects.
Definition at line 321 of file W3DScene.cpp.
| RefRenderObjListIterator * RTS3DScene::createLightsIterator | ( | void | ) |
Returns an iterator of the lights in the scene.
Definition at line 1642 of file W3DScene.cpp.
|
virtual |
customizable renderer for the RTS3DScene
Custom render method for the RTS3DScene, custom render properties for our particular game go here
Reimplemented from SimpleSceneClass.
Definition at line 1081 of file W3DScene.cpp.
| void RTS3DScene::destroyLightsIterator | ( | RefRenderObjListIterator * | it | ) |
Destroys the iterator returned by createLightsIterator.
Definition at line 1654 of file W3DScene.cpp.
| void RTS3DScene::doRender | ( | CameraClass * | cam | ) |
Render the scene
Definition at line 1710 of file W3DScene.cpp.
|
virtual |
Customized render for the 2d scene management
Reimplemented from SubsystemInterface.
Definition at line 1723 of file W3DScene.cpp.
|
inline |
Drawing control method.
Definition at line 82 of file W3DScene.h.
|
protected |
Find all objects which need to be drawn in a special way because they are occluded by other objects.
Definition at line 250 of file W3DScene.cpp.
| void RTS3DScene::Flush | ( | RenderInfoClass & | rinfo | ) |
Draw everything that was submitted from this scene
Definition at line 833 of file W3DScene.cpp.
|
protected |
Definition at line 1534 of file W3DScene.cpp.
|
protected |
<color assigned to each of the visible players
Definition at line 1326 of file W3DScene.cpp.
|
protected |
Definition at line 1605 of file W3DScene.cpp.
| W3DDynamicLight * RTS3DScene::getADynamicLight | ( | void | ) |
Adds a dynamic light.
Definition at line 1676 of file W3DScene.cpp.
|
inline |
Definition at line 78 of file W3DScene.h.
|
inline |
Definition at line 95 of file W3DScene.h.
|
inline |
Definition at line 92 of file W3DScene.h.
|
inlinevirtual |
Implements SubsystemInterface.
Definition at line 97 of file W3DScene.h.
| void RTS3DScene::removeDynamicLight | ( | W3DDynamicLight * | obj | ) |
Removes a dynamic light.
Definition at line 1700 of file W3DScene.cpp.
|
virtual |
Reimplemented from SceneClass.
Definition at line 952 of file W3DScene.cpp.
|
protected |
Renders a single drawable entity.
Definition at line 577 of file W3DScene.cpp.
| void RTS3DScene::renderSpecificDrawables | ( | RenderInfoClass & | rinfo, |
| Int | numDrawable, | ||
| Drawable ** | theDrawables ) |
Drawing control method.
Renders a single drawable entity.
Definition at line 538 of file W3DScene.cpp.
|
inlinevirtual |
Implements SubsystemInterface.
Definition at line 100 of file W3DScene.h.
|
inline |
Definition at line 77 of file W3DScene.h.
| void RTS3DScene::setGlobalLight | ( | LightClass * | pLight, |
| Int | lightIndex = 0 ) |
Definition at line 238 of file W3DScene.cpp.
|
inlinevirtual |
Implements SubsystemInterface.
Definition at line 98 of file W3DScene.h.
|
protected |
Generate a predefined light environment(s) that will be applied to many objects. Useful for things like totally fogged objects and most generaic map objects that are not lit by dynamic lights.
Definition at line 876 of file W3DScene.cpp.
|
protected |
Generate custom rendering passes for each potential player color. This is currently only used to render occluded objects using the color of the player
Definition at line 925 of file W3DScene.cpp.
|
virtual |
Custom visibility check method for the RTS3DScene, we can put optimized culling methods in here
Reimplemented from SimpleSceneClass.
Definition at line 394 of file W3DScene.cpp.
|
protected |
Definition at line 141 of file W3DScene.h.
|
protected |
flag used to force a non-standard rendering of scene.
Definition at line 130 of file W3DScene.h.
|
protected |
default light environment applied to objects without custom/dynamic lighting.
Definition at line 120 of file W3DScene.h.
|
protected |
Definition at line 114 of file W3DScene.h.
|
protected |
Definition at line 113 of file W3DScene.h.
|
protected |
default light environment applied to objects without custom/dynamic lighting.
Definition at line 121 of file W3DScene.h.
|
protected |
Custom render pass applied in place of regular pass on objects with FRENZY effect.
Definition at line 127 of file W3DScene.h.
|
protected |
The global directional light (sun, moon) Applies to objects.
Definition at line 115 of file W3DScene.h.
|
protected |
Custom render passed applied on top of objects with heatvision effect.
Definition at line 125 of file W3DScene.h.
|
protected |
Custom render pass applied in place of regular pass on objects with heat vision effect.
Definition at line 126 of file W3DScene.h.
|
protected |
scene ambient modified to make infantry easier to see
Definition at line 117 of file W3DScene.h.
|
protected |
The global direction light modified to make infantry easier to see.
Definition at line 118 of file W3DScene.h.
|
protected |
Custom render pass applied to entire scene used to mask out pixels.
Definition at line 124 of file W3DScene.h.
|
protected |
objects which are neither bockers or blockees (small rocks, shrubs, etc.).
Definition at line 136 of file W3DScene.h.
|
protected |
number of global lights
Definition at line 119 of file W3DScene.h.
|
protected |
Definition at line 139 of file W3DScene.h.
|
protected |
Definition at line 138 of file W3DScene.h.
|
protected |
Definition at line 137 of file W3DScene.h.
|
protected |
Custom rendering passes for each possible player color on the map.
Definition at line 129 of file W3DScene.h.
|
protected |
number of objects in current frame that need special rendering because occluded.
Definition at line 133 of file W3DScene.h.
|
protected |
objects which may be blocked from visibility by other objects.
Definition at line 135 of file W3DScene.h.
|
protected |
objects which may block other objects from being visible
Definition at line 134 of file W3DScene.h.
|
protected |
a workspace for copying global lights and modifying // MLorenzen
Definition at line 116 of file W3DScene.h.
|
protected |
Custom render pass which applies shrouds to objects.
Definition at line 123 of file W3DScene.h.
|
protected |
queue of current frame's translucent objects.
Definition at line 132 of file W3DScene.h.
|
protected |
number of translucent objects to render this frame.
Definition at line 131 of file W3DScene.h.