Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Threejs
Search
Mike
November 08, 2016
Programming
670
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Threejs
HTML5 CANVAS 框架
如何在網頁上面運行3D的世界!
Mike
November 08, 2016
More Decks by Mike
See All by Mike
初探 Deep learning
mike1208
0
68
金流是什麼能吃嗎?
mike1208
0
73
現代前端開發 前後端分離
mike1208
0
980
Mobile 科技魔法
mike1208
0
440
CreateJS與Flash
mike1208
0
1.8k
nodejs
mike1208
0
500
VR開發者黑客松大賽-經驗分享ˋ談
mike1208
0
280
Other Decks in Programming
See All in Programming
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1k
AIが無かった頃の素敵な出会いの話
codmoninc
1
270
5分で問診!Composer セキュリティ健康診断
codmoninc
0
680
Foundation Models frameworkで画像分析
ryodeveloper
1
140
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
190
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
140
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
190
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.2k
AIエージェントで 変わるAndroid開発環境
takahirom
2
730
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
110
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
160
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
140
Featured
See All Featured
Navigating Team Friction
lara
192
16k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
910
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
370
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.6k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
640
Optimising Largest Contentful Paint
csswizardry
37
3.8k
Transcript
Three.js 一場從2D變成3D的冒險
智遠 米蘭營銷策劃股份有限公司/互動設計師 Mike
[email protected]
飛肯設計學苑 講師
什麼是Three.js
three.js是JavaScript編寫的WebGL第三方庫。提供了非常多的3D 顯示功能。 Three.js 是一款運行在瀏覽器中的3D 引擎,你可以用它 創建各種三維場景,包括了攝影機、光影、材質等各種對象。
開發工具介紹
一樣還是 Sublime text 3 外掛 Three.js Autocomplete
在寫three.js前你所要了解 三維世界是怎麼一回事!!! 不然你會死得很難看…
座標 場景 物件 環境光 聚光 材質 貼圖 攝影機 算圖引擎 格式
用3D軟體操作講解3維世界!!! 只看ppt會很難懂,所以沒聽到的就自行上網查資料吧…
終於可以講到code的部分了XD 基本知識都具備了,開始動手寫吧!!!
我們來說說開發流程
1.場景 2.物件 5.算圖引擎 材質 貼圖 3.燈光 環境光 聚光 6.算圖 4.攝影機
引入three.js的lib
先來創建一個場景
建立物件級材質貼圖
建立燈光
建立攝影機
建立算圖引擎
算圖
完整的code
成功啦~我們創造了一個cube
基本的3D物件可以透過three.js的內 建方法創建,像是方塊、圓形、平面 等等,但是如果要在複雜一點的就可 能需要在專業的3D軟體製作完成後再 匯入three.js中
接下來我們來匯入 外部的3D模型
Three.js讀取的模型副檔名 為.obj,貼圖則是.mtl
我們從官方下載來的整包 lib裡面其實有許多額外的 擴充功能…
在這包js裡面有許多你有需要才要 引入的功能 three.js-master\examples\js
我們在這找到這3支js然後引入
引入外部模型
new THREE.OBJLoader(); 加載進來的3D模型是不帶材質的 new THREE.OBJMTLLoader() 加載進來的3D模型是可以添加材質的
然後稍微修改一下render的方式
這是一個不斷對算圖更新的方法, 當畫面有進行任何更動時可以不斷 更新!!! window.requestAnimationFrame();
如果發現模型變成全黑的,還出現以下錯誤訊息
請檢查你的.mtl的貼圖路徑對不對!!!
可以成功看到模型被載入,還有了貼圖
接下來我要跟畫面產生互動!!!
我們剛剛載入的js包裡面有一個 OrbitControls.js 找到載入,它是一個對攝影機產生滑鼠 的互動方法,只要簡單幾行code就可以 達到簡單的互動
路徑在此,載入!!!
使用它的方法 記得new它得時候要把攝影機(camera)帶入 然後對render()監聽change事件
看!我可以用滑鼠改變它的角度了
其實也沒這麼難啦~~~
Q&A時間
謝謝大家