OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Typedefs | Enumerations | Functions | Variables
MWRender Namespace Reference

Rendering. More...

Classes

class  ActorAnimation
 
class  GlowUpdater
 
class  ResetAccumRootCallback
 
class  FindLowestUnusedTexUnitVisitor
 
class  EffectAnimationTime
 
class  PartHolder
 Detaches the node from its parent when the object goes out of scope. More...
 
class  Animation
 
class  ObjectAnimation
 
class  DebugDrawer
 
class  Camera
 Camera control. More...
 
class  CellRender
 
class  DrawOnceCallback
 
class  UpdateCameraCallback
 
class  CharacterPreview
 
class  InventoryPreview
 
class  RaceSelectionPreview
 
class  CreatureAnimation
 
class  CreatureWeaponAnimation
 
class  EffectManager
 
struct  Box
 
class  GlobalMap
 
class  LocalMap
 Local map rendering. More...
 
class  HeadAnimationTime
 
class  NeckController
 
class  DepthClearCallback
 A RenderBin callback to clear the depth buffer before rendering. More...
 
class  OverrideFieldOfViewCallback
 
class  NpcAnimation
 
class  PtrHolder
 
class  Objects
 
class  Pathgrid
 
class  RenderingInterface
 
class  StateUpdater
 
class  PreloadCommonAssetsWorkItem
 
class  NotifyDrawCompletedCallback
 
class  RenderingManager
 
struct  Emitter
 
class  RippleSimulation
 
class  RotateController
 
class  AtmosphereUpdater
 
class  AtmosphereNightUpdater
 
class  CloudUpdater
 
class  CameraRelativeTransform
 
class  ModVertexAlphaVisitor
 
class  UnderwaterSwitchCallback
 Hides the node subgraph if the eye point is below water. More...
 
class  CelestialBody
 A base class for the sun and moons. More...
 
class  Sun
 
class  Moon
 
class  RainShooter
 
class  AlphaFader
 
class  RainFader
 
struct  WeatherResult
 
struct  MoonState
 
class  SkyManager
 The SkyManager handles rendering of the sky domes, celestial bodies as well as other objects that need to be rendered relative to the camera (e.g. weather particle effects) More...
 
class  TerrainStorage
 Connects the ESM Store used in OpenMW with the ESMTerrain storage. More...
 
class  TextureOverrideVisitor
 
class  NoTraverseCallback
 
class  ClipCullNode
 Allows to cull and clip meshes that are below a plane. Useful for reflection & refraction camera effects. Also handles flipping of the plane when the eye point goes below it. To use, simply create the scene as subgraph of this node, then do setPlane(const osg::Plane& plane);. More...
 
class  FudgeCallback
 
class  Refraction
 
class  Reflection
 
class  DepthClampCallback
 DepthClampCallback enables GL_DEPTH_CLAMP for the current draw, if supported. More...
 
class  Water
 Water rendering. More...
 
class  WeaponAnimationTime
 
class  WeaponAnimation
 Handles attach & release of projectiles for ranged weapons. More...
 

Typedefs

typedef boost::shared_ptr
< PartHolder
PartHolderPtr
 
typedef std::map< std::pair
< std::string, int >
, std::vector< const
ESM::BodyPart * > > 
RaceMapping
 

Enumerations

enum  RenderBins {
  RenderBin_Sky = -1, RenderBin_Default = 0, RenderBin_Water = 9, RenderBin_DepthSorted = 10,
  RenderBin_OcclusionQuery = 11, RenderBin_FirstPerson = 12, RenderBin_SunGlare = 13
}
 Defines the render bin numbers used in the OpenMW scene graph. The bin with the lowest number is rendered first. More...
 
enum  RenderMode {
  Render_CollisionDebug, Render_Wireframe, Render_Pathgrid, Render_BoundingBoxes,
  Render_Water, Render_Scene
}
 
enum  VisMask {
  Mask_UpdateVisitor = 0x1, Mask_Effect = (1<<1), Mask_Debug = (1<<2), Mask_Actor = (1<<3),
  Mask_Player = (1<<4), Mask_Sky = (1<<5), Mask_Water = (1<<6), Mask_SimpleWater = (1<<7),
  Mask_Terrain = (1<<8), Mask_FirstPerson = (1<<9), Mask_Sun = (1<<10), Mask_WeatherParticles = (1<<11),
  Mask_Scene = (1<<12), Mask_GUI = (1<<13), Mask_ParticleSystem = (1<<14), Mask_RenderToTexture = (1<<15),
  Mask_Lighting = (1<<16)
}
 

