History

Fixed merge conflicts with master

Olivier Prat committed 8 years ago

Commit 0fc496d2 parents 92e1fe8 4d42dba244 files · +11173 −2986Browse files

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

Unified · Split

libraries/render-utils/src/RenderDeferredTask.cpp+36−28
@@ -214,38 +214,27 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 213 unmodified lines
214214 task.addJob<DrawBounds>("DrawZones", zones);
215215 const auto frustums = task.addJob<ExtractFrustums>("ExtractFrustums");
216216 const auto viewFrustum = frustums.getN<ExtractFrustums::Output>(ExtractFrustums::VIEW_FRUSTUM);
217− const auto shadowFrustum = frustums.getN<ExtractFrustums::Output>(ExtractFrustums::SHADOW_FRUSTUM);
218217 task.addJob<DrawFrustum>("DrawViewFrustum", viewFrustum, glm::vec3(1.0f, 1.0f, 0.0f));
219− task.addJob<DrawFrustum>("DrawShadowFrustum", shadowFrustum, glm::vec3(0.0f, 0.0f, 1.0f));
218+ for (auto i = 0; i < ExtractFrustums::SHADOW_CASCADE_FRUSTUM_COUNT; i++) {
219+ const auto shadowFrustum = frustums.getN<ExtractFrustums::Output>(ExtractFrustums::SHADOW_CASCADE0_FRUSTUM+i);
220+ float tint = 1.0f - i / float(ExtractFrustums::SHADOW_CASCADE_FRUSTUM_COUNT - 1);
221+ char jobName[64];
222+ sprintf(jobName, "DrawShadowFrustum%d", i);
223+ task.addJob<DrawFrustum>(jobName, shadowFrustum, glm::vec3(0.0f, tint, 1.0f));
224+ }
220225
221226 // Render.getConfig("RenderMainView.DrawSelectionBounds").enabled = true
222227 task.addJob<DrawBounds>("DrawSelectionBounds", selectedItems);
223228 }
224229
225− // Layered Overlays
226− const auto filteredOverlaysOpaque = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredOpaque", overlayOpaques, Item::LAYER_3D_FRONT);
227− const auto filteredOverlaysTransparent = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredTransparent", overlayTransparents, Item::LAYER_3D_FRONT);
228− const auto overlaysInFrontOpaque = filteredOverlaysOpaque.getN<FilterLayeredItems::Outputs>(0);
229− const auto overlaysInFrontTransparent = filteredOverlaysTransparent.getN<FilterLayeredItems::Outputs>(0);
230−
231− const auto overlayInFrontOpaquesInputs = DrawOverlay3D::Inputs(overlaysInFrontOpaque, lightingModel).asVarying();
232− const auto overlayInFrontTransparentsInputs = DrawOverlay3D::Inputs(overlaysInFrontTransparent, lightingModel).asVarying();
233− task.addJob<DrawOverlay3D>("DrawOverlayInFrontOpaque", overlayInFrontOpaquesInputs, true);
234− task.addJob<DrawOverlay3D>("DrawOverlayInFrontTransparent", overlayInFrontTransparentsInputs, false);
235−
236− { // Debug the bounds of the rendered Overlay items that are marked drawInFront, still look at the zbuffer
237− task.addJob<DrawBounds>("DrawOverlayInFrontOpaqueBounds", overlaysInFrontOpaque);
238− task.addJob<DrawBounds>("DrawOverlayInFrontTransparentBounds", overlaysInFrontTransparent);
239− }
240−
241230 // AA job to be revisited
242231 const auto antialiasingInputs = Antialiasing::Inputs(deferredFrameTransform, primaryFramebuffer, linearDepthTarget, velocityBuffer).asVarying();
243232 task.addJob<Antialiasing>("Antialiasing", antialiasingInputs);
244233
245− // Debugging stages
234+ // Debugging stages
246235 {
247236 // Debugging Deferred buffer job
248− const auto debugFramebuffers = render::Varying(DebugDeferredBuffer::Inputs(deferredFramebuffer, linearDepthTarget, surfaceGeometryFramebuffer, ambientOcclusionFramebuffer, velocityBuffer));
237+ const auto debugFramebuffers = render::Varying(DebugDeferredBuffer::Inputs(deferredFramebuffer, linearDepthTarget, surfaceGeometryFramebuffer, ambientOcclusionFramebuffer, velocityBuffer, deferredFrameTransform));
249238 task.addJob<DebugDeferredBuffer>("DebugDeferredBuffer", debugFramebuffers);
250239
251240 const auto debugSubsurfaceScatteringInputs = DebugSubsurfaceScattering::Inputs(deferredFrameTransform, deferredFramebuffer, lightingModel,
@@ -272,6 +261,22 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 20 unmodified lines
272261 task.addJob<DebugZoneLighting>("DrawZoneStack", deferredFrameTransform);
273262 }
274263
264+ // Layered Overlays
265+ const auto filteredOverlaysOpaque = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredOpaque", overlayOpaques, Item::LAYER_3D_FRONT);
266+ const auto filteredOverlaysTransparent = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredTransparent", overlayTransparents, Item::LAYER_3D_FRONT);
267+ const auto overlaysInFrontOpaque = filteredOverlaysOpaque.getN<FilterLayeredItems::Outputs>(0);
268+ const auto overlaysInFrontTransparent = filteredOverlaysTransparent.getN<FilterLayeredItems::Outputs>(0);
269+
270+ const auto overlayInFrontOpaquesInputs = DrawOverlay3D::Inputs(overlaysInFrontOpaque, lightingModel).asVarying();
271+ const auto overlayInFrontTransparentsInputs = DrawOverlay3D::Inputs(overlaysInFrontTransparent, lightingModel).asVarying();
272+ task.addJob<DrawOverlay3D>("DrawOverlayInFrontOpaque", overlayInFrontOpaquesInputs, true);
273+ task.addJob<DrawOverlay3D>("DrawOverlayInFrontTransparent", overlayInFrontTransparentsInputs, false);
274+
275+ { // Debug the bounds of the rendered Overlay items that are marked drawInFront, still look at the zbuffer
276+ task.addJob<DrawBounds>("DrawOverlayInFrontOpaqueBounds", overlaysInFrontOpaque);
277+ task.addJob<DrawBounds>("DrawOverlayInFrontTransparentBounds", overlaysInFrontTransparent);
278+ }
279+
275280 // Composite the HUD and HUD overlays
276281 task.addJob<CompositeHUD>("HUD");
277282
@@ -565,17 +570,20 @@ void ExtractFrustums::run(const render::RenderContextPointer& renderContext, Out · 287 unmodified lines
565570 }
566571
567572 // Return shadow frustum
568− auto& shadowFrustum = output[SHADOW_FRUSTUM].edit<ViewFrustumPointer>();
569573 auto lightStage = args->_scene->getStage<LightStage>(LightStage::getName());
570− if (lightStage) {
571− auto globalShadow = lightStage->getCurrentKeyShadow();
572−
573− if (globalShadow) {
574− shadowFrustum = globalShadow->getFrustum();
574+ for (auto i = 0; i < SHADOW_CASCADE_FRUSTUM_COUNT; i++) {
575+ auto& shadowFrustum = output[SHADOW_CASCADE0_FRUSTUM+i].edit<ViewFrustumPointer>();
576+ if (lightStage) {
577+ auto globalShadow = lightStage->getCurrentKeyShadow();
578+
579+ if (globalShadow && i<(int)globalShadow->getCascadeCount()) {
580+ auto& cascade = globalShadow->getCascade(i);
581+ shadowFrustum = cascade.getFrustum();
582+ } else {
583+ shadowFrustum.reset();
584+ }
575585 } else {
576586 shadowFrustum.reset();
577587 }
578− } else {
579− shadowFrustum.reset();
580588 }
581589 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t