threejs性能优化,clone(),Object3D(),remove()

在绘制threejs场景的过程中,可能需要很多相似的几何体,如果每次都创建新的,会影响性能,所以建议使用克隆。

//创建网格
var scene = new THREE.Scene();
createNewMesh(){
    var geometry = new THREE.BoxGeometry(100, 100, 100); //创建一个立方体几何对象Geometry
    var material = new THREE.MeshLambertMaterial({
      color: 0x0000ff
    }); //材质对象Material
    var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
    return mesh
}
//在场景中加入多个上边创建的网格
createMoreMesh(){
	let allnewMesh = new THREE.Object3D()
	allnewMesh.name ='allnewMesh '
	let newMesh = createNewMesh().clone()
	//修改新克隆的几何体颜色
	newMesh.material = newMesh.material.clone()
	newMesh.material.color.set(new THREE.Color('#FF0000'))
	//给新克隆的几何体一个名字
	newMesh.name('newMesh1')
	allnewMesh.add(newMesh)//可以把多个newMesh加入allnewMesh中,方便统一管理
	//把新的几何体加入场景中
	scene.add(allnewMesh)
}
//从场景中删除网格
removeMesh(){
	scene.getObjectByName('allnewMesh').remove(scene.getObjectByName('allnewMesh').getObjectByName('newMesh1'))
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值