Added splatting materials in ShadowCommandBuffer
This commit is contained in:
@@ -182,6 +182,8 @@ void ShadowCommandBuffer::fill(MeshMap *mesh_map)
|
||||
+ Material::SHADERTYPE_DETAIL_MAP);
|
||||
shadow_tex_material_list.push_back(cascade * Material::SHADERTYPE_COUNT
|
||||
+ Material::SHADERTYPE_VEGETATION);
|
||||
shadow_tex_material_list.push_back(cascade * Material::SHADERTYPE_COUNT
|
||||
+ Material::SHADERTYPE_SPLATTING);
|
||||
}
|
||||
|
||||
fillInstanceData<InstanceDataSingleTex>(mesh_map, shadow_tex_material_list, InstanceTypeShadow);
|
||||
|
||||
@@ -248,14 +248,7 @@ void DrawCalls::handleSTKCommon(scene::ISceneNode *Node,
|
||||
{
|
||||
for (GLMesh *mesh : node->MeshSolidMaterial[Mat])
|
||||
{
|
||||
if (Mat != Material::SHADERTYPE_SPLATTING)
|
||||
m_shadow_pass_mesh[cascade * Material::SHADERTYPE_COUNT + Mat][mesh->mb].emplace_back(mesh, Node);
|
||||
else
|
||||
{
|
||||
core::matrix4 ModelMatrix = Node->getAbsoluteTransformation(), InvModelMatrix;
|
||||
ModelMatrix.getInverse(InvModelMatrix);
|
||||
ListMatSplatting::getInstance()->Shadows[cascade].emplace_back(mesh, ModelMatrix, InvModelMatrix);
|
||||
}
|
||||
m_shadow_pass_mesh[cascade * Material::SHADERTYPE_COUNT + Mat][mesh->mb].emplace_back(mesh, Node);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -819,12 +819,19 @@ struct DetailMat
|
||||
// ----------------------------------------------------------------------------
|
||||
struct SplattingMat
|
||||
{
|
||||
typedef InstancedObjectPass1Shader InstancedFirstPassShader;
|
||||
//TODO: InstancedSecondPassShader
|
||||
typedef InstancedShadowShader InstancedShadowPassShader;
|
||||
//TODO: InstancedRSMShader
|
||||
|
||||
typedef Shaders::ObjectPass1Shader FirstPassShader;
|
||||
typedef SplattingShader SecondPassShader;
|
||||
typedef ShadowShader ShadowPassShader;
|
||||
typedef SplattingRSMShader RSMShader;
|
||||
typedef ListMatSplatting List;
|
||||
static const enum video::E_VERTEX_TYPE VertexType = video::EVT_2TCOORDS;
|
||||
static const enum Material::ShaderType MaterialType
|
||||
= Material::SHADERTYPE_SPLATTING;
|
||||
static const STK::Tuple<size_t> FirstPassTextures;
|
||||
static const STK::Tuple<size_t, size_t, size_t, size_t, size_t> SecondPassTextures;
|
||||
static const STK::Tuple<> ShadowTextures;
|
||||
|
||||
Reference in New Issue
Block a user