Three.js 如何展示单个顶点,比如一个点?

7
有没有办法将网格的顶点显示为彩色点?谢谢。

谢谢。完成了。我还是 SO 的新手。 - Ejnaren
1个回答

5
我将在此回答A部分,建议将您的问题拆分成两个问题,这样当其他人搜索相同的解决方案时,网站会更有用。 Mesh具有Geometry,而Geometry具有一组Vertices
来自Mesh文档。

属性

.geometry

Geometry的一个实例,定义对象的结构。

来自Geometry文档。

属性

.vertices

节点数组。该数组包含模型中每个点的位置信息。若要更新该数组, 需将Geometry.verticesNeedUpdate设置为true。

要绘制这些节点,您可以在每个节点上创建一个广告牌粒子。 以下是略微修改过的广告牌粒子示例

//editGeometry = the geometry who's vertices we want to show

geometry = new THREE.Geometry();

sprite = THREE.ImageUtils.loadTexture( "textures/sprites/disc.png" );

for ( i = 0; i < editGeometry.vertices.length; i ++ ) {

    geometry.vertices.push(editGeometry.vertices[i]);

}

material = new THREE.PointCloudMaterial( { size: 35, sizeAttenuation: false, map: sprite, transparent: true } );
material.color.setHSL( 1.0, 0.3, 0.7 );

particles = new THREE.PointCloud( geometry, material );
particles.sortParticles = true;
scene.add( particles );

我明白了,这很有道理。也许这也可以解决第二个问题(那么我会在另一个问题中发布)。 Three.js 将能够注册我是否点击了这个广告牌并将其“拖动”到屏幕的其他位置。 - Ejnaren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接