level two资料 level two录播课资料 threejs threes_第1页
level two资料 level two录播课资料 threejs threes_第2页
level two资料 level two录播课资料 threejs threes_第3页
level two资料 level two录播课资料 threejs threes_第4页
level two资料 level two录播课资料 threejs threes_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Three.js初探,我是讲师董美琪,概念,what is three.js,three.js是一个基于webgl的3D图形编程框架 three.js以简单 直观的方式封装了3d图形编程中常用的对象。,02,创建程序,创建一个程序,three.js在创建一个程序的时候需要有三个基本对象: 1. 场景(screen) 2. 相机 (camera) 3. 渲染器 (renderer) 4. 几何图形(geometry) 拿电影来类比的话,场景对应于整个布景空间,相机是拍摄镜头,渲染器用来把拍摄好的场景转换成胶卷(对于网页来讲,是电脑屏幕)。 场景和相机代表了3D观察空间和数据模型,渲染器则包含了W

2、ebGL绘图上下文和着色器。,相机分类,1. 远景(透视)相机 (PerspectiveCamera) 2. 正交(正投影)相机 (OrthographicCamera),远景(透视)相机,PerspectiveCamera( fov, aspect, near, far ) fov 相机视锥体垂直视角 aspect 相机视锥体宽高比 near 相机视锥体近裁剪面 far 相机视锥体远裁剪面。 例子 var camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 ); scene.add( camera );,正交相机

3、,OrthographicCamera( left, right, top, bottom, near, far ) left 相机视椎体(Camera frustum)左面。 right 相机视椎体(Camera frustum)右面。 top 相机视椎体(Camera frustum)上面。 bottom 相机视椎体(Camera frustum)下面。 near 相机视椎体(Camera frustum)前面(靠近相机的这一面)。 far 相机视椎体(Camera frustum)后面(远离相机的这一面)。 例子: var camera = new THREE.OrthographicC

4、amera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 ); scene.add( camera );,创建一个场景,var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 ); var renderer = new THREE.WebGLRenderer(); renderer.setSize( window.innerWi

5、dth, window.innerHeight ); document.body.appendChild( renderer.domElement );,添加演员,/ 创建一个立方体 var geometry = new THREE.BoxGeometry( 1, 1, 1 ); / 添加材质 var material = new THREE.MeshBasicMaterial( color: 0 x00ff00 ); / 创建一个网孔(Mesh)。网孔是用来承载几何模型的一个对象,还可以把材料应用到它上面,然后添加到场景中完成旋转动画。 var cube = new THREE.Mesh(

6、geometry, material ); / 把网孔添加到场景中 scene.add( cube ); / 当我们调用 scene.add() 时,对象将被添加到原点处,即坐标点(0,0,0),这将导致相机和立方体发生空间重叠。为了避免这样,我们把相机(camera)的位置移出来一些。 camera.position.z = 5;,渲染场景(拍片),function render() requestAnimationFrame( render ); cube.rotation.x += 0.1; cube.rotation.y += 0.1; renderer.render( scene, camera ); render();,03,矩阵变换,常量,矩阵变换,在webgl中所有点是以矩阵的形式变换的,3d动画也

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论