【问题标题】:How to brighten white color more without effecting the background color如何在不影响背景颜色的情况下使白色更亮
【发布时间】:2015-03-05 03:33:44
【问题描述】:

如何在不增加灰色背景亮度的情况下增加白色的亮度?我有这个光照贴图纹理,它位于地板纹理的顶部,但是当我尝试更多地显示白色三角形白光时,图像的其余部分变得更加明亮。我正在用 webgl 做这个。

我试过了:

// 这个问题是白色太暗了。

vec4 baseColor = texture2D(baseTexture, vUv) * texture2D(lightMapTexture,vUv);

和: vec4 baseColor = mix(texture2D(baseTexture, vUv), texture2D(lightMapTexture,vUv), 0.5);

我想要获得的效果是左下角的图像,其中白色更亮,但不影响阴影灰色。

【问题讨论】:

  • 使用屏幕混合或多重混合之类的东西?

标签: opengl-es glsl opengl-es-2.0


【解决方案1】:

照明通常是通过乘法混合完成的,而不是加法混合(如果您在蓝光下照亮红色物体,它应该会显示为黑色 - 您的方案会使其看起来是紫色)。这也有助于阻止黑暗区域变亮并保持对比度(照明下的黑色仍然是黑色)。

如果你想“过度饱和”光线,你可以尝试通过一个幂函数来抑制中低频,然后按比例放大它,然后将最终的光照后颜色限制在 0 之间和 1. 如果您通过此方案过度饱和,那么您将得到剪切伪影。

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多