adjusted the PLumber shape keys to coever non material shapes in main pass

This commit is contained in:
sam 2017-02-25 13:00:37 -08:00
parent 9ffdc03dc9
commit a53d5e8fbd
12 changed files with 23 additions and 19 deletions

View file

@ -263,7 +263,7 @@ void Circle3DOverlay::render(RenderArgs* args) {
}
const render::ShapeKey Circle3DOverlay::getShapeKey() {
auto builder = render::ShapeKey::Builder().withoutCullFace().withUnlit().withOwnPipeline();
auto builder = render::ShapeKey::Builder().withoutCullFace().withUnlit();
if (getAlpha() != 1.0f) {
builder.withTranslucent();
}

View file

@ -116,7 +116,7 @@ void Cube3DOverlay::render(RenderArgs* args) {
}
const render::ShapeKey Cube3DOverlay::getShapeKey() {
auto builder = render::ShapeKey::Builder().withOwnPipeline();
auto builder = render::ShapeKey::Builder();
if (getAlpha() != 1.0f) {
builder.withTranslucent();
}

View file

@ -116,7 +116,7 @@ void Image3DOverlay::render(RenderArgs* args) {
}
const render::ShapeKey Image3DOverlay::getShapeKey() {
auto builder = render::ShapeKey::Builder().withoutCullFace().withDepthBias().withOwnPipeline();
auto builder = render::ShapeKey::Builder().withoutCullFace().withDepthBias();
if (_emissive) {
builder.withUnlit();
}

View file

@ -61,7 +61,7 @@ void Shape3DOverlay::render(RenderArgs* args) {
}
const render::ShapeKey Shape3DOverlay::getShapeKey() {
auto builder = render::ShapeKey::Builder().withOwnPipeline();
auto builder = render::ShapeKey::Builder();
if (getAlpha() != 1.0f) {
builder.withTranslucent();
}

View file

@ -58,7 +58,7 @@ void Sphere3DOverlay::render(RenderArgs* args) {
}
const render::ShapeKey Sphere3DOverlay::getShapeKey() {
auto builder = render::ShapeKey::Builder().withOwnPipeline();
auto builder = render::ShapeKey::Builder();
if (getAlpha() != 1.0f) {
builder.withTranslucent();
}

View file

@ -132,7 +132,7 @@ void Text3DOverlay::render(RenderArgs* args) {
}
const render::ShapeKey Text3DOverlay::getShapeKey() {
auto builder = render::ShapeKey::Builder().withOwnPipeline();
auto builder = render::ShapeKey::Builder();
if (getAlpha() != 1.0f) {
builder.withTranslucent();
}

View file

@ -275,7 +275,7 @@ void Web3DOverlay::render(RenderArgs* args) {
}
const render::ShapeKey Web3DOverlay::getShapeKey() {
auto builder = render::ShapeKey::Builder().withoutCullFace().withDepthBias().withOwnPipeline();
auto builder = render::ShapeKey::Builder().withoutCullFace().withDepthBias();
if (getAlpha() != 1.0f) {
builder.withTranslucent();
}

View file

@ -118,8 +118,8 @@ public:
private:
mutable quint64 _fadeStartTime { 0 };
//mutable uint8_t _fadeState { FADE_WAITING_TO_START };
mutable uint8_t _fadeState { FADE_COMPLETE };
mutable uint8_t _fadeState { FADE_WAITING_TO_START };
// mutable uint8_t _fadeState { FADE_COMPLETE };
};
namespace render {

View file

@ -75,7 +75,6 @@ RenderDeferredTask::RenderDeferredTask(RenderFetchCullSortTask::Output items) {
// GPU jobs: Start preparing the primary, deferred and lighting buffer
const auto primaryFramebuffer = addJob<PreparePrimaryFramebuffer>("PreparePrimaryBuffer");
// const auto fullFrameRangeTimer = addJob<BeginGPURangeTimer>("BeginRangeTimer");
const auto opaqueRangeTimer = addJob<BeginGPURangeTimer>("BeginOpaqueRangeTimer", "DrawOpaques");
const auto prepareDeferredInputs = PrepareDeferred::Inputs(primaryFramebuffer, lightingModel).hasVarying();
@ -167,6 +166,8 @@ RenderDeferredTask::RenderDeferredTask(RenderFetchCullSortTask::Output items) {
// Bounds do not draw on stencil buffer, so they must come last
addJob<DrawBounds>("DrawMetaBounds", metas);
addJob<DrawBounds>("DrawOverlaysOpaques", overlayOpaques);
addJob<DrawBounds>("DrawOverlaysTransparents", overlayTransparents);
// Debugging Deferred buffer job
const auto debugFramebuffers = render::Varying(DebugDeferredBuffer::Inputs(deferredFramebuffer, linearDepthTarget, surfaceGeometryFramebuffer, ambientOcclusionFramebuffer));
@ -207,9 +208,6 @@ RenderDeferredTask::RenderDeferredTask(RenderFetchCullSortTask::Output items) {
// Blit!
addJob<Blit>("Blit", primaryFramebuffer);
// addJob<EndGPURangeTimer>("RangeTimer", fullFrameRangeTimer);
}
void BeginGPURangeTimer::run(const render::SceneContextPointer& sceneContext, const render::RenderContextPointer& renderContext, gpu::RangeTimerPointer& timer) {

View file

@ -156,6 +156,9 @@ void initDeferredPipelines(render::ShapePlumber& plumber) {
addPipeline(
Key::Builder().withMaterial().withUnlit(),
modelVertex, modelUnlitPixel);
addPipeline(
Key::Builder().withUnlit(),
modelVertex, modelUnlitPixel);
addPipeline(
Key::Builder().withMaterial().withTangents(),
modelNormalMapVertex, modelNormalMapPixel);
@ -169,9 +172,15 @@ void initDeferredPipelines(render::ShapePlumber& plumber) {
addPipeline(
Key::Builder().withMaterial().withTranslucent(),
modelVertex, modelTranslucentPixel);
addPipeline(
Key::Builder().withTranslucent(),
modelVertex, modelTranslucentPixel);
addPipeline(
Key::Builder().withMaterial().withTranslucent().withUnlit(),
modelVertex, modelTranslucentUnlitPixel);
addPipeline(
Key::Builder().withTranslucent().withUnlit(),
modelVertex, modelTranslucentUnlitPixel);
addPipeline(
Key::Builder().withMaterial().withTranslucent().withTangents(),
modelNormalMapVertex, modelTranslucentPixel);

View file

@ -114,9 +114,9 @@ void main(void) {
color.rgb += emissive;
color.rgb += vec3(1, 0.0, 0.0);
// Apply standard tone mapping
// _fragColor = vec4(pow(color.xyz, vec3(1.0 / 2.2)), 1.0);
_fragColor = vec4(albedo, 0.5);
//_fragColor = vec4(pow(color.xyz, vec3(1.0 / 2.2)), color.w);
_fragColor = vec4(pow(color.xyz, vec3(1.0 / 2.2)), 1.0);
//_fragColor = vec4(albedo, 0.5);
// _fragColor = vec4(pow(color.xyz, vec3(1.0 / 2.2)), color.w);
/*_fragColor = vec4(evalGlobalLightingAlphaBlended(
cam._viewInverse,

View file

@ -82,9 +82,6 @@ void main(void) {
fragRoughness,
fragOpacity);
// color.xyz += vec3(0.0, 1.0, 0.0) * fragOpacity;
// color.w = 1.0;
// Apply standard tone mapping
_fragColor = vec4(pow(color.xyz, vec3(1.0 / 2.2)), color.w);
}