Ogre Rendering System http://antsam.blogone.net AntsamCGD@hotmail.com geometry systemmaterial systemshader systemrendering system API API DirectX OpenGL API Pipeline Abstraction API Pipeline Pipeline configurationpipeline Pipeline Design Render System Target Scene Manager Render System Render Target UML Render System UML Render System UML Part one Render System UML Part one View Port Camera Render System Root Render System View Port Camera Render Target
Render System Render Target Root Good^_^ Scene Manager Render Systemincluding view portcameratarget Root(engine or Resource Manager) meshentity Scene Manager Render System Render Target UML Render System UML Part two Render Target ^_^ listener Camera
Camera Camera Camera control^_^ Frustum Cull Camera Control
^_^Frustum Cull Object View Port Render Target Render Target Render Target
Render Target Fpsframe per secondlistenerrender Window Render Texture
^_^ Win32 Object Window Render System Render System
1. _set set Engine _settexture Texture DirectX Texture
DirectX API ^_^ MatrixTexture Depth Buffer 2. Set Get Stencil BufferLight Vertex Buffer Buffer Render System API DirectX API
Buffer Buffer UML DirectX Buffer UML Buffer Buffer Buffer Buffer Buffer Mesh
Buffer Hardware Manager new Buffer Hardware Manager Hardware Singleton Hardware Manager UML Hardware Buffer Manager DirectX D3D9 Hardware Buffer Manager Vertex Buffer Index Buffer Buffer Buffer ColorPosition NormalTexture Coordinate Declaration Vertex Buffer Binding /** Records the state of all the vertex buffer bindings required to provide a vertex declaration with the input data it needs for the vertex elements. @remarks Why do we have this binding list rather than just have VertexElement referring to the vertex buffers direct? Well, in the underlying APIs, binding the vertex buffers to an
index (or 'stream') is the way that vertex data is linked, so this structure better reflects the realities of that. In addition, by separating the vertex declaration from the list of vertex buffer bindings, it becomes possible to reuse bindings between declarations and vice versa, giving opportunities to reduce the state changes required to perform rendering. @par Like the other classes in this functional area, these binding maps should be created and destroyed using the HardwareBufferManager. class _OgreExport VertexBufferBinding { public: /// Defines the vertex buffer bindings used as source for vertex declarations typedef std::map<unsigned short, HardwareVertexBufferSharedPtr> VertexBufferBindingMap; protected: VertexBufferBindingMap mbindingmap; unsigned short mhighindex; Buffer API Texture API Texture Texture UML
UML Texture Buffer Texture load OK ^_^ Summary