javascript - THREE.js:使用 renderer.OutputEncoding = sRGBEncoding 使纹理变灰

标签 javascript three.js gamma srgb

我正在玩 Three.js cloth example但是我没有使用 alphaMap,而是让布料平面完全不透明,并更改了它的颜色贴图。 结果非常令人失望,因为渲染器的输出编码(sRGB 编码)导致纹理现在变得非常灰暗。 如果我将输出编码改回 LinearEncoding,草地纹理看起来太暗了。

结果如下: enter image description here

原始纹理看起来像这样:

enter image description here

有什么方法可以保留 sRGBEncoding,但让我的布料纹理呈现出更高的对比度?

最佳答案

Is there any way to remain with the sRGBEncoding but have my cloth texture render with much more contrast?

是的。只需设置 encoding将纹理的属性设置为 THREE.sRGBEncoding

纹理的默认编码值为THREE.LinearEncoding。因此,如果您不修改它,而是在渲染器级别配置 sRGB 工作流程,颜色纹理确实看起来不正确。

关于javascript - THREE.js:使用 renderer.OutputEncoding = sRGBEncoding 使纹理变灰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69345609/

相关文章:

javascript - 如何编写单元测试来断言 jQuery 元素的值

javascript - 在 Threejs 中使用顶点着色器旋转几何体

three.js - 增加网格上指定的最大变形目标数量

android - Gamma 曲线实验——将 2.2 转换为 1.8 的相反值?

c++ - OpenGL: Gamma 校正后的图像看起来不是线性的

javascript - vue,用另一个组件编辑组件的内容

javascript - jQuery 防止动画分区的跳跃

javascript - ===! 是什么意思? JS中的运算符是什么意思?

javascript - Three.js 自定义空心圆柱体几何

opencv - 如何从相机捕获的显示测试图像计算 Gamma 校正值?