【发布时间】:2018-08-20 18:32:46
【问题描述】:
我希望能够通过颜色(在 vertColors 数组中定义)设置给定顶点的透明度,以便在单个网格上我可以拥有不同不透明度的区域。
有没有一种简单的方法可以使所有定义为某种颜色的顶点透明?
我有一个想法;是否可以扩展/更改 MeshBasicMaterial 的着色器以将所有黑色区域定义为透明?
或者,我是否可以将此材质的输出传递到第二个着色器来执行此操作?
const geometry = new THREE.BufferGeometry();
const vertPositions = createVertPositions(); //Float32Array of positions
const vertColors = createVertColors(); //Float32Array of colors
geometry.addAttribute('position', new THREE.BufferAttribute(vertPositions, 3));
geometry.addAttribute('color', new THREE.BufferAttribute(vertColors, 3));
const material = new THREE.MeshBasicMaterial({
transparent: true,
opacity: 0.5,
side: THREE.BackSide,
vertexColors: THREE.VertexColors
});
const mesh = new THREE.Mesh(geometry, material);
感谢您的帮助。
【问题讨论】:
-
您有没有实施您的任何想法但没有奏效?