Trying to fix the emissive for overlay in front ?

This commit is contained in:
samcake 2017-02-23 17:42:02 -08:00
parent c2b3dedcc3
commit 6d59144a4f
3 changed files with 13 additions and 7 deletions

View file

@ -62,7 +62,11 @@ namespace render {
if (overlay->is3D()) {
auto overlay3D = std::dynamic_pointer_cast<Base3DOverlay>(overlay);
if (overlay3D->isAA())
return (overlay3D->getDrawInFront() ? LAYER_3D_FRONT : LAYER_3D);
if (overlay3D->getDrawInFront()) {
return LAYER_3D_FRONT;
} else {
return LAYER_3D;
}
else
return LAYER_NO_AA;
} else {

View file

@ -71,6 +71,7 @@ void lightBatchSetter(const ShapePipeline& pipeline, gpu::Batch& batch);
void initOverlay3DPipelines(ShapePlumber& plumber) {
auto vertex = gpu::Shader::createVertex(std::string(overlay3D_vert));
auto vertexModel = gpu::Shader::createVertex(std::string(model_vert));
auto pixel = gpu::Shader::createPixel(std::string(overlay3D_model_frag));
auto pixelTranslucent = gpu::Shader::createPixel(std::string(overlay3D_translucent_frag));
auto pixelUnlit = gpu::Shader::createPixel(std::string(overlay3D_unlit_frag));
@ -81,7 +82,7 @@ void initOverlay3DPipelines(ShapePlumber& plumber) {
auto translucentProgram = gpu::Shader::createProgram(vertex, pixelTranslucent);
auto unlitOpaqueProgram = gpu::Shader::createProgram(vertex, pixelUnlit);
auto unlitTranslucentProgram = gpu::Shader::createProgram(vertex, pixelTranslucentUnlit);
auto opaqueMaterialProgram = gpu::Shader::createProgram(vertex, pixelMaterial);
auto opaqueMaterialProgram = gpu::Shader::createProgram(vertexModel, pixelMaterial);
for (int i = 0; i < 16; i++) {
bool isCulled = (i & 1);
@ -113,9 +114,9 @@ void initOverlay3DPipelines(ShapePlumber& plumber) {
auto simpleProgram = isOpaque ? opaqueProgram : translucentProgram;
auto unlitProgram = isOpaque ? unlitOpaqueProgram : unlitTranslucentProgram;
plumber.addPipeline(builder.withoutUnlit().build(), simpleProgram, state, &lightBatchSetter);
plumber.addPipeline(builder.withMaterial().build(), opaqueMaterialProgram, state, &lightBatchSetter);
plumber.addPipeline(builder.withUnlit().build(), unlitProgram, state, &batchSetter);
plumber.addPipeline(builder.withoutUnlit().withoutMaterial().build(), simpleProgram, state, &lightBatchSetter);
plumber.addPipeline(builder.withMaterial().withoutUnlit().build(), opaqueMaterialProgram, state, &lightBatchSetter);
plumber.addPipeline(builder.withUnlit().withoutMaterial().build(), unlitProgram, state, &batchSetter);
}
}

View file

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