THREE.js:使用 renderer.OutputEncoding = sRGBEncoding 后纹理会变成灰色的

3
我正在尝试使用Three.js布料示例,但与其使用alphaMap不同的是,我将布料平面完全不透明,并更改了颜色贴图。
由于渲染器的OutputEncoding(sRGB编码),结果非常令人失望,因为纹理现在呈灰黑色。如果我将输出编码更改回LinearEncoding,则草地纹理看起来太暗。
下面是结果: enter image description here 原始纹理如下: enter image description here 是否有办法保持sRGB编码,同时使我的布料纹理具有更多对比度?
1个回答

3

有没有办法保持sRGB编码,但是让我的布料纹理呈现更多的对比度?

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

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


感谢您的回答。上面的示例都是使用sRGBEncoding设置地面和图片拍摄的。在这两张图片中,似乎没有任何区别,即使调整gammaFactor也是如此。 - Forepick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接