mirror of
https://github.com/JulianGro/overte.git
synced 2025-08-28 02:56:24 +02:00
Trying to fix the emissive for overlay in front ?
This commit is contained in:
parent
c2b3dedcc3
commit
6d59144a4f
3 changed files with 13 additions and 7 deletions
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue