This commit is contained in:
NissimHadar 2018-02-28 08:44:01 -08:00
parent 7ae37c21e0
commit faad930e35

View file

@ -100,6 +100,7 @@
#include "model_shadow_vert.h" #include "model_shadow_vert.h"
#include "skin_model_shadow_vert.h" #include "skin_model_shadow_vert.h"
#include "skin_model_shadow_dq_vert.h" #include "skin_model_shadow_dq_vert.h"
#include "skin_model_shadow_fade_dq_vert.h"
#include "model_shadow_frag.h" #include "model_shadow_frag.h"
#include "skin_model_shadow_frag.h" #include "skin_model_shadow_frag.h"
@ -217,6 +218,7 @@ void initDeferredPipelines(render::ShapePlumber& plumber, const render::ShapePip
auto skinModelDualQuatVertex = skin_model_dq_vert::getShader(); auto skinModelDualQuatVertex = skin_model_dq_vert::getShader();
auto skinModelNormalMapDualQuatVertex = skin_model_normal_map_dq_vert::getShader(); auto skinModelNormalMapDualQuatVertex = skin_model_normal_map_dq_vert::getShader();
auto skinModelShadowDualQuatVertex = skin_model_shadow_dq_vert::getShader(); auto skinModelShadowDualQuatVertex = skin_model_shadow_dq_vert::getShader();
auto skinModelShadowFadeDualQuatVertex = skin_model_shadow_fade_dq_vert::getShader();
auto skinModelFadeDualQuatVertex = skin_model_fade_dq_vert::getShader(); auto skinModelFadeDualQuatVertex = skin_model_fade_dq_vert::getShader();
auto skinModelNormalMapFadeDualQuatVertex = skin_model_normal_map_fade_dq_vert::getShader(); auto skinModelNormalMapFadeDualQuatVertex = skin_model_normal_map_fade_dq_vert::getShader();
auto skinModelTranslucentDualQuatVertex = skinModelFadeDualQuatVertex; // We use the same because it ouputs world position per vertex auto skinModelTranslucentDualQuatVertex = skinModelFadeDualQuatVertex; // We use the same because it ouputs world position per vertex
@ -519,12 +521,12 @@ void initDeferredPipelines(render::ShapePlumber& plumber, const render::ShapePip
// Now repeat for dual quaternion // Now repeat for dual quaternion
// Depth-only // Depth-only
addPipeline( addPipeline(
Key::Builder().withSkinned().withDepthOnly().withDualQuatSkinned(), Key::Builder().withSkinned().withDualQuatSkinned().withDepthOnly(),
skinModelShadowDualQuatVertex, modelShadowPixel, nullptr, nullptr); skinModelShadowDualQuatVertex, modelShadowPixel, nullptr, nullptr);
// Same thing but with Fade on // Same thing but with Fade on
addPipeline( addPipeline(
Key::Builder().withSkinned().withDepthOnly().withFade().withDualQuatSkinned(), Key::Builder().withSkinned().withDualQuatSkinned().withDepthOnly().withFade(),
skinModelShadowDualQuatVertex, modelShadowFadePixel, batchSetter, itemSetter); skinModelShadowFadeDualQuatVertex, modelShadowFadePixel, batchSetter, itemSetter);
} }
void initForwardPipelines(ShapePlumber& plumber, const render::ShapePipeline::BatchSetter& batchSetter, const render::ShapePipeline::ItemSetter& itemSetter) { void initForwardPipelines(ShapePlumber& plumber, const render::ShapePipeline::BatchSetter& batchSetter, const render::ShapePipeline::ItemSetter& itemSetter) {
@ -720,11 +722,17 @@ void initZPassPipelines(ShapePlumber& shapePlumber, gpu::StatePointer state) {
skinFadeProgram, state); skinFadeProgram, state);
//Added for dual quaternions //Added for dual quaternions
auto skinModelDualQuatVertex = skin_model_shadow_dq_vert::getShader(); auto skinModelShadowDualQuatVertex = skin_model_shadow_dq_vert::getShader();
gpu::ShaderPointer skinModelDualQuatProgram = gpu::Shader::createProgram(skinModelDualQuatVertex, skinPixel); gpu::ShaderPointer skinModelDualQuatProgram = gpu::Shader::createProgram(skinModelShadowDualQuatVertex, skinPixel);
shapePlumber.addPipeline( shapePlumber.addPipeline(
ShapeKey::Filter::Builder().withSkinned().withDualQuatSkinned(), ShapeKey::Filter::Builder().withSkinned().withDualQuatSkinned().withoutFade(),
skinModelDualQuatProgram, state); skinModelDualQuatProgram, state);
auto skinModelShadowFadeDualQuatVertex = skin_model_shadow_fade_dq_vert::getShader();
gpu::ShaderPointer skinModelShadowDualQuatProgram = gpu::Shader::createProgram(skinModelShadowFadeDualQuatVertex, skinPixel);
shapePlumber.addPipeline(
ShapeKey::Filter::Builder().withSkinned().withDualQuatSkinned().withFade(),
skinModelShadowDualQuatProgram, state);
} }
#include "RenderPipelines.h" #include "RenderPipelines.h"