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
214 task.addJob<DrawBounds>("DrawZones", zones);214 task.addJob<DrawBounds>("DrawZones", zones);
215 const auto frustums = task.addJob<ExtractFrustums>("ExtractFrustums");215 const auto frustums = task.addJob<ExtractFrustums>("ExtractFrustums");
216 const auto viewFrustum = frustums.getN<ExtractFrustums::Output>(ExtractFrustums::VIEW_FRUSTUM);216 const auto viewFrustum = frustums.getN<ExtractFrustums::Output>(ExtractFrustums::VIEW_FRUSTUM);
217 const auto shadowFrustum = frustums.getN<ExtractFrustums::Output>(ExtractFrustums::SHADOW_FRUSTUM);
218 task.addJob<DrawFrustum>("DrawViewFrustum", viewFrustum, glm::vec3(1.0f, 1.0f, 0.0f));217 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 }
220 225
221 // Render.getConfig("RenderMainView.DrawSelectionBounds").enabled = true226 // Render.getConfig("RenderMainView.DrawSelectionBounds").enabled = true
222 task.addJob<DrawBounds>("DrawSelectionBounds", selectedItems);227 task.addJob<DrawBounds>("DrawSelectionBounds", selectedItems);
223 }228 }
224 229
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
241 // AA job to be revisited230 // AA job to be revisited
242 const auto antialiasingInputs = Antialiasing::Inputs(deferredFrameTransform, primaryFramebuffer, linearDepthTarget, velocityBuffer).asVarying();231 const auto antialiasingInputs = Antialiasing::Inputs(deferredFrameTransform, primaryFramebuffer, linearDepthTarget, velocityBuffer).asVarying();
243 task.addJob<Antialiasing>("Antialiasing", antialiasingInputs);232 task.addJob<Antialiasing>("Antialiasing", antialiasingInputs);
244 233
245 // Debugging stages234 // Debugging stages
246 {235 {
247 // Debugging Deferred buffer job236 // 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));
249 task.addJob<DebugDeferredBuffer>("DebugDeferredBuffer", debugFramebuffers);238 task.addJob<DebugDeferredBuffer>("DebugDeferredBuffer", debugFramebuffers);
250 239
251 const auto debugSubsurfaceScatteringInputs = DebugSubsurfaceScattering::Inputs(deferredFrameTransform, deferredFramebuffer, lightingModel,240 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
272 task.addJob<DebugZoneLighting>("DrawZoneStack", deferredFrameTransform);261 task.addJob<DebugZoneLighting>("DrawZoneStack", deferredFrameTransform);
273 }262 }
274 263
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
275 // Composite the HUD and HUD overlays280 // Composite the HUD and HUD overlays
276 task.addJob<CompositeHUD>("HUD");281 task.addJob<CompositeHUD>("HUD");
277 282
@@ -565,17 +570,20 @@ void ExtractFrustums::run(const render::RenderContextPointer& renderContext, Out · 287 unmodified lines
565 }570 }
566 571
567 // Return shadow frustum572 // Return shadow frustum
568 auto& shadowFrustum = output[SHADOW_FRUSTUM].edit<ViewFrustumPointer>();
569 auto lightStage = args->_scene->getStage<LightStage>(LightStage::getName());573 auto lightStage = args->_scene->getStage<LightStage>(LightStage::getName());
570 if (lightStage) {574 for (auto i = 0; i < SHADOW_CASCADE_FRUSTUM_COUNT; i++) {
571 auto globalShadow = lightStage->getCurrentKeyShadow();575 auto& shadowFrustum = output[SHADOW_CASCADE0_FRUSTUM+i].edit<ViewFrustumPointer>();
572 576 if (lightStage) {
573 if (globalShadow) {577 auto globalShadow = lightStage->getCurrentKeyShadow();
574 shadowFrustum = globalShadow->getFrustum();578
579 if (globalShadow && i<(int)globalShadow->getCascadeCount()) {
580 auto& cascade = globalShadow->getCascade(i);
581 shadowFrustum = cascade.getFrustum();
582 } else {
583 shadowFrustum.reset();
584 }
575 } else {585 } else {
576 shadowFrustum.reset();586 shadowFrustum.reset();
577 }587 }
578 } else {
579 shadowFrustum.reset();
580 }588 }
581}589}

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