Three.js 实时更新几何体的方法
2018-01-25 00:45
477 查看
基于性能的原因,改变几何体(Geometry)的某些属性不会引起浏览器对几何体(Geometry)的重新绘制。THREE.js会缓存一些
数据,例如几何体的顶点和面的信息,修改这些属性的时候需要通知THREE.js去更新几何体,这些几何体才能得到重新计算并更新。
1. geometry.vertices
2. geometry.faces
3. geometry.morphTargets
4. geometry.faceVertexUvs
5. geometry.faces[i].normal and geometry.vertices[i].normal
6. geometry.faces[i].color and geometry.vertices[i].color
7. geometry.vertices[i].tangent
8. geometry.lineDistances
colorsNeedUpdate : geometry.faces[i].color and geometry.vertices[i].color发生变化的时候设置为true
verticesNeedUpdate:geometry.vertices发生变化的时候设置为true
elementsNeedUpdate:geometry.faces发生变化的时候设置为true
morphTargetsNeedUpdate:geometry.morphTargets发生变化的时候设置为true
uvsNeedUpdate:geometry.faceVertexUvs发生变化的时候设置为true
normalsNeedUpdate:geometry.faces[i].normal and geometry.vertices[i].normal发生变化的时候设置true
tangentsNeedUpdate:geometry.vertices[i].tangent发生变化的时候设置为true
needsUpdate:我们也可以动态的修改纹理和材质,材质发生改变的时候将material.needsUpdate设置为true来通知THREE.js重新进行计算绘制。
转至:http://blog.csdn.net/yangnianbing110/article/details/51318884
数据,例如几何体的顶点和面的信息,修改这些属性的时候需要通知THREE.js去更新几何体,这些几何体才能得到重新计算并更新。
需要通知THREE.js更新的几何体(Geometry)属性
下面这些属性的变动需要通知THREE.js更新1. geometry.vertices
2. geometry.faces
3. geometry.morphTargets
4. geometry.faceVertexUvs
5. geometry.faces[i].normal and geometry.vertices[i].normal
6. geometry.faces[i].color and geometry.vertices[i].color
7. geometry.vertices[i].tangent
8. geometry.lineDistances
通知THREE.js更新
针对不同的属性变化,都可以设置该几何体实例的某个属性值为true来通知THREE.js重新计算这些几何体并更新,当THREE.js更新了这些几何体之后,这些属性值又会重新被设置为false。//修改几何体各个面的颜色 this.changeColors = function () { var mesh = scene.getObjectByName('cube'); mesh.geometry.faces.forEach(function (face) { face.color.copy(new THREE.Color(Math.random() * 0xffffff)); }); }; //通过将几何体的colorsNeedUpdate的属性修改为true,来通知THREE.js该几何体的颜色发生变化。 var mesh = scene.getObjectByName('cube'); mesh.geometry.colorsNeedUpdate = true;
colorsNeedUpdate : geometry.faces[i].color and geometry.vertices[i].color发生变化的时候设置为true
verticesNeedUpdate:geometry.vertices发生变化的时候设置为true
elementsNeedUpdate:geometry.faces发生变化的时候设置为true
morphTargetsNeedUpdate:geometry.morphTargets发生变化的时候设置为true
uvsNeedUpdate:geometry.faceVertexUvs发生变化的时候设置为true
normalsNeedUpdate:geometry.faces[i].normal and geometry.vertices[i].normal发生变化的时候设置true
tangentsNeedUpdate:geometry.vertices[i].tangent发生变化的时候设置为true
needsUpdate:我们也可以动态的修改纹理和材质,材质发生改变的时候将material.needsUpdate设置为true来通知THREE.js重新进行计算绘制。
转至:http://blog.csdn.net/yangnianbing110/article/details/51318884
相关文章推荐
- js实现对table动态添加、删除和更新的方法
- JS模仿编辑器实时改变文本框宽度和高度大小的方法
- Intellij 设置只更新静态文件(js、view、css)的方法
- 页面实时更新时间的JS实例代码
- three.js学习 函数使用方法散记3
- three.js提供的几何体
- Ajax局部更新导致JS事件重复触发问题的解决方法
- 更新 JScript IntelliSense 时出错: D:\jqueryT\js\jquery-1.3.2.js: 对象不支持此属性或方法 @ 2139:1
- 22 Three.js的网格对象MESH的属性和方法
- angular 实时更新模板视图的方法$apply
- THREE.js -- 增加Nurbs曲线旋转生成曲面,即时调整更新实例
- js实时监听文本框状态的方法
- js 动态生成json对象、时时更新json对象的方法
- ArcGIS Server10.1 +Oracle11g直接连接数据库发布地图,数据增删改查,MapServer实时更新方法
- 用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
- js 数组的内置方法(持续更新)
- three.js 06-06 之 Binary Operations 几何体
- js实时在服务器强制更新[beejson原创]
- three.js 05-08 之 TorusKnotGeometry 几何体
- js与jquery实时监听输入框值的oninput与onpropertychange方法