你好获取登录信息中




首页 主站 文章列表 分类列表
查看文章返回文章列表

three.js预备知识

发布时间:2015-12-13 16:21:54 by:



使用three.js制作一个含有3d内容的网页,首先我们需要写一个html5的架子,引入three.js相关的脚本,以及必要样式和用来显示3d内容的块(这里用一个div,当然body也是可以的),既然开始学three.js了,想必也有一定的基础了,我们不多说废话直接上代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>webgl互交测试</title>
  6. <style>
  7. *{
  8. padding: 0;
  9. margin: 0;
  10. }
  11. #b{
  12. width: 200px;
  13. height: 500px;
  14. background: #000;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div id="b">
  20. <div id="canvas-frame"></div>
  21. </div>
  22. <script src="three-js/build/three.js" data-ke-src="https://raw.github.com/mrdoob/three.js/master/build/three.js"></script>
  23. <script src="three-js/examples/js/libs/stats.min.js"></script>
  24. </body>
  25. </html>

对了,那个stats.min.js实际上并不是必须的,它的作用是显示帧数(fps)用的,我这里准备使用它,就需要把它加上。

再想想我们给这个世界录像,首先是有一个三维的空间,他们是容纳物品的地方,摄像机必不可少,当然我们会需要胶卷之类的东西。使用three.js也需要三个东西,场景,相机,以及让他们产生关联并成像的渲染器,我们写出js代码就像这样(dom是用来展示元素节点)

  1. dom=document.getElementById('b');
  2. var scene = new THREE.Scene();//场景
  3. var camera=new THREE.PerspectiveCamera(75, dom.offsetWidth / dom.offsetHeight, 0.1, 1000);//创建透视相机 四个参数依次是
  4. //视野大小(我们所看到的世界是相当于是在一个横放的四棱锥中,这个值就是这个四棱锥顶部那个角的大小,如果设置成0就缩成一条线了,这样就会什么也看不到,如果设置得过大,thre.js可能会傻掉,因为过大的视角中的物体根本不能投影到一个平面中去)
  5. //宽高比
  6. //能看到的物体的最近距离
  7. //能看到的物体的最远距离
  8. camera.position.set(0,200,0);//设置相机位置
  9. camera.lookAt(scene.position);//大概让相机对准原点吧,这样有助于一会儿后我们能找到这个物体
  10. var renderer = new THREE.WebGLRenderer();//渲染器
  11. renderer.setSize(dom.offsetWidth,dom.offsetHeight);//设置渲染器大小
  12. renderer.setClearColorHex(0x000000, 1);//设置渲染器颜色(相当于是无限远处的颜色)
  13. dom.appendChild(this.renderer.domElement);//把three.js生成的节点挂载到网页上去(相当于把摄像机拍摄到的东西投影到“纸”上)

接下来我们就让这个摄像机去看这个世界

  1. renderer.render(scene,camera);//渲染(记录相机所拍摄的东西并显示

运行这个网页,我们发现除了渲染器的颜色什么也没有看到,那是很正常的因为场景中空空的,什么也没有。我们在下一节再线场景中添加物体吧。

评论
    还没有评论
发表评论
正在等候用户中心返回数据
杂项
。。。