Functions

static NpcAnimation::PartBoneMap createPartListMap ()
 
RenderingManager::RayResult getIntersectionResult (osgUtil::LineSegmentIntersector *intersector)
 
osg::ref_ptr
< osgUtil::IntersectionVisitor > 
createIntersectionVisitor (osgUtil::Intersector *intersector, bool ignorePlayer, bool ignoreActors)
 
void overrideFirstRootTexture (const std::string &texture, Resource::ResourceSystem *resourceSystem, osg::ref_ptr< osg::Node > node)
 
void overrideTexture (const std::string &texture, Resource::ResourceSystem *resourceSystem, osg::ref_ptr< osg::Node > node)
 
osg::ref_ptr< osg::Image > readPngImage (const std::string &file)
 

Variables

static RaceMapping sRaceMapping
 

Detailed Description

Rendering.

Typedef Documentation

typedef boost::shared_ptr<PartHolder> MWRender::PartHolderPtr
typedef std::map< std::pair<std::string,int>,std::vector<const ESM::BodyPart*> > MWRender::RaceMapping

Enumeration Type Documentation

Defines the render bin numbers used in the OpenMW scene graph. The bin with the lowest number is rendered first.

Enumerator
RenderBin_Sky 
RenderBin_Default 
RenderBin_Water 
RenderBin_DepthSorted 
RenderBin_OcclusionQuery 
RenderBin_FirstPerson 
RenderBin_SunGlare 
Enumerator
Render_CollisionDebug 
Render_Wireframe 
Render_Pathgrid 
Render_BoundingBoxes 
Render_Water 
Render_Scene 

Node masks used for controlling visibility of game objects.

Any node in the OSG scene graph can have a node mask. When traversing the scene graph,
the node visitor's traversal mask is bitwise AND'ed with the node mask. If the result of this test is 0, then the node and all its child nodes are not processed.
Important traversal masks are the camera's cull mask (determines what is visible),
the update visitor mask (what is updated) and the intersection visitor mask (what is selectable through mouse clicks or other intersection tests).
In practice, it can be useful to make a "hierarchy" out of the node masks - e.g. in OpenMW,
all 3D rendering nodes are child of a Scene Root node with Mask_Scene. When we do not want 3D rendering, we can just omit Mask_Scene from the traversal mask, and do not need to omit all the individual element masks (water, sky, terrain, etc.) since the traversal will already have stopped at the Scene root node.
The comments within the VisMask enum should give some hints as to what masks are commonly "child" of
another mask, or what type of node this mask is usually set on.
Note
The mask values are not serialized within models, nor used in any other way that would break backwards compatibility if the enumeration values were to be changed. Feel free to change them when it makes sense.
Enumerator
Mask_UpdateVisitor 
Mask_Effect 
Mask_Debug 
Mask_Actor 
Mask_Player 
Mask_Sky 
Mask_Water 
Mask_SimpleWater 
Mask_Terrain 
Mask_FirstPerson 
Mask_Sun 
Mask_WeatherParticles 
Mask_Scene 
Mask_GUI 
Mask_ParticleSystem 
Mask_RenderToTexture 
Mask_Lighting 

Function Documentation

osg::ref_ptr<osgUtil::IntersectionVisitor> MWRender::createIntersectionVisitor ( osgUtil::Intersector *  intersector,
bool  ignorePlayer,
bool  ignoreActors 
)

Here is the caller graph for this function:

static NpcAnimation::PartBoneMap MWRender::createPartListMap ( )
static
RenderingManager::RayResult MWRender::getIntersectionResult ( osgUtil::LineSegmentIntersector *  intersector)

Here is the caller graph for this function:

void MWRender::overrideFirstRootTexture ( const std::string &  texture,
Resource::ResourceSystem resourceSystem,
osg::ref_ptr< osg::Node >  node 
)

Here is the caller graph for this function:

void MWRender::overrideTexture ( const std::string &  texture,
Resource::ResourceSystem resourceSystem,
osg::ref_ptr< osg::Node >  node 
)

Here is the call graph for this function:

Here is the caller graph for this function:

osg::ref_ptr<osg::Image> MWRender::readPngImage ( const std::string &  file)

Here is the caller graph for this function:

Variable Documentation

RaceMapping MWRender::sRaceMapping
static