欧美精品在线一区二区三区_亚洲女同精品视频_日韩一区免费_国产欧美久久久精品免费_国产这里只有精品_僵尸再翻生在线观看_久久99精品国产一区二区三区_亚洲免费一区二区_女教师淫辱の教室蜜臀av软件_中文字幕国产一区二区

Three.js 基礎入門

2020-5-29    前端達人

課程介紹

近些年,瀏覽器的功能越來越強大,漸漸得成為了復雜應用和圖形的平臺。同時,現有大多數瀏覽器實現了對 WebGL 的支持,但要直接使用 WebGL 相關接口進行開發,則需要學習復雜的著色器語言,且開發周期長,不利于項目的快速開發。

面對這種情況,Three.js 應運而生,它不但對 WebGL 進行了封裝,將復雜的接口簡單化,而且基于面向對象思維,將數據結構對象化,非常方便我們開發。Three.js 的發展十分迅速,然而配套的學習材料卻比較匱乏,于是便有了當前的這個課程。

本課程作為入門課程,不會深入做源碼解析,主要協助初學者了解 Three.js 的數據結構,基礎 API 以及相關輔助插件的使用。幫助初學者達到快速入門的目的。

本課程共包含四大部分。

第一部分(第01-02課),入門前概述,帶你初步認識 Three.js、框架選擇標準、開發工具,源碼獲取,實現一個“Hello World”輔助工具。
第二部分(第03-08課),基礎功能篇,主要包括 Object3D、Scene、Mesh、Group、Geometry、Materials、Lights、Cameras、粒子等相關功能的介紹。
第三部分(第09-15課),進階篇,主要包括 Controls、Loaders、Animation、Tween、核心對象,與場景之間的交互以及性能優化介紹。
第四部分(第16課),實戰篇,帶大家利用所學知識實現一個 3D 小案例。

作者簡介

鄭世強,現就職于上海某網絡公司擔任前端工程師,CSDN 博客作者,長期活躍于各大論壇,擅長前端開發、WEBGL 開發。

課程內容

第01課:入門前準備

什么是 WebGL?

WebGL(Web 圖形庫)是一種 JavaScript API,用于在任何兼容的 Web 瀏覽器中呈現交互式 3D 和 2D 圖形,而無需使用插件。WebGL 通過引入一個與 OpenGL ES 2.0 緊密相符合的 API,可以在 HTML5 <canvas> 元素中使用(簡介引自 MDN)。

以我的理解,WebGL 給我們提供了一系列的圖形接口,能夠讓我們通過 JavaScript 去使用 GPU 來進行瀏覽器圖形渲染的工具。


什么是 Three.js?

Three.js 是一款 webGL 框架,由于其易用性被廣泛應用。Three.js 在 WebGL 的 API 接口基礎上,又進行的一層封裝。它是由居住在西班牙巴塞羅那的程序員 Ricardo Cabbello Miguel 所開發,他更為人知的網名是 Mr.doob。



Three.js 以簡單、直觀的方式封裝了 3D 圖形編程中常用的對象。Three.js 在開發中使用了很多圖形引擎的高級技巧,極大地提高了性能。另外,由于內置了很多常用對象和極易上手的工具,Three.js 的功能也非常強大。最后,Three.js 還是完全開源的,你可以在 GitHub 上找到它的源代碼,并且有很多人貢獻代碼,幫助 Mr.doob 一起維護這個框架。

WEBGL 和 Three.js 的關系

WebGL 原生 API 是一種非常低級的接口,而且還需要一些數學和圖形學的相關技術。對于沒有相關基礎的人來說,入門真的很難,Three.js 將入門的門檻降低了一大截,對 WebGL 進行封裝,簡化我們創建三維動畫場景的過程。只要你有一定的 JavaScript 基礎,有一定的前端經驗,我堅信,用不了多長時間,三維制作會變得很簡單。



用最簡單的一句話概括:WebGL 和 Three.js 的關系,相當于 JavaScript 和 jQuery 的關系。

功能概述

Three.js 作為 WebGL 框架中的佼佼者,由于它的易用性和擴展性,使得它能夠滿足大部分的開發需求,Three.js 的具體功能如下:


