C# Class idTech4.Renderer.idRenderModel

Inheritance: IDisposable
Datei anzeigen Open project: iainmckay/idtech4.net Class Usage Examples

Public Methods

Method Description
AddSurface ( RenderModelSurface surface ) : void

Dynamic model instantiations will be created with this.

the geometry data will be owned by the model, and freed when it is freed the geoemtry should be raw triangles, with no extra processing

Dispose ( ) : void
FinishSurfaces ( ) : void

Cleans all the geometry and performs cross-surface processing like shadow hulls.

Creates the duplicated back side geometry for two sided, alpha tested, lit materials This does not need to be called if none of the surfaces added with AddSurface require light interaction, and all the triangles are already well formed.

FreeVertexCache ( ) : void

Dump any ambient caches on the model surfaces.

GetBounds ( RenderEntityComponent renderEntity = null ) : idBounds

Dynamic models should return a fast, conservative approximation. Static models should usually return the exact value.

GetJointIndex ( idMD5Joint joint ) : int

Gets the index of the joint with the given instance.

GetJointIndex ( string name ) : int

Gets the joint with the given name.

GetJointName ( int index ) : string

Gets the name of the joint with the given index.

GetNearestJoint ( int surfaceIndex, int a, int c, int b ) : int
GetSurface ( int index ) : RenderModelSurface
InitEmpty ( string name ) : void

This is used for dynamically created surfaces, which are assumed to not be reloadable. It can be called again to clear out the surfaces of a dynamic model for regeneration.

InitFromFile ( string fileName ) : void

Loads static models only, dynamic models must be loaded by the modelManager.

InstantiateDynamicModel ( idRenderEntity renderEntity, View view, idRenderModel cachedModel ) : idRenderModel

Creates a static model based on the definition and view currently.

This will be regenerated for every view, even though some models, like character meshes, could be used for multiple (mirror) views in a frame, or may stay static for multiple frames (corpses) The renderer will delete the returned dynamic model the next view.

List ( ) : void

Prints a single line report for listModels.

Load ( ) : void

Used for initial loads, reloadModel, and reloading the data of purged models.

Upon exit, the model will absolutely be valid, but possibly as a default model.

MakeDefault ( ) : void
PartialInitFromFile ( string fileName ) : void

renderBump uses this to load the very high poly count models, skipping the shadow and tangent generation, along with some surface cleanup to make it load faster.

Print ( ) : void

Prints a detailed report on the model for printModel.

Purge ( ) : void

Frees all the data, but leaves the class around for dangling references, which can regenerate the data with LoadModel().

Reset ( ) : void

Resets any model information that needs to be reset on a same level load etc.. currently only implemented for liquids.

TouchData ( ) : void

Models that are already loaded at level start time will still touch their data to make sure they are kept loaded.

idRenderModel ( ) : System

Protected Methods

Method Description
Dispose ( bool disposing ) : void

Method Details

AddSurface() public abstract method

Dynamic model instantiations will be created with this.
the geometry data will be owned by the model, and freed when it is freed the geoemtry should be raw triangles, with no extra processing
public abstract AddSurface ( RenderModelSurface surface ) : void
surface RenderModelSurface
return void

Dispose() public method

public Dispose ( ) : void
return void

Dispose() protected method

protected Dispose ( bool disposing ) : void
disposing bool
return void

FinishSurfaces() public abstract method

Cleans all the geometry and performs cross-surface processing like shadow hulls.
Creates the duplicated back side geometry for two sided, alpha tested, lit materials This does not need to be called if none of the surfaces added with AddSurface require light interaction, and all the triangles are already well formed.
public abstract FinishSurfaces ( ) : void
return void

FreeVertexCache() public abstract method

Dump any ambient caches on the model surfaces.
public abstract FreeVertexCache ( ) : void
return void

GetBounds() public abstract method

Dynamic models should return a fast, conservative approximation. Static models should usually return the exact value.
public abstract GetBounds ( RenderEntityComponent renderEntity = null ) : idBounds
renderEntity RenderEntityComponent
return idBounds

GetJointIndex() public abstract method

Gets the index of the joint with the given instance.
public abstract GetJointIndex ( idMD5Joint joint ) : int
joint idMD5Joint
return int

GetJointIndex() public abstract method

Gets the joint with the given name.
public abstract GetJointIndex ( string name ) : int
name string
return int

GetJointName() public abstract method

Gets the name of the joint with the given index.
public abstract GetJointName ( int index ) : string
index int
return string

GetNearestJoint() public abstract method

public abstract GetNearestJoint ( int surfaceIndex, int a, int c, int b ) : int
surfaceIndex int
a int
c int
b int
return int

GetSurface() public abstract method

public abstract GetSurface ( int index ) : RenderModelSurface
index int
return RenderModelSurface

InitEmpty() public abstract method

This is used for dynamically created surfaces, which are assumed to not be reloadable. It can be called again to clear out the surfaces of a dynamic model for regeneration.
public abstract InitEmpty ( string name ) : void
name string
return void

InitFromFile() public abstract method

Loads static models only, dynamic models must be loaded by the modelManager.
public abstract InitFromFile ( string fileName ) : void
fileName string
return void

InstantiateDynamicModel() public abstract method

Creates a static model based on the definition and view currently.
This will be regenerated for every view, even though some models, like character meshes, could be used for multiple (mirror) views in a frame, or may stay static for multiple frames (corpses) The renderer will delete the returned dynamic model the next view.
public abstract InstantiateDynamicModel ( idRenderEntity renderEntity, View view, idRenderModel cachedModel ) : idRenderModel
renderEntity idRenderEntity
view View
cachedModel idRenderModel
return idRenderModel

List() public abstract method

Prints a single line report for listModels.
public abstract List ( ) : void
return void

Load() public abstract method

Used for initial loads, reloadModel, and reloading the data of purged models.
Upon exit, the model will absolutely be valid, but possibly as a default model.
public abstract Load ( ) : void
return void

MakeDefault() public abstract method

public abstract MakeDefault ( ) : void
return void

PartialInitFromFile() public abstract method

renderBump uses this to load the very high poly count models, skipping the shadow and tangent generation, along with some surface cleanup to make it load faster.
public abstract PartialInitFromFile ( string fileName ) : void
fileName string
return void

Print() public abstract method

Prints a detailed report on the model for printModel.
public abstract Print ( ) : void
return void

Purge() public abstract method

Frees all the data, but leaves the class around for dangling references, which can regenerate the data with LoadModel().
public abstract Purge ( ) : void
return void

Reset() public abstract method

Resets any model information that needs to be reset on a same level load etc.. currently only implemented for liquids.
public abstract Reset ( ) : void
return void

TouchData() public abstract method

Models that are already loaded at level start time will still touch their data to make sure they are kept loaded.
public abstract TouchData ( ) : void
return void

idRenderModel() public method

public idRenderModel ( ) : System
return System