C# 클래스 open3mod.SceneRendererShared

Shared utility class for SceneRendererClassicGl and SceneRendererModernGl that encapsulates logic to traverse the scene graph, determine rendering passes and finally produce draw calls which are then dispatched to the (deriving) renderer implementation.
파일 보기 프로젝트 열기: acgessler/open3mod

보호된 프로퍼티들

프로퍼티 타입 설명
InitposeMax Vector3
InitposeMin Vector3
IsAlphaMaterial bool[]
Owner Scene
Skinner open3mod.CpuSkinningEvaluator

보호된 메소드들

메소드 설명
DrawAlphaMeshes ( Assimp.Node node, Dictionary visibleNodes, RenderFlags flags, bool animated ) : void

Draw the semi-transparent meshes pertaining to a node

DrawMesh ( Assimp.Node node, bool animated, bool showGhost, int index, Mesh mesh, RenderFlags flags ) : bool

Obtains a lock on a mesh and draws it. Also handles mesh overrides.

DrawOpaqueMeshes ( Assimp.Node node, Dictionary visibleMeshesByNode, RenderFlags flags, bool animated ) : bool

Draw the opaque (i.e. not semi-transparent) meshes pertaining to a node and checks whether the node has any semi-transparent meshes to be drawn later.

InternDrawMesh ( Assimp.Node node, bool animated, bool showGhost, int index, Mesh mesh, RenderFlags flags ) : bool

Abstract method to draw a mesh attached to a node. This is to be implemented by whichever rendering method should be used. The thread is guaranteed to own the monitor for the |mesh|, making read access to the mesh safe.

PopWorld ( ) : void
PushWorld ( Matrix4 &world ) : void
RecursiveRender ( Assimp.Node node, Dictionary visibleMeshesByNode, RenderFlags flags, bool animated ) : bool

Recursive rendering function

RecursiveRenderWithAlpha ( Assimp.Node node, Dictionary visibleNodes, RenderFlags flags, bool animated ) : void

Recursive rendering function for semi-transparent (i.e. alpha-blended) meshes. Alpha blending is not globally on, meshes need to do that on their own. This render function is called _after_ solid geometry has been drawn, so the relative order between transparent and opaque geometry is maintained. There is no further ordering within the alpha rendering pass.

SceneRendererShared ( Scene owner, Vector3 initposeMin, Vector3 initposeMax ) : System

Constructs an instance given a scene with its bounds (AABB)

UploadTextures ( ) : void

Make sure all textures required for the materials in the scene are uploaded to VRAM.

메소드 상세

DrawAlphaMeshes() 보호된 메소드

Draw the semi-transparent meshes pertaining to a node
protected DrawAlphaMeshes ( Assimp.Node node, Dictionary visibleNodes, RenderFlags flags, bool animated ) : void
node Assimp.Node
visibleNodes Dictionary
flags RenderFlags
animated bool
리턴 void

DrawMesh() 보호된 메소드

Obtains a lock on a mesh and draws it. Also handles mesh overrides.
protected DrawMesh ( Assimp.Node node, bool animated, bool showGhost, int index, Mesh mesh, RenderFlags flags ) : bool
node Assimp.Node
animated bool
showGhost bool
index int
mesh Assimp.Mesh
flags RenderFlags
리턴 bool

DrawOpaqueMeshes() 보호된 메소드

Draw the opaque (i.e. not semi-transparent) meshes pertaining to a node and checks whether the node has any semi-transparent meshes to be drawn later.
protected DrawOpaqueMeshes ( Assimp.Node node, Dictionary visibleMeshesByNode, RenderFlags flags, bool animated ) : bool
node Assimp.Node
visibleMeshesByNode Dictionary
flags RenderFlags
animated bool
리턴 bool

InternDrawMesh() 보호된 추상적인 메소드

Abstract method to draw a mesh attached to a node. This is to be implemented by whichever rendering method should be used. The thread is guaranteed to own the monitor for the |mesh|, making read access to the mesh safe.
protected abstract InternDrawMesh ( Assimp.Node node, bool animated, bool showGhost, int index, Mesh mesh, RenderFlags flags ) : bool
node Assimp.Node
animated bool
showGhost bool
index int
mesh Assimp.Mesh
flags RenderFlags
리턴 bool

PopWorld() 보호된 추상적인 메소드

protected abstract PopWorld ( ) : void
리턴 void

PushWorld() 보호된 추상적인 메소드

protected abstract PushWorld ( Matrix4 &world ) : void
world Matrix4
리턴 void

RecursiveRender() 보호된 메소드

Recursive rendering function
protected RecursiveRender ( Assimp.Node node, Dictionary visibleMeshesByNode, RenderFlags flags, bool animated ) : bool
node Assimp.Node Current node
visibleMeshesByNode Dictionary
flags RenderFlags Rendering flags
animated bool Play animation?
리턴 bool

RecursiveRenderWithAlpha() 보호된 메소드

Recursive rendering function for semi-transparent (i.e. alpha-blended) meshes. Alpha blending is not globally on, meshes need to do that on their own. This render function is called _after_ solid geometry has been drawn, so the relative order between transparent and opaque geometry is maintained. There is no further ordering within the alpha rendering pass.
protected RecursiveRenderWithAlpha ( Assimp.Node node, Dictionary visibleNodes, RenderFlags flags, bool animated ) : void
node Assimp.Node Current node
visibleNodes Dictionary Set of visible meshes
flags RenderFlags Rendering flags
animated bool Play animation?
리턴 void

SceneRendererShared() 보호된 메소드

Constructs an instance given a scene with its bounds (AABB)
protected SceneRendererShared ( Scene owner, Vector3 initposeMin, Vector3 initposeMax ) : System
owner Scene
initposeMin Vector3
initposeMax Vector3
리턴 System

UploadTextures() 보호된 메소드

Make sure all textures required for the materials in the scene are uploaded to VRAM.
protected UploadTextures ( ) : void
리턴 void

프로퍼티 상세

InitposeMax 보호되어 있는 프로퍼티

protected Vector3 InitposeMax
리턴 Vector3

InitposeMin 보호되어 있는 프로퍼티

protected Vector3 InitposeMin
리턴 Vector3

IsAlphaMaterial 보호되어 있는 프로퍼티

protected bool[] IsAlphaMaterial
리턴 bool[]

Owner 보호되어 있는 프로퍼티

protected Scene Owner
리턴 Scene

Skinner 보호되어 있는 프로퍼티

protected CpuSkinningEvaluator,open3mod Skinner
리턴 open3mod.CpuSkinningEvaluator