Three.js入门篇之1 - WebGL on HTML

一. 何为WebGL?

      WebGL 是基于Web的 三维渲染接口,与OpenGL的不同之处在于,添加了对 JavaScript 的支持,能够为 HTML5 提供硬件加速的三维图形渲染(通过Canvas来和DOM打交道)。

      WebGL 是基于 OpenGL ES 2.0 的 Javascript API。通过 HTML5 的 Canvas 来和 DOM 打交道。

      讲到这里,总结一下:

1. 如果你是OpenGL程序员,学习WebGL对你来讲会是非常简单的;

     你只需要熟悉 JS 语法 和WebGL对应的API就好了,大多数人两个月能够入门。

2. 如果你只是熟悉 Web,那么GL对你来讲也许是个挑战;

     你要熟悉3D坐标系、World-View-Proj 成像、三维渲染流程、Shader等等,也许需要更多的时间。

       幸运的是,Three.js 引擎已经为我们提供了底层的封装,你需要提前熟悉三维渲染流程,然后 run demo,这是最好的也是最快的入门流程。

       Three.js 已在主流浏览器下得到支持,调试建议用 FireFox 或者 Chrome,下载地址:https://threejs.org/  ,下图是第一个例子效果:

        


二. Canvas

      Canvas是 HTML5 新定义的标签,可以看成是一个矩形绘图容器,支持事件响应 与 JavaScript 绘图。

      Canvas和GDI绘图接口比较类似,来看下如何采用Canvas绘制一个矩形:

[html]  view plain  copy
  1. <html>  
  2. <head/>  
  3. <body>  
  4.     <canvas id="Canvas2D"/>  
  5.     <script type="text/javascript">  
  6.         var canv=document.getElementById('Canvas2D');  
  7.         var context=canv.getContext('2d');  
  8.         context.fillStyle='#0000FF';  
  9.         context.fillRect(10,10,120,80);  
  10.     </script>  
  11. </body>  
  12. </html>  

三. 加载 Three.js引擎

      通过 Three.js 进行渲染,需要调用 three.js 接口,这是一个 JavaScript库,简要使用方式如下:

[html]  view plain  copy
  1. <html>  
  2. <head>  
  3.     <script type="text/javascript" src="three.js"></script>  
  4. </head>  
  5. <body>  
  6.     <canvas id="Canvas3D" width="352px" height="288px"/>  
  7.     <script type="text/javascript">  
  8.         // render  
  9.         var renderer = new THREE.WebGLRenderer();  
  10.           
  11.         // scene  
  12.         var scene = new THREE.Scene();  
  13.   
  14.         // camera  
  15.         var camera = new THREE.PerspectiveCamera(45, 4 / 3, 1, 1000);  
  16.   
  17.         renderer.render(scene, camera);  
  18.     </script>  
  19. </body>  
  20. </html>  

       熟悉基本知识和环境之后,下一节介绍 Hello World 入门!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值