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>
- <head/>
- <body>
- <canvas id="Canvas2D"/>
- <script type="text/javascript">
- var canv=document.getElementById('Canvas2D');
- var context=canv.getContext('2d');
- context.fillStyle='#0000FF';
- context.fillRect(10,10,120,80);
- </script>
- </body>
- </html>
三. 載入 Three.js引擎
通過 Three.js 進行渲染,需要呼叫 three.js 介面,這是一個 JavaScript庫,簡要使用方式如下:
- <html>
- <head>
- <script type="text/javascript" src="three.js"></script>
- </head>
- <body>
- <canvas id="Canvas3D" width="352px" height="288px"/>
- <script type="text/javascript">
- // render
- var renderer = new THREE.WebGLRenderer();
- // scene
- var scene = new THREE.Scene();
- // camera
- var camera = new THREE.PerspectiveCamera(45, 4 / 3, 1, 1000);
- renderer.render(scene, camera);
- </script>
- </body>
- </html>
熟悉基本知識和環境之後,下一節介紹 Hello World 入門!
相關文章
- webgl入門(1)-什麼是webglWeb
- HTML之小白的入門Day1HTML
- HTML5與WebGL程式設計(2):Three.jsHTMLWeb程式設計JS
- Three.js學習1_快速入門JS
- Three.js 入門示例JS
- webgl入門(2)-初識webgl和著色器Web
- WebGL入門之基於WebGL的3D視覺化引擎介紹Web3D視覺化
- Spring Cloud Alibaba(1)---入門篇SpringCloud
- HTML入門HTML
- 效能測試之入門篇
- node之tcp篇入門理解TCP
- HTML5與WebGL程式設計(3):Three.js中的圖形和渲染HTMLWeb程式設計JS
- HTML5與WebGL程式設計(1):介紹HTMLWeb程式設計
- 圖解WebGL和Three.js工作原理圖解WebJS
- 一、Ansible基礎之入門篇
- Flink 入門篇之 寫個WordCount
- Android 自定義 View 之入門篇AndroidView
- WindowsServerVersion1709管理之入門篇WindowsServer
- Python系列之-1、Django入門PythonDjango
- 基於 HTML5 網路拓撲圖的快速開發之入門篇(一)HTML
- 基於 HTML5 網路拓撲圖的快速開發之入門篇(二)HTML
- 入門篇-其之七-Java運算子Java
- 踩坑指南:入門OpenTenBase之部署篇
- 深入理解Java SPI之入門篇Java
- 入門設計模式之彙總篇設計模式
- 【WEB基礎】HTML & CSS 基礎入門(1)初識WebHTMLCSS
- HTML入門(樣例)HTML
- Html基礎入門HTML
- HTML 基礎入門HTML
- Flutter 入門指北(Part 1)之 DartFlutterDart
- Nginx入門到實戰(1)基礎篇Nginx
- Three.js入門-相機控制器JS
- Three.js入門-常見幾何體JS
- 面向面試之 HTML 篇面試HTML
- WebGL three.js學習筆記 載入外部模型以及Tween.js動畫WebJS筆記模型動畫
- 踩坑指南:入門OpenTenBase之監控篇
- openresty前端開發入門三之JSON篇REST前端JSON
- openresty前端開發入門四之Redis篇REST前端Redis