我一直在尝试创建在three.js中呈现的简单网格。我已经成功地基于文本输入来渲染点集,但是在尝试将点与三角形面连接以形成网格时遇到了一些问题。
沙箱:https://codesandbox.io/s/n600rw2yl
通过左上角的FileReader
加载文件(在沙箱中,测试文件位于src文件夹-mesh2.txt
中)
处理结果-解析加载的文件并创建节点对象
3。 Push Hones从节点创建THREE.Vector3
并将其推送到几何。顶点,并将其渲染为点。
但是按下最后一个按钮-按下元素时,我触发了函数push_elements()
,在这里我只想在geometry.vertices的节点(0,1,2)之间创建一个三角形THREE.Face3
,但是我得到了一些在任意位置有多个面孔的奇怪结果。
有人可以帮助我,告诉我如何解决它吗?
push_elements()
功能:
function push_elements() {
var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
//create a new face using vertices 0, 1, 2
var normal = new THREE.Vector3( 0, 1, 0 ); //optional
var color = new THREE.Color( 0xffaa00 ); //optional
var materialIndex = 0; //optional
var face = new THREE.Face3( 2, 8, 9, normal, color, materialIndex );
geometry.faces.push( face );
var elmentsField = new THREE.Mesh( geometry, material )
scene.add( elmentsField );
console.log(geometry.faces)
}