Three.js 掩蓋了 3D 渲染的細節:Three.js 將 WebGL 原生 API 的細節抽象化,將 3D 場景拆解為網格、材質和光源(即它內置了圖形編程常用的一些對象種類)。
面向對象:開發者可以使用上層的 JavaScript 對象,而不是僅僅調用 JavaScript 函數。
功能非常豐富:Three.js 除封裝了 WebGL 原始 API 之外,Three.js 還包含了許多實用的內置對象,可以方便地應用于游戲開發、動畫制作、幻燈片制作、髙分辨率模型和一些特殊的視覺效果制作。
速度很快:Three.js 采用了 3D 圖形最佳實踐來保證在不失可用性的前提下,保持極高的性能。
支持交互:WebGL 本身并不提供拾?。≒icking)功能(即是否知道鼠標正處于某個物體上)。而 Three.js 則固化了拾取支持,這就使得你可以輕松為你的應用添加交互功能。
包含數學庫:Three.js 擁有一個強大易用的數學庫,你可以在其中進行矩陣、投影和矢量運算。
內置文件格式支持:你可以使用流行的 3D 建模軟件導出文本格式的文件,然后使用 Three.js 加載,也可以使用 Three.js 自己的 JSON 格式或二進制格式。
擴展性很強:為 Three.js 添加新的特性或進行自定義優化是很容易的事情。如果你需要某個特殊的數據結構,那么只需要封裝到 Three.js 即可。
支持HTML5 Canvas:Three.js 不但支持 WebGL,而且還支持使用 Canvas2D、Css3D 和 SVG 進行渲染。在未兼容 WebGL 的環境中可以回退到其它的解決方案。


缺點

雖然 Three.js 的優勢很大,但是它也有它的不足之處:



官網文檔非常粗糙,對于新手極度不友好。

國內的相關資源匱乏。

Three.js 所有的資料都是以英文格式存在,對國內的朋友來說又提高了門檻。

Three.js 不是游戲引擎,一些游戲相關的功能沒有封裝在里面,如果需要相關的功能需要進行二次開發。


Three.js 與其他庫的對比

隨著 WebGL 的迅速發展,相關的 WebGL 庫也豐富起來,接下來介紹幾個比較火的 WebGL 庫。



與 Babylon.js 對比

Babylon.JS 是最好的 JavaScript 3D 游戲引擎,它能創建專業級三維游戲。主要以游戲開發和易用性為主。與 Three.js 之間的對比:



Three.js 比較全面,而 Babylon.js 專注于游戲方面。

Babylon.js 提供了對碰撞檢測、場景重力、面向游戲的照相機,Three.js 本身不自帶,需要依靠引入插件實現。

對于 WebGL 的封裝,雙方做得各有千秋,Three.js 淺一些,好處是易于擴展,易于向更底層學習;Babylon.js 深一些,好處是易用擴展難度大一些。

Three.js 的發展依靠社區推動,出來的比較早,發展比較成熟,Babylon.js 由微軟公司在2013推出,文檔和社區都比較健全,國內還不怎么火。


與 PlayCanvas 對比

PlayCanvas 是一個基于 WebGL 游戲引擎的企業級開源 JavaScript 框架,它有許多的開發工具能幫你快速創建 3D 游戲。與 Three.js 之間的對比:



PlayCanvas 的優勢在于它有云端的在線可視化編輯工具。

PlayCanvas 的擴展性不如 Three.js。

最主要是 PlayCanvas 不完全開源,還商業付費。


與 Cesium 對比

Cesium 是國外一個基于 JavaScript 編寫的使用 WebGL 的地圖引擎,支持 3D、2D、2.5D 形式的地圖展示,可以自行繪制圖形,高亮區域。與 Three.js 對比:



Cesium 是一個地圖引擎,專注于 Gis,相關項目推薦使用它,其它項目還是算了。

至于庫的擴展,其它的配套插件,以及周邊的資源都不及Three.js。


總結

