3

我正在three.js 中构建一个“剪纸”世界。我所有的模型都是简单的“平面”,我用带有 alpha 通道的 PNG 对它们进行纹理处理,以将平面修剪成更令人愉悦的形状。

奇怪的是:透明度会根据平面的位置和相机的位置而出人意料地出现和消失。

症状 1:如果平面部分位于地平面下方,则透明度起作用,但如果我将其移动到地平面上方,则透明区域将填充为白色。

症状 2:建立在症状 1 的基础上:如果我现在四处移动相机以使外观矢量几乎与平面平行,则透明度再次开始工作。

有什么想法吗?看起来有点像优化出错或可能是 z-write 问题?无论 alpha 值如何,纹理都会写入 z 吗?如果是这种情况,我认为它不会对位置或摄像机角度敏感。

4

1 回答 1

9

您需要transparent在材质中将标志设置为 true。

new THREE.MeshBasicMaterial( { map: transparent_map, transparent: true } );
于 2012-06-02T00:40:35.010 回答