javascript - 为什么我的 Three.js 透明纹理会破坏,除非它的一部分超出了视口(viewport)?

标签 javascript three.js

我正在尝试使用具有透明度的 PNG 来对平面进行纹理处理。

当我查看形状时,PNG 中的透明部分变黑。

enter image description here

但是,奇怪的是,当图像的任何部分从视口(viewport)中剪辑出来时,透明度再次开始起作用(这显然是我需要的效果):

enter image description here

我创建了一个孤立的示例,平面是按常规方式创建的:

var loader = new THREE.TextureLoader();
  loader.load('img/message2.png', function(tex) {
      var mat = new THREE.MeshBasicMaterial({ map : tex, transparent: true });
      var geometry = new THREE.PlaneGeometry( 14, 10 );
      var plane = new THREE.Mesh( geometry, mat );
      plane.position.set(0,0,-10);
      scene.add( plane );
  });

我在这里做错了什么还是一个错误?

提前致谢。

最佳答案

在您的 Material 中添加 alphaTest: 0.5

关于javascript - 为什么我的 Three.js 透明纹理会破坏,除非它的一部分超出了视口(viewport)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39485748/

相关文章:

javascript - Opera 中 document.onload 事件中插件的事件监听器

javascript - 如何使用 TWEEN 为相机位置设置动画

javascript - Three.js:加载JSON相机和灯光

three.js - OrbitControls 交互时自动旋转停止?

javascript - Three.js:找不到变量 THREE 和意外的字符串文字 l'./polyfills.js'

javascript - 在 three.js 中使用相同的渲染器在两个场景之间切换

javascript - 没有索引javascript的循环

javascript - jQueryMobile - 为什么新的动态生成的页面没有更新到最新版本?

javascript - Polymer CLI 和要求

javascript - function foo({ defaultValue = {} } = {}) 中的语法是什么意思?