通過以上信息我們發現,Three.js 在其庫的擴展性,易用性以及功能方面有很好的優勢。學習 Three.js 入門 3D 開發不但門檻低,而且學習曲線不會太陡,即使以后轉向 WebGL 原生開發,也能通過 Three.js 學習到很多有用的知識。



現在最火的微信小游戲跳一跳也是在 Three.js 的基礎上開發出來的。所以,Three.js 是我們必須要學的 WebGL 框架。


入門前準備

瀏覽器兼容


Three.js 可以使用 WebGL 在所有現代瀏覽器上渲染場景。對于舊版瀏覽器,尤其是 Internet Explorer 10 及更低版本,您可能需要回退到其他渲染器(CSS2DRenderer、CSS3DRenderer、SVGRenderer、CanvasRenderer)。



注意:如果您不需要支持這些舊版瀏覽器,則不推薦使用其他渲染器,因為它們速度較慢并且支持的功能比 WebGLRenderer 更少。


點擊查看原圖

即可下載當前版本的代碼及相關案例,文件下載解壓后是這樣的:


微信截圖_20200529213036.png

其中相關文件夾的內容是:

build:里面含有 Three.js 構建出來的 JavaScript 文件,可以直接引入使用,并有壓縮版;
docs:Three.js 的官方文檔;
editor:Three.js 的一個網頁版的模型編輯器;
examples:Three.js 的官方案例,如果全都學會,必將成為大神;
src:這里面放置的全是編譯 Three.js 的源文件;
test:一些官方測試代碼,我們一般用不到;
utils:一些相關插件;
其他:開發環境搭建、開發所需要的文件,如果不對 Three.js 進行二次開發,用不到。
還有第三種,就是直接去 GitHub 上下載源碼,和在官網上下載的代碼一樣。

hello World

前面說了這么多,準備了這么多,最后,放上我們的第一個案例吧。由此來打開學習 Three.js 的大門:


<!DOCTYPE html><html><head>    <meta charset=utf-8>    <title>我的第一個Three.js案例</title>    <style>        body {            margin: 0;        }        canvas {            width: 100%;            height: 100%;            display: block;        }    </style></head><body onload="init()"><script src="https://cdn.bootcss.com/three.js/92/three.js"></script><script>    //聲明一些全局變量    var renderer, camera, scene, geometry, material, mesh;    //初始化渲染器    function initRenderer() {        renderer = new THREE.WebGLRenderer(); //實例化渲染器        renderer.setSize(window.innerWidth, window.innerHeight); //設置寬和高        document.body.appendChild(renderer.domElement); //添加到dom    }    //初始化場景    function initScene() {        scene = new THREE.Scene(); //實例化場景    }    //初始化相機    function initCamera() {        camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 200); //實例化相機        camera.position.set(0, 0, 15);    }    //創建模型    function initMesh() {        geometry = new THREE.BoxGeometry( 2, 2, 2 ); //創建幾何體        material = new THREE.MeshNormalMaterial(); //創建材質        mesh = new THREE.Mesh( geometry, material ); //創建網格        scene.add( mesh ); //將網格添加到場景    }    //運行動畫    function animate() {        requestAnimationFrame(animate); //循環調用函數        mesh.rotation.x += 0.01; //每幀網格模型的沿x軸旋轉0.01弧度        mesh.rotation.y += 0.02; //每幀網格模型的沿y軸旋轉0.02弧度        renderer.render( scene, camera ); //渲染界面    }    //初始化函數,頁面加載完成是調用    function init() {        initRenderer();        initScene();        initCamera();        initMesh();        animate();    }</script></body></html>

請將上面的代碼復制到 HTML 文件中,然后使用瀏覽器打開,我們就會發現下面的效果:

點擊查看原圖



————————————————

版權聲明:本文為CSDN博主「GitChat的博客」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/valada/java/article/details/80871701







日歷

鏈接

個人資料

藍藍設計的小編 http://www.ocunn.cn

存檔

