简体   繁体   English

在three.js中合并几何体不起作用

[英]merging geometry in three.js is not working

A path is changed dynamically. 路径是动态更改的。 So, 所以,

previous render function was, (LENGTH, getPosition(), RADIUS, MATERIAL, SCENE are already set) 以前的渲染函数是(已经设置了LENGTH,getPosition(),RADIUS,MATERIAL,SCENE)

var prevPosition = getPosition();
for(var i =0; i < LENGTH; i++) {
    drawPath(getPosition());
}

function drawPath(currentPosition) {
    var spline = new THREE.CatmullRomCurve3([prevPosition, currentPosition]);
    var geometry = new THREE.TubeGeometry(spline, 1, RADIUS);
    var mesh = new THREE.Mesh(geometry, MATERIAL);
    SCENE.add(mesh);
}

previous render method works very well. 以前的render方法效果很好。 I changed this for performance. 我为了性能改变了它。

modified render function is, 修改后的渲染功能是

var mergedGeometry = new THREE.Geometry();
function drawPath(currentPosition) {
    var spline = new THREE.CatmullRomCurve3([prevPosition, currentPosition]);
    var geometry = new THREE.TubeGeometry(spline, 1, RADIUS);
    mergedGeometry.merge(geometry);
    var mesh = new THREE.Mesh(mergedGeometry, MATERIAL);
    SCENE.add(mesh);
} 

mesh is not displayed. 不显示网格。 I don't know why. 我不知道为什么 Do you know why does not this work? 您知道为什么这行不通吗? Please help me. 请帮我。

I believe you've confused geometry for a mesh. 我相信您对网格的几何形状感到困惑。 Geometry is a component of a mesh. 几何是网格的组成部分。 You want to add to your geometry, cast it into a new mesh object, and add that new mesh to the scene. 您要添加到几何体,将其投射到新的网格物体中,然后将该新网格物体添加到场景中。

Try: 尝试:

var mergedGeometry = new THREE.Geometry();
var prevPosition = getPosition();
for(var i =0; i < LENGTH; i++) {
    drawPath(getPosition());
}

var mesh = new THREE.Mesh(mergedGeometry, MATERIAL);
SCENE.add(mesh);


function drawPath(currentPosition) {
    var spline = new THREE.CatmullRomCurve3([prevPosition, currentPosition]);
    var geometry = new THREE.TubeGeometry(spline, 1, RADIUS);
    mergedGeometry.merge(geometry);
} 

If you get stuck, there is a functioning mesh merge fiddle here: http://jsfiddle.net/mt2zbb9k/ 如果您卡住了,这里有一个起作用的网格合并小提琴: http : //jsfiddle.net/mt2zbb9k/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM