对象组合

sphere = createMesh(new THREE.SphereGeometry(5, 10, 10));
cube = createMesh(new THREE.BoxGeometry(6, 6, 6));group = new THREE.Object3D();
group.add(sphere);
group.add(cube);scene.add(group);

这样就可以对group进行position或rotation等操作。
其中new THREE.Object3D()也可以使用new THREE.Group()代替。

当对象进行旋转时,会绕着组的中心旋转。 可以旋转一个辅助箭头来看到这个效果。

       var arrow = new THREE.ArrowHelper(new THREE.Vector3(0,1,0),group.position,10,0x0000ff);scene.add(arrow);

多个网格合并成一个网格

少量物体的时候可以使用分组来处理网格,对象非常多的时候,性能会成为瓶颈,因为每个对象还是独立的,需要分别进行处理和渲染。
使用THREE.Geometry.merge()函数,可以将多个几何体合并起来创建一个联合体。

示例:

                // add a large number of cubesif (controls.combined) {var geometry = new THREE.Geometry();for (var i = 0; i < controls.numberOfObjects; i++) {var cubeMesh = addcube();cubeMesh.updateMatrix();geometry.merge(cubeMesh.geometry, cubeMesh.matrix);}scene.add(new THREE.Mesh(geometry, cubeMaterial));} else {for (var i = 0; i < controls.numberOfObjects; i++) {scene.add(controls.addCube());}}

当对象Merge后,我们没办法再对每个对象单独控制。

示例效果:

Three.JS提升学习4:几何体对象组合相关推荐

  1. Three.js(八)—— 几何体对象、曲线、三维模型

    文章目录 8.几何体对象.曲线.三维模型 8.1 常见几何体和曲线API介绍 几何体 曲线 8.2 直线.椭圆.圆弧.基类Curve 圆弧线ArcCurve 曲线Curve方法.getPoints() ...

  2. python代码学习——类与对象提升(继承、超继承,类的例题,魔术方法)

    python代码学习--类与对象提升 继承 继承的特殊属性: 代码示例 方法的重写和覆盖(overrrid) 总结 超继承 继承中的初始化 多继承 例题 类的魔术方法 哈希(hash)和eq方法 bo ...

  3. 【JavaScript】14_window对象与JS提升

    12.window对象 Window对象 在浏览器中,浏览器为我们提供了一个window对象,可以直接访问 window对象代表的是浏览器窗口,通过该对象可以对浏览器窗口进行各种操作 除此之外wind ...

  4. JS / JQ 学习记录

    <一起学前端 之 JS 篇>是记录从 2020.4.29 开始,学习 JS 的收获与感悟. 2020.4.29 数据存储单位 JavaScript介绍 JS是什么 运行在客户端的脚本语言, ...

  5. js快速学习思维导图

    Js给初学者的印象总是那么的"杂而乱",相信很多初学者都在找轻松学习Js的途径.在这里给大家总结一些学习Js的经验,希望能给后来的学习者探索出一条"轻松学习Js之路&qu ...

  6. Ext JS 6学习文档-第3章-基础组件

    Ext JS 6学习文档-第3章-基础组件 基础组件 在本章中,你将学习到一些 Ext JS 基础组件的使用.同时我们会结合所学创建一个小项目.这一章我们将学习以下知识点: 熟悉基本的组件 – 按钮, ...

  7. js/jquery学习笔记

    javascript简介 JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言. 不同于服务器端脚本语言,例如PHP与ASP,JavaScript是客户端脚本语言,也就是说Ja ...

  8. JavaScript学习笔记04【高级——DOM和事件的简单学习、BOM对象】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  9. 前端开发JS的学习之AngularJS库

    这两年做前端开发,对JS的学习还在不断,JS的发展还是很快的.下面来看看一个AngularJS库. 服务是AngularJS中非常重要的一个概念,虽然我们有了控制器,但考虑到其生命实在脆弱,我们需要用 ...

最新文章

  1. C++ 使用extern C简单使用
  2. 简单团队-爬取豆瓣电影T250-项目进度
  3. 7-4 银行排队问题之单队列多窗口加VIP服务 (30 分)
  4. BZOJ 2286 消耗战 (虚树+树形DP)
  5. C#基础知识---匿名方法使用
  6. 基于分割的PTD渐进三角网加密滤波(SBF)算法
  7. Executesql 实例及介绍
  8. 南农计算机分数线,2021南京农业大学录取分数线_历年各专业分数线(2017-2020),各省投档线_一品高考网...
  9. Ubuntu16.04 安装Caffe教程
  10. 利用R语言如何计算出回归分析中的t值和P值
  11. 跨境电商虾皮值不值得做?你了解多少
  12. IBDP1 经济好学吗?学习建议分享
  13. 苹果手机通话怎么录音?通话录音的详细教程!
  14. C6455CSL芯片支持库:第二节 EMAC外设
  15. 逆势而上,Intel大连工厂高价挖人
  16. 前缀、中缀、后缀表达式及中缀转后缀表达式
  17. Linux的chmod命令
  18. Unity导航寻路系统插件--A* Pathfinding Project
  19. mysql - sql语句 之 mysql错误代码大合(转载)
  20. 第5章 Redis新类型

热门文章

  1. printf()函数详解
  2. 你经常使用计算机吗这样的问题其主要缺点是,模拟试题(卷).doc
  3. 弹出窗口阻止程序干扰
  4. 使用ISAI EXTENSION开发IIS5.1插件
  5. 【芯片应用】ULN2003A达林顿管如何使用?
  6. 什么是redis,redis能做什么,redis的应用场景
  7. 设置默认网关端口 android,默认网关怎么填,网关设置为多少如何设置
  8. Spring破冰之旅 始于足下
  9. 【信贷业务】信贷五级分类的定义
  10. C#读取钉钉打卡记录(四)——获取员工信息