- 29
- 0
第一段是原本画网格的代码 第二段我使用geometry.merge()方法的代码 不知道哪里写错了 不报错 也出不来 请前辈指教
function initObject() {
//1.在x轴上定义两个点p1 p2
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(-500, 0, 0));
geometry.vertices.push(new THREE.Vector3(500, 0, 0));
//2.主要在于这里的算法,从右、下角开始画
for (var i = 0; i <= 20; i++) {
//画横线
var line = new THREE.Line(geometry, new THREE.LineBasicMaterial({ color: 0x000000, opacity: 0.2 }));
line.position.z = (i * 50) - 500;
scene.add(line);
var line = new THREE.Line(geometry, new THREE.LineBasicMaterial({ color: 0x000000, opacity: 0.2 }));
line.position.x = (i * 50) - 500;
line.rotation.y = 90 * Math.PI / 180; //转90度
scene.add(line);
}
}
function initObject() {
var geometry = new THREE.Geometry();
var allLine=new THREE.Geometry();
geometry.vertices.push( new THREE.Vector3( - 500, 0, 0 ) );
geometry.vertices.push( new THREE.Vector3( 500, 0, 0 ) );
for ( var i = 0; i <= 20; i ++ ) {
var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0x000000, opacity: 0.2 } ) );
line.position.z = ( i * 50 ) - 500;
allLine.merge(line.geometry,line.matrix)
var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0x000000, opacity: 0.2 } ) );
line.position.x = ( i * 50 ) - 500;
line.rotation.y = 90 * Math.PI / 180;
allLine.merge(line.geometry,line.matrix)
}
allLineMesh=new THREE.Mesh(allLine,new THREE.MeshBasicMaterial({color:0x000000,side:THREE.DoubleSide}))
scene.add( allLineMesh );
} - 共 0 条
- 全部回答
-
请叫我儿媳。 普通会员 1楼
geometry.merge()是一个用于合并几何对象的方法,可以用于优化场景中的几何对象,以提高性能。以下是使用geometry.merge()优化的示例:```javascript // 创建一个球体和一个圆柱体 var sphere = new THREE.SphereGeometry(1, 32, 32); var cylinder = new THREE.CylinderGeometry(2, 1, 32);
// 创建一个几何对象数组 var geometryObjects = [sphere, cylinder];
// 创建一个合并几何对象的函数 function merge geometries(geoObjects) { // 创建一个合并几何对象对象 var geometry = new THREE.Geometry();
// 遍历几何对象数组 for (var i = 0; i < geometryObjects.length; i++) { // 创建合并几何对象对象的几何体 geometry.vertices.push(geoObjects[i].geometry.vertices[0]); geometry.vertices.push(geoObjects[i].geometry.vertices[1]); geometry.vertices.push(geoObjects[i].geometry.vertices[2]); }
// 返回合并几何对象对象 return geometry; }
// 创建一个合并几何对象的函数 var geometry = merge(geometryObjects);
// 使用合并几何对象 var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
var mesh = new THREE.Mesh(geometry, material); scene.add(mesh); ```
在这个示例中,我们首先创建了两个几何对象,一个球体和一个圆柱体。然后,我们创建了一个合并几何对象的函数,该函数遍历几何对象数组,创建合并几何对象对象的几何体,然后返回合并几何对象对象。最后,我们使用合并几何对象,创建了一个新的几何对象,并将其添加到场景中。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

