three.js是Javascript编写的WebGL第三方库。
- 能用BufferGeometry代替Geometry的尽量用BufferGeometry. BufferGeometry会缓存网格模型,性能更高效
网格模型生成原理:
Geometry
生成的模型过程:
(代码) -> (CPU进行数据处理,转化成虚拟的3D数据)
-> (GPU进行数据组装,转化为像素点,准备渲染) -> (显示器 )
第二次操作时重复走一遍此流程
BufferGeometry
生成模型流程
(代码) -> (CPU进行数据处理,转化成虚拟的3D数据)
-> (GPU进行数据组装,转化为像素点,准备渲染) -> (丢入缓存区) -> (显示器 )
第二次操作时,
(代码) -> (CPU进行数据处理,转化成虚拟的3D数据)
-> (修改缓存区数据) -> (显示器 )
节约了GPU性能的运算过程
- 学会使用clone() 方法
var box = new THREE.BoxGeometry(10,10,10) // 创建一个立方体几何对象
var box2 = box.clone(); // 克隆几何体
box2.scale.set(2,2,2); //通过缩放调整大小
clone()返回一个新的几何体对象,返回新的几何体对象包含原来的几何体顶点数据、顶点索引数据,UV坐标数据。就不用重新创建相同的对象,浪费使劲按