Maria GDK 5.0.0.738
Documentation of native code in develop branch
Loading...
Searching...
No Matches
STK::CSMSceneRenderer Class Reference

#include <StkCSMScenerenderer.h>

Inheritance diagram for STK::CSMSceneRenderer:
STK::SceneRenderer Maria3D::SceneRenderer

Classes

struct  Frustum
 

Public Member Functions

 CSMSceneRenderer (std::shared_ptr< STK::ShaderProgramManager > prg_mgr, std::shared_ptr< STK::Light > light=nullptr)
 
void setShadowMapProgramName (const std::string &name)
 
void setShadowMapTextureProgramName (const std::string &name)
 
void setShadowMapUnit (int unit)
 
int getShadowMapUnit () const
 
void setNumSplits (int num_splits)
 
void setSplitDistances (const float *splits)
 
void setSplitDistances (const std::vector< float > &splits)
 
void setShadowDistance (float dist)
 
virtual void render (const Camera &cam, const Viewport &vp)
 
- Public Member Functions inherited from STK::SceneRenderer
 SceneRenderer (std::shared_ptr< STK::ShaderProgramManager > prg_mgr, std::shared_ptr< STK::Light > light=nullptr)
 
std::shared_ptr< ShaderProgramManagergetShaderProgramManager ()
 
void clear ()
 
void addModel (std::shared_ptr< STK::GraphicsModel > model)
 
std::shared_ptr< const STK::GraphicsModelgetModel (const int i) const
 
void removeModel (const std::shared_ptr< GraphicsModel > &model)
 
const std::vector< std::shared_ptr< STK::GraphicsModel > > & getModels () const
 
void setLight (std::shared_ptr< STK::Light > light)
 
std::shared_ptr< const STK::LightgetLight () const
 
void addGlobalUniform (std::shared_ptr< STK::Uniform > uni)
 
virtual void render (const Camera &cam, const Viewport &vp)
 

Protected Member Functions

bool makeShadowMap (const STK::Camera &cam, const Viewport &vp, std::vector< std::shared_ptr< STK::GraphicsModel > > &models)
 
void updateFrustumPoints (CSMSceneRenderer::Frustum &f, const STK::Vector3f &center, const STK::Vector3f &view_dir, const STK::Vector3f &view_up)
 
void updateSplitDist (float nd, float fd)
 
void renderShadowMap (const STK::Camera &cam, const Viewport &vp, const Camera &shd_cam, const Viewport &shd_vp, std::vector< std::shared_ptr< STK::GraphicsModel > > &models)
 
bool initDepthFrameBuffer ()
 
void calcShadowCam (int split_i, const STK::Matrix4x4f &mv)
 
std::vector< std::shared_ptr< Uniform > > bindShadowMap (const Camera &cam)
 
void drawModels (const Camera &cam, const STK::Viewport &vp, const std::vector< std::shared_ptr< STK::GraphicsModel > > &models, const std::vector< std::shared_ptr< Uniform > > uniforms)
 
- Protected Member Functions inherited from STK::SceneRenderer
void updateLightUniforms (const Camera &cam)
 

Protected Attributes

bool use_csm_shadows_
 
float csm_splits_ [4]
 
float csm_split_weight_
 
float csm_shd_near_
 
float csm_shd_far_
 
int csm_num_splits_
 
std::shared_ptr< STK::Camerashd_cam_ [4]
 
STK::Matrix4x4f shad_cpm_ [4]
 
Frustum f_ [4]
 
float far_bound_ [4]
 
GLuint depth_tex_
 
GLuint dummy_depth_tex_
 
GLuint depth_fb_
 
GLuint shd_map_unit_
 
int depth_map_size_
 
std::string shadow_map_program_name_
 
std::string shadow_map_tex_program_name_
 
std::shared_ptr< STK::ShaderProgramshadow_map_program_
 
std::shared_ptr< STK::ShaderProgramshadow_map_tex_program_
 
std::shared_ptr< STK::Uniformu_csm_num_splits_
 
std::shared_ptr< STK::Uniformu_csm_shadow_map_size_
 
std::shared_ptr< STK::Uniformu_csm_shadow_map_unit_
 
std::shared_ptr< STK::Uniformu_csm_far_bounds_
 
std::shared_ptr< STK::Uniformu_csm_proj_matrix0_
 
std::shared_ptr< STK::Uniformu_csm_proj_matrix1_
 
std::shared_ptr< STK::Uniformu_csm_proj_matrix2_
 
std::shared_ptr< STK::Uniformu_csm_proj_matrix3_
 
- Protected Attributes inherited from STK::SceneRenderer
std::shared_ptr< ShaderProgramManagerprg_mgr_
 
std::vector< std::shared_ptr< STK::GraphicsModel > > models_
 
std::shared_ptr< STK::Lightlight_
 
std::vector< std::shared_ptr< STK::Uniform > > global_uniforms_
 
std::shared_ptr< STK::Uniformu_light_dir_eye_
 
std::shared_ptr< STK::Uniformu_light_dir_world_
 

Detailed Description

CSMSceneRenderer - Scene renderer with Cascading Shadow Maps

Member Function Documentation

◆ getShadowMapUnit()

int STK::CSMSceneRenderer::getShadowMapUnit ( ) const
inline

Get shadow mapping texture unit ID. This is the texture unit used for the shadow mapping depth map.

◆ render()

void CSMSceneRenderer::render ( const Camera cam,
const Viewport vp 
)
virtual

Reimplemented from STK::SceneRenderer.

◆ setShadowMapProgramName()

void STK::CSMSceneRenderer::setShadowMapProgramName ( const std::string &  name)
inline

Set name of shader program to use during shadow map rendering. This shader is used during rendering to the depth map used for shadow mapping.

◆ setShadowMapTextureProgramName()

void STK::CSMSceneRenderer::setShadowMapTextureProgramName ( const std::string &  name)
inline

Set name of shader program to use during shadow map rendering. This shader is used during rendering textured meshes to the depth map used for shadow mapping.

◆ setShadowMapUnit()

void STK::CSMSceneRenderer::setShadowMapUnit ( int  unit)
inline

Set shadow mapping texture unit ID. This is the texture unit used for the shadow mapping depth map.


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