javascript - THREE.js:使用 renderer.OutputEncoding = sRGBEncoding 使纹理变灰
问题描述
我正在使用Three.js 布料示例,但我没有使用 alphaMap,而是让布料平面完全不透明并更改了它的颜色贴图。结果非常令人失望,因为由于渲染器的输出编码(sRGB 编码),纹理现在呈现非常灰暗。如果我将输出编码改回线性编码,草的纹理看起来太暗了。
原始纹理如下所示:
有什么方法可以保留 sRGBEncoding,但让我的布料纹理渲染对比度更高?
解决方案
有什么方法可以保留 sRGBEncoding,但让我的布料纹理渲染对比度更高?
是的。只需将纹理的编码THREE.sRGBEncoding
属性设置为.
纹理的默认编码值为THREE.LinearEncoding
. 因此,如果您不修改它而是在渲染器级别配置 sRGB 工作流程,颜色纹理确实看起来不正确。
推荐阅读
- jquery - Laravel 提交表单而不刷新或重新加载页面
- phoenix-framework - 将 Phoenix 应用程序部署到 Gigalixir 时出现问题:“没有名为 server@127.0.0.1 的文件”
- docker - 无法从容器中删除所有 docker
- corda - r3 Corda 中账户之间的代币转移
- android - 如何在 Android Room 中使用 PagedListAdapter 获取总查询数
- node.js - 在角度和节点的后端面临图像上传和执行 sql 查询的问题
- python - 使用 SearchVector 查询时重复的结果
- javascript - 每当我在另一个方法中调用一个方法时,我得到 TypeError cannot read undefined
- python-3.x - Django 3.1 使用来自管理员抛出错误的 Tagulous 更新
- r - 使用 rgee 处理后,栅格与 shapefile 不对齐