我有一个带有网格(MeshPhongMaterial)的场景,这个网格周围的盒子帮助器,绿色球形点标记(MeshLambertMaterial)和精灵("针脚#34; png图像;透明背景)。我遇到了这个问题:
http://imgur.com/nDQ3VRk
http://imgur.com/53NJhpK
我的绿色标记和盒子帮助线都可以通过我的" pin"的透明背景看到。精灵,但我的主要网状材料不是。事实上,在上面的第二张图片中,通过png背景可见的绿色标记位于青铜网格物体内部,否则将无法看到。
这是我的材料:
1)主要网格材料JSON:
'Bronze': { emissive: '#000000', color: "#cd7f32", specular: 0x83776B, shininess: 100, reflectivity: 1, shading: THREE.SmoothShading, metal: true, envMap: textureEquirec, // our own hdri reflection image transparent:true, depthTest: true }
2)绿色标记的材料:
THREE.MeshLambertMaterial({ color: 0x00ff00 })
3)盒子帮手的材料:
THREE.LineBasicMaterial({ color: 0xdddddd })
4)Sprite的材质/纹理:
var textures = { ... selectedPin: 'images/sprites/selected.png' }; this.selectedPinTexture = THREE.ImageUtils.loadTexture( textures.selectedPin); this.selectedPinMaterial = new THREE.SpriteMaterial( { map: this.selectedPinTexture } );
请告知,
谢谢,
安东。
答案 0 :(得分:1)
如果您的图钉精灵在网格之前绘制,并且写入深度(depthWrite:true),那么网格将不会出现。
将精灵的.renderOrder设置为始终在网格后绘制,如果您希望它是透明的,则可以通过它看到网格。
答案 1 :(得分:0)
为您的材料添加alphaTest
,例如0.5。有关解释,请查看http://threejs.org/docs/#Reference/Materials/Material