Remove TODOs about splatting

Splatting will be drawn using non-instanced shader only, it's only
used one place (in overworld) and may be removed eventually
This commit is contained in:
Benau 2016-12-04 11:48:52 +08:00
parent 902f4e20a5
commit 2a50149e62
3 changed files with 4 additions and 10 deletions

View File

@ -259,7 +259,8 @@ void DrawCalls::handleSTKCommon(scene::ISceneNode *Node,
}
if (Mat == Material::SHADERTYPE_SPLATTING)
{
//TODO: write instanced splatting solid shader and remove this if
// Notice: splatting will be drawn using non-instanced shader only
// It's only used one place (in overworld) and may be removed eventually
core::matrix4 ModelMatrix = Node->getAbsoluteTransformation(), InvModelMatrix;
ModelMatrix.getInverse(InvModelMatrix);
ListMatSplatting::getInstance()->SolidPass.emplace_back(mesh, ModelMatrix, InvModelMatrix);
@ -410,7 +411,6 @@ void DrawCalls::handleSTKCommon(scene::ISceneNode *Node,
{
if (Mat == Material::SHADERTYPE_SPLATTING)
{
//TODO: write instanced splatting rsm shader and remove this if
core::matrix4 ModelMatrix = Node->getAbsoluteTransformation(), InvModelMatrix;
ModelMatrix.getInverse(InvModelMatrix);
ListMatSplatting::getInstance()->RSM.emplace_back(mesh, ModelMatrix, InvModelMatrix);

View File

@ -239,7 +239,6 @@ void GL3DrawPolicy::drawReflectiveShadowMap(const DrawCalls& draw_calls,
void IndirectDrawPolicy::drawSolidFirstPass(const DrawCalls& draw_calls) const
{
#if !defined(USE_GLES2)
//TODO: add instanced splatting solid shader
renderMeshes1stPass<SplattingMat, 2, 1>();
draw_calls.drawIndirectSolidFirstPass();
#endif //!defined(USE_GLES2)
@ -251,7 +250,6 @@ void IndirectDrawPolicy::drawSolidSecondPass (const DrawCalls& draw_calls,
const std::vector<GLuint>& prefilled_tex) const
{
#if !defined(USE_GLES2)
//TODO: add instanced splatting solid shader
renderMeshes2ndPass<SplattingMat, 1> (handles, prefilled_tex);
draw_calls.drawIndirectSolidSecondPass(prefilled_tex);
#endif //!defined(USE_GLES2)
@ -292,7 +290,7 @@ void IndirectDrawPolicy::drawReflectiveShadowMap(const DrawCalls& draw_calls,
const core::matrix4 &rsm_matrix) const
{
#if !defined(USE_GLES2)
drawRSM<SplattingMat, 1>(rsm_matrix); //TODO: write instanced splatting RSM shader and remove this line
drawRSM<SplattingMat, 1>(rsm_matrix);
draw_calls.drawIndirectReflectiveShadowMaps(rsm_matrix);
#endif //!defined(USE_GLES2)
}
@ -302,7 +300,6 @@ void IndirectDrawPolicy::drawReflectiveShadowMap(const DrawCalls& draw_calls,
void MultidrawPolicy::drawSolidFirstPass(const DrawCalls& draw_calls) const
{
#if !defined(USE_GLES2)
//TODO: add instanced splatting solid shader
renderMeshes1stPass<SplattingMat, 2, 1>();
draw_calls.multidrawSolidFirstPass();
#endif //!defined(USE_GLES2)
@ -314,7 +311,6 @@ void MultidrawPolicy::drawSolidSecondPass (const DrawCalls& draw_calls,
const std::vector<GLuint>& prefilled_tex) const
{
#if !defined(USE_GLES2)
//TODO: add instanced splatting solid shader
renderMeshes2ndPass<SplattingMat, 1> (handles, prefilled_tex);
draw_calls.multidrawSolidSecondPass(handles);
#endif //!defined(USE_GLES2)
@ -350,7 +346,7 @@ void MultidrawPolicy::drawReflectiveShadowMap(const DrawCalls& draw_calls,
const core::matrix4 &rsm_matrix) const
{
#if !defined(USE_GLES2)
drawRSM<SplattingMat, 1>(rsm_matrix); //TODO: add instanced splatting RSM shader
drawRSM<SplattingMat, 1>(rsm_matrix);
draw_calls.multidrawReflectiveShadowMaps(rsm_matrix);
#endif //!defined(USE_GLES2)
}

View File

@ -771,9 +771,7 @@ struct DetailMat
struct SplattingMat
{
typedef InstancedObjectPass1Shader InstancedFirstPassShader;
//TODO: InstancedSecondPassShader
typedef InstancedShadowShader InstancedShadowPassShader;
//TODO InstancedRSMShader
typedef Shaders::ObjectPass1Shader FirstPassShader;
typedef SplattingShader SecondPassShader;
typedef ShadowShader ShadowPassShader;