History

Shadows are completely working with settings on both pipeline

sam gateau committed 7 years ago

Commit 237fb4d1 parent 5a6f30b18 files · +284 −96Browse files

Showing the changes to libraries/render-utils/src/RenderDeferredTask.cpp (1 of 18 files). Show all

Unified · Split

libraries/render-utils/src/RenderDeferredTask.cpp+11−8
@@ -112,7 +112,7 @@ void RenderDeferredTask::configure(const Config& config) { · 111 unmodified lines
112112 upsamplePrimaryBufferConfig->setProperty("factor", 1.0f / config.resolutionScale);
113113 }
114114
115−void RenderDeferredTask::build(JobModel& task, const render::Varying& input, render::Varying& output, bool renderShadows) {
115+void RenderDeferredTask::build(JobModel& task, const render::Varying& input, render::Varying& output) {
116116 auto fadeEffect = DependencyManager::get<FadeEffect>();
117117 // Prepare the ShapePipelines
118118 ShapePlumberPointer shapePlumber = std::make_shared<ShapePlumber>();
@@ -139,8 +139,11 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 20 unmodified lines
139139
140140 const auto& spatialSelection = fetchedItems.get1();
141141
142+ // Lighting model comes next, the big configuration of the view
143+ const auto& lightingModel = inputs[1];
144+
142145 // Extract the Lighting Stages Current frame ( and zones)
143− const auto lightingStageInputs = inputs.get1();
146+ const auto& lightingStageInputs = inputs.get2();
144147 // Fetch the current frame stacks from all the stages
145148 const auto currentStageFrames = lightingStageInputs.get0();
146149 const auto lightFrame = currentStageFrames[0];
@@ -151,11 +154,12 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 4 unmodified lines
151154 const auto& zones = lightingStageInputs[1];
152155
153156 // Shadow Task Outputs
154− const auto shadowTaskOutputs = inputs.get2();
157+ const auto& shadowTaskOutputs = inputs.get3();
155158
156159 // Shadow Stage Frame
157160 const auto shadowFrame = shadowTaskOutputs[1];
158161
162+
159163 fadeEffect->build(task, opaques);
160164
161165 const auto jitter = task.addJob<JitterSample>("JitterCam");
@@ -165,7 +169,6 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 3 unmodified lines
165169
166170 // Prepare deferred, generate the shared Deferred Frame Transform. Only valid with the scaled frame buffer
167171 const auto deferredFrameTransform = task.addJob<GenerateDeferredFrameTransform>("DeferredFrameTransform", jitter);
168− const auto lightingModel = task.addJob<MakeLightingModel>("LightingModel");
169172
170173 const auto opaqueRangeTimer = task.addJob<BeginGPURangeTimer>("BeginOpaqueRangeTimer", "DrawOpaques");
171174
@@ -202,10 +205,10 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 30 unmodified lines
202205 const auto scatteringResource = task.addJob<SubsurfaceScattering>("Scattering");
203206
204207 // AO job
205− const auto ambientOcclusionInputs = AmbientOcclusionEffect::Inputs(deferredFrameTransform, deferredFramebuffer, linearDepthTarget).asVarying();
208+ const auto ambientOcclusionInputs = AmbientOcclusionEffect::Input(lightingModel, deferredFrameTransform, deferredFramebuffer, linearDepthTarget).asVarying();
206209 const auto ambientOcclusionOutputs = task.addJob<AmbientOcclusionEffect>("AmbientOcclusion", ambientOcclusionInputs);
207− const auto ambientOcclusionFramebuffer = ambientOcclusionOutputs.getN<AmbientOcclusionEffect::Outputs>(0);
208− const auto ambientOcclusionUniforms = ambientOcclusionOutputs.getN<AmbientOcclusionEffect::Outputs>(1);
210+ const auto ambientOcclusionFramebuffer = ambientOcclusionOutputs.getN<AmbientOcclusionEffect::Output>(0);
211+ const auto ambientOcclusionUniforms = ambientOcclusionOutputs.getN<AmbientOcclusionEffect::Output>(1);
209212
210213 // Velocity
211214 const auto velocityBufferInputs = VelocityBufferPass::Inputs(deferredFrameTransform, deferredFramebuffer).asVarying();
@@ -220,7 +223,7 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 8 unmodified lines
220223 // DeferredBuffer is complete, now let's shade it into the LightingBuffer
221224 const auto deferredLightingInputs = RenderDeferred::Inputs(deferredFrameTransform, deferredFramebuffer, lightingModel,
222225 surfaceGeometryFramebuffer, ambientOcclusionFramebuffer, scatteringResource, lightClusters, lightFrame, shadowFrame, hazeFrame).asVarying();
223− task.addJob<RenderDeferred>("RenderDeferred", deferredLightingInputs, renderShadows);
226+ task.addJob<RenderDeferred>("RenderDeferred", deferredLightingInputs);
224227
225228 // Similar to light stage, background stage has been filled by several potential render items and resolved for the frame in this job
226229 const auto backgroundInputs = DrawBackgroundStage::Inputs(lightingModel, backgroundFrame).asVarying();