C# Class open3mod.MaterialMapper

Map assimp materials to OpenGl materials and shaders. Each scene has its own MaterialMapper, which is accessible via the Scene.MaterialMapper property. The class interface is implemented for every type of renderer.
Inheritance: IDisposable
Show file Open project: acgessler/open3mod Class Usage Examples

Protected Properties

Property Type Description
_scene Scene

Public Methods

Method Description
ApplyGhostMaterial ( Mesh mesh, Assimp.Material material, bool shaded ) : void
ApplyMaterial ( Mesh mesh, Assimp.Material mat, bool textured, bool shaded ) : void

Applies a material to the Gl state machine. Depending on the renderer, this either sets GLSL shaders (GL3) or it configures the fixed function pipeline (legacy/classic).

BeginScene ( open3mod.Renderer renderer ) : void
Dispose ( ) : void
EndScene ( open3mod.Renderer renderer ) : void
IsAlphaMaterial ( Assimp.Material material ) : bool

Check if a given assimp material requires alpha-blending for rendering

UploadTextures ( Assimp.Material material ) : bool

Uploads all the textures required for a given material to VRAM (i.e. create the corresponding Gl objects). Textures that have been uploaded before are not attempted again.

Protected Methods

Method Description
MaterialMapper ( Scene scene ) : System

Private Methods

Method Description
IsTransparent ( float f ) : bool

Method Details

ApplyGhostMaterial() public abstract method

public abstract ApplyGhostMaterial ( Mesh mesh, Assimp.Material material, bool shaded ) : void
mesh Assimp.Mesh
material Assimp.Material
shaded bool
return void

ApplyMaterial() public abstract method

Applies a material to the Gl state machine. Depending on the renderer, this either sets GLSL shaders (GL3) or it configures the fixed function pipeline (legacy/classic).
public abstract ApplyMaterial ( Mesh mesh, Assimp.Material mat, bool textured, bool shaded ) : void
mesh Assimp.Mesh Mesh to be drawn. This parameter may be left null /// to use a material with geometry other than assimp meshes (i.e. /// for the material preview tab). In this case, it is assumed that /// the geometry to be used with the materials specifies normals, /// one set of UV coordinates but no vertex colors. /// TODO tangents, bitangents? ///
mat Assimp.Material Material to be applied, must be non-null
textured bool
shaded bool
return void

BeginScene() public abstract method

public abstract BeginScene ( open3mod.Renderer renderer ) : void
renderer open3mod.Renderer
return void

Dispose() public abstract method

public abstract Dispose ( ) : void
return void

EndScene() public abstract method

public abstract EndScene ( open3mod.Renderer renderer ) : void
renderer open3mod.Renderer
return void

IsAlphaMaterial() public method

Check if a given assimp material requires alpha-blending for rendering
public IsAlphaMaterial ( Assimp.Material material ) : bool
material Assimp.Material
return bool

MaterialMapper() protected method

protected MaterialMapper ( Scene scene ) : System
scene Scene
return System

UploadTextures() public method

Uploads all the textures required for a given material to VRAM (i.e. create the corresponding Gl objects). Textures that have been uploaded before are not attempted again.
public UploadTextures ( Assimp.Material material ) : bool
material Assimp.Material
return bool

Property Details

_scene protected property

protected Scene _scene
return Scene