The Dirtchamber
A mixed reality testing environment for real-time global illumination algorithms
Public Member Functions | List of all members
dune::d3d_mesh Struct Referenceabstract

Main D3D mesh interface class. More...

#include <mesh.h>

Inheritance diagram for dune::d3d_mesh:
dune::mesh< DirectX::XMFLOAT3 > dune::aabb< DirectX::XMFLOAT3 > dune::assimp_mesh dune::composite_mesh dune::sdk_mesh dune::simple_mesh dune::gilga_mesh skydome

Public Member Functions

virtual void set_shader (ID3D11Device *device, ID3DBlob *input_binary, ID3D11VertexShader *vs, ID3D11PixelShader *ps)
 Sets the input layout, vertex- and pixel shader of this mesh.
 
virtual void set_shader_slots (INT diffuse_tex=-1, INT normal_tex=-1, INT specular_tex=-1)
 Sets three register numbers to identify the slots the pixel shader is looking for surface textures.
 
virtual void create (ID3D11Device *device, const tstring &filename)=0
 Create a mesh from a given filename.
 
virtual void destroy ()
 Destroy a mesh and free all its resources.
 
virtual void render (ID3D11DeviceContext *context, DirectX::XMFLOAT4X4 *to_clip=nullptr)=0
 Renders the mesh using the shaders previously set. More...
 
- Public Member Functions inherited from dune::mesh< DirectX::XMFLOAT3 >
virtual size_t num_vertices ()=0
 Returns the number of vertices of a mesh.
 
virtual size_t num_faces ()=0
 Returns the number of faces of a mesh.
 
- Public Member Functions inherited from dune::aabb< DirectX::XMFLOAT3 >
DirectX::XMFLOAT3 center () const
 Returns the center of the bounding-box.
 
DirectX::XMFLOAT3 bb_max () const
 Returns the maximum (upper/right/back) of the bounding-box.
 
DirectX::XMFLOAT3 bb_min () const
 Returns the minimum (lower/left/front) of the bounding-box.
 
virtual void set_world (const DirectX::XMFLOAT4X4 &world)
 Update the world matrix of this mesh.
 
const DirectX::XMFLOAT4X4 & world ()
 Returns the current world matrix of this mesh.
 

Additional Inherited Members

- Protected Member Functions inherited from dune::aabb< DirectX::XMFLOAT3 >
void init_bb (const DirectX::XMFLOAT3 &p)
 Initialize the bounding-box with a first point. More...
 
void update_bb (const DirectX::XMFLOAT3 &p)
 Update the bounding-box with a new point. More...
 

Detailed Description

Main D3D mesh interface class.

This class represents the base interface of a Direct3D mesh. A Direct3D mesh needs at least a vertex and a pixel shader, a vertex layout descriptor and shader registers to upload diffuse, normal and specular textures. Each mesh object has a set_shader function to set input layout, vertex and pixel shader from outside. Each mesh object additionally has a set_shader_slots function to externally control the register slots to look for texture objects when rendering a mesh.

Member Function Documentation

virtual void dune::d3d_mesh::render ( ID3D11DeviceContext *  context,
DirectX::XMFLOAT4X4 *  to_clip = nullptr 
)
pure virtual

Renders the mesh using the shaders previously set.

When calling render, the mesh will be rendered using the shaders set with set_shaders(). Additionally, a clip-space matrix can be set to clip away unseen geometry.

Parameters
contextA Direct3D context.
to_clipA clip-space matrix against which the mesh is being culled.

Implemented in dune::gilga_mesh, dune::simple_mesh, dune::sdk_mesh, and dune::composite_mesh.

Referenced by dune::light_propagation_volume::visualize().


The documentation for this struct was generated from the following files: