----备注:内容来源于网络,只是整理一下。
1 openGL与threejs关系
OpenGL:(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形比特到复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。
OpenGL有许多语言绑定,值得一提的包括:JavaScript绑定的WebGL(基于OpenGL ES 2.0在Web浏览器中的进行3D渲染的API);C绑定的WGL、GLX和CGL;iOS提供的C绑定;Android提供的Java和C绑定。
WebGL:(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等。
THREE.JS: three.js是JavaScript编写的WebGL第三方库。提供了非常多的3D显示功能。
JavaScript编写的WebGL第三方库存在很多,针对不同类型存在不同的语言。具体了解可以看这篇博客。
csdn地址 : (25条消息) GitHub上的WebGL库调研_Super洛伽的博客-CSDN博客_webgl库
2 克隆 .clone() 优化场景方案之一
var box=new THREE.BoxGeometry(10,10,10);
//var box2 = box.clone(); 几何体克隆
var box2 =new THREE.BoxGeometry(10,10,10);
box.translate(20,0,0);//平移原几何体 新克隆的几何体不受影响
var material = new THREE.MeshBasicMaterial({color: 0xeeeeee});
var material1 = material.clone(); //材质克隆
var mesh=new THREE.Mesh(box,material);
//直接网格clone mesh.clone()
var mesh2=new THREE.Mesh(box,material1);
scene.add(mesh)
scene.add(mesh2)