如何解决来自three.js RenderTarget的alpha贴图中意外的透明度
我在 Three.js/react-three-fiber 中使用 RenderTarget 来使用圆柱体生成简单的 alpha 贴图。圆柱体使用白色的基本材质,根据 docs,它在 alpha 贴图中应该是完全不透明的。但是,当应用于几何体时,蒙版中对应于白色的区域并非完全不透明,如下例所示:
https://codesandbox.io/s/r3f-programmatic-alpha-map-f8lhi?file=%2Fsrc%2Findex.js
场景设置为:
红色平面通过 alpha 遮罩遮罩到圆柱体 - 预计完全不透明 在其后面,有一个白框 - 从默认的相机位置看它根本不应该是可见的,但它是。
有谁知道为什么白色 alpha 蒙版以非零透明度(即不完全不透明)离开红色平面?谢谢。
解决方法
解释由@drcmda here 提供:react-three-fiber 应用了默认色调映射,导致 alpha 贴图没有呈现为纯白色。为防止发生这种情况,请在 alpha 贴图几何材质中禁用色调映射:
<Cylinder args={[1,1,64]} position={[0,0]} rotation={[Math.PI / 2,0]}>
<meshBasicMaterial attach="material" color="white" toneMapped={false} />
</Cylinder>
即在问题中链接的代码和框的第 49 行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。