国产一区二区主播在线| 亚洲欧美另类中文字幕| 一区二区三区加勒比av| 久久久久久黄色| 国产成人免费在线观看不卡| 日韩激情一二三区| 国产精品毛片| 亚洲高清网站| 欧美午夜在线| 欧美激情视频一区二区三区在线播放| 精品在线99| 青青视频一区二区| 青青草原在线亚洲| 婷婷亚洲精品| 日韩mv欧美mv国产网站| 日韩精品免费一区二区三区竹菊| 国产高清视频一区二区| 欧美午夜三级| 999精品嫩草久久久久久99| 国产一区影院| 亚洲色图综合| 国产亚洲亚洲国产一二区| 99精品女人在线观看免费视频| 123成人网| 欧美日韩在线精品一区二区三区激情综合 | 欧美色片在线观看| 波多野结衣在线播放| 欧美另类tv| 牛牛精品视频在线| 国产盗摄——sm在线视频| 成人ssswww在线播放| 日韩伦理在线一区| 澳门av一区二区三区| 欧美在线se| 干b视频在线观看| 超碰成人在线免费观看| 日韩国产小视频| 午夜精品久久久久久久无码| 激情内射人妻1区2区3区| 欧美女同在线观看| 粉嫩av一区二区| 免费在线亚洲| 久久久国产综合精品女国产盗摄| 在线观看国产精品91| 成人免费在线小视频| 最近中文字幕在线| 视频在线观看一区二区三区| 日本一区二区在线免费播放| 久草视频国产在线| 欧美性猛交bbbbb精品| 国产精品密蕾丝视频下载| 久久福利一区二区| 2022国产精品| 久久一区免费| 一区二区三区四区免费观看| 69堂免费视频| 国产免费a级片| 色www亚洲国产阿娇yao| 免费看日韩毛片| 国产精品久久婷婷| 尤物视频网站在线观看| 老司机在线视频二区| 国产精选在线| y111111国产精品久久久| 久久一区91| 噜噜噜躁狠狠躁狠狠精品视频| 国产成人精品影视| 亚洲国产精品毛片av不卡在线| 国产酒店精品激情| av一区二区三区四区| 成人欧美一区二区三区| 欧美网站一区二区| 亚洲视频axxx| 国产精品扒开腿做爽爽爽男男| 国产欧美一区二区三区另类精品| 中文字幕av导航| 欧美第一页浮力影院| 日本猛少妇色xxxxx免费网站| 亚洲免费激情视频| 日本免费网站在线观看| 二区三区在线观看| 免费一级欧美在线大片| 久久久久久91亚洲精品中文字幕| 国产男男chinese网站| 91看片在线播放| 成人午夜免费在线观看| 黄色网在线播放| 九九九九九九精品任你躁| 天天做天天爱天天综合网2021| 久久精品久久99精品久久| 国产精品视频免费看| 欧美日韩中文字幕一区二区| www.色综合| 国产日韩欧美精品| 日本成年人网址| 中文字幕伦理片| 亚洲视频一区二区三区四区| 高清毛片在线看| 经典三级久久| 午夜一区不卡| 国产精品的网站| 精品剧情v国产在线观看在线| 97成人在线视频| 天堂精品一区二区三区| 国产成人精品综合久久久久99 | jizz18女人高潮| 国产乱淫av片免费| 亚洲妇熟xxxx妇色黄| 欧美三级午夜理伦三级小说| 日本不卡一区二区三区高清视频| 亚洲免费视频成人| 日韩黄色av网站| 成人性生交大片免费观看嘿嘿视频| 日韩精品免费一区| av永久免费观看| 亚洲国产欧美另类| 亚洲欧美se| 欧美日本在线| 1区2区3区国产精品| 精品网站999www| 99在线视频播放| 手机在线看福利| 日本黄色片视频| 在线观看精品一区二区三区| 美女主播精品视频一二三四| 韩国欧美一区二区| 欧美三级中文字幕在线观看| 欧美在线免费视频| 亚欧无线一线二线三线区别| 男女性高潮免费网站| 精品资源在线看| 欧美一级全黄| 99国产精品视频免费观看| 欧美一级黄色片| 国产一区视频在线| 欧美美女性视频| 糖心vlog精品一区二区| 成年人国产在线观看| 欧美激情第10页| 亚洲人妖av一区二区| 日韩中文字幕亚洲| 在线视频亚洲自拍| 波多野结衣家庭教师| 黄色在线网站| 国产中文精品久高清在线不| 久久久综合视频| 亚洲精品在线91| 欧美日韩一区二区三| 91网站免费视频| 色影视在线视频资源站| 欧美1区二区| 久久先锋资源网| 中文字幕亚洲一区| gogogo免费高清日本写真| 欧美偷拍第一页| 26uuu亚洲电影在线观看| 国内精品美女在线观看| 黄网站色欧美视频| 国产精品福利在线| 超碰成人在线播放| 亚洲AV无码一区二区三区少妇| 999精品嫩草久久久久久99| 国产一区二区精品在线观看| 精品捆绑美女sm三区| 欧美少妇一区| 日韩精品一区二区亚洲av性色| 在线观看国产原创自拍视频| 91精品久久久久久久蜜月| 亚洲电影在线免费观看| 精品中文字幕一区二区小辣椒 | 丰满少妇在线观看| 国产日韩欧美中文字幕 | 日韩欧美一级精品久久| 免费电影一区| 久久中文免费视频| 欧美aaaaaaa| 轻轻草成人在线| 亚洲精品在线电影| 中文字幕一区二区三区5566| 日本熟妇一区二区| 黄色综合网址| www.在线欧美| 久久精品电影网站| 激情视频综合网| 成人毛片视频免费看| 九九热线有精品视频99| 亚洲一区二区欧美| 国产一区私人高清影院| japanese中文字幕| 伊人手机在线| 精彩视频一区二区| 国产亚洲精品久久久久久| 久无码久无码av无码| 亚洲最大成人av| 欧美重口另类| 亚洲狠狠爱一区二区三区| 国产日韩欧美在线视频观看| 性少妇bbw张开| 四季久久免费一区二区三区四区| 人人超碰91尤物精品国产| 亚洲欧美国产精品| a在线视频观看| 人妻一区二区三区免费| 亚州av乱码久久精品蜜桃| 在线日韩av片| 久久久久久九九| 美女又爽又黄免费视频| 日韩08精品| 亚洲男人的天堂在线aⅴ视频| 国产精品偷伦视频免费观看国产 | 欧美中文字幕在线观看| 一级做a爰片毛片| av免费在线免费观看| 国产精品综合二区| 久久91超碰青草是什么| 亚洲欧洲日韩综合| 欧美性猛交xxx乱大交3蜜桃| 久久精品免费看| 久久av红桃一区二区小说| 中文字幕第三区| h网站久久久| 国产乱国产乱300精品| 欧美成人h版在线观看| 久久久久久无码精品人妻一区二区| 亚洲精品传媒| 国产乱人伦偷精品视频不卡| 欧美激情第一页xxx| 欧美熟妇精品一区二区蜜桃视频| 手机在线免费看av| 91免费看`日韩一区二区| 国产精品白嫩初高中害羞小美女 | 午夜精品久久久久久久蜜桃| 九九综合九九| 91精品国产一区二区| 日韩伦理在线免费观看| 亚洲精品无码专区在线播放| 88久久精品| 精品久久久久久久久久久久久久| 日本在线成人一区二区| 精品人妻午夜一区二区三区四区 | 久久久久免费视频| 神马久久久久久久久久久 | 欧美日韩在线三区| 人妻无码久久一区二区三区免费| 在线观看免费网站| 激情综合网天天干| 欧美在线视频网站| 青娱乐国产在线视频| 欧美福利在线播放网址导航| 欧美日本在线看| 成人在线免费在线观看| www亚洲人| 972aa.com艺术欧美| 亚洲最大福利网站| 中文字幕有码视频| 欧美色图麻豆| 久久视频这里只有精品| 亚洲国产日韩一区无码精品久久久| 欧美爱爱视频| 欧美在线观看一区| 日韩欧美国产免费| 成人黄色网址| 中文字幕在线一区| 亚洲一区二区三区免费看| 免费在线看污| 成人夜色视频网站在线观看| 国产亚洲精品久久| 久久久久成人精品无码中文字幕| 国产a亚洲精品| 欧洲国产伦久久久久久久| 116极品美女午夜一级| 亚洲卡一卡二| 一区二区三区四区不卡视频| 一级全黄肉体裸体全过程| 你懂的在线看| 国产日产精品1区| 日韩欧美亚洲区| 日韩av资源| 国产午夜精品一区二区三区四区| 久久精品人人做人人爽电影| 手机在线精品视频| 国产69精品久久99不卡| 99视频国产精品免费观看| 国产富婆一级全黄大片| 蜜臀av一区二区在线免费观看| 国产精品v日韩精品| 一区二区不卡视频在线观看| 日韩黄色免费电影| 国产在线精品成人一区二区三区| 国产在成人精品线拍偷自揄拍| 久久久噜噜噜| 成人精品一区二区三区电影免费| 国产理论片在线观看| 精品一区二区三区香蕉蜜桃| 51国偷自产一区二区三区| 亚洲第九十九页| 成人性视频网站| 欧洲精品码一区二区三区免费看| 日韩美女一级视频| 国产欧美日韩亚州综合 | 91美女片黄在线| 欧美aaaaa喷水| 欧美一区二区视频| 中文字幕在线一区免费| 大西瓜av在线| 成人福利视频| 日韩一级在线观看| 日韩av在线看免费观看| 日韩在线中文| 6080yy精品一区二区三区| 中文字幕视频免费观看| 韩国av一区二区| 精品久久sese| av在线免费观看网站| 亚洲成人精品一区| 8x8x成人免费视频| www.爱久久| 久久成人在线视频| 亚洲免费在线观看av| 奇米四色…亚洲| 精品乱码一区二区三区| 黄色小视频在线观看| 午夜精品久久久| 三级黄色片免费观看| 日韩美女毛片| 欧美肥老妇视频| 亚洲天堂网在线视频| 粉嫩av一区二区三区粉嫩| 一区二区三区偷拍| 午夜久久中文| 日韩激情av在线播放| 精品视频一区二区在线观看| 日韩精品免费专区| 欧美国产二区| 丁香花在线影院| 精品国产一区久久| 国产精品白嫩白嫩大学美女| 亚洲综合精品四区| 久久精品国产综合精品 | 亚洲国产欧美国产综合一区| 日韩欧美色综合网站| 三级黄色在线观看| 亚洲欧美bt| 久久久综合亚洲91久久98| a视频在线播放| 日韩欧美另类在线| 精品爆乳一区二区三区无码av| 秋霞成人午夜伦在线观看| 四虎影院一区二区三区 | 纪美影视在线观看电视版使用方法| 亚洲天堂免费| 91在线在线观看| 免费在线观看黄色网| 欧美精品在欧美一区二区少妇| 久久中文字幕精品| 久久久久看片| 日韩第一页在线观看| 欧美一级二级视频| 中文字幕日韩在线观看| 国产又粗又猛又色又| 91九色在线播放| 亚洲国产欧美另类| 欧美精品久久久久久久久久丰满| 亚洲欧美日韩在线播放| 亚洲综合在线一区二区| 日韩成人激情| 99在线视频首页| 91大神在线网站| 欧美精品第一页| 日韩熟女精品一区二区三区| 国产ts人妖一区二区| 成人在线免费观看av| 奇米亚洲欧美| 91久久国产婷婷一区二区| 国产激情小视频在线| 亚洲成年人在线| 中文字幕在线播放不卡| 亚洲欧洲成人自拍| 国产精品扒开腿做爽爽爽a片唱戏| 一区在线视频观看| 亚洲国产高清国产精品| 电影一区二区| 97免费中文视频在线观看| 国产综合在线观看| 精品国产一区二区三区不卡| 91亚色免费| 色wwwwww| 欧美日韩激情一区二区三区| 97人人澡人人爽人人模亚洲| 国产偷国产偷亚洲高清人白洁 | 成人黄色av| 精品一区二区国产| 国产成人精选| 秋霞av国产精品一区| www在线播放| 亚洲欧美精品一区二区| 无码精品一区二区三区在线| 欧美日韩高清一区二区| 亚洲黄网在线观看| 亚洲高清在线精品|