Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Threejs
Search
Mike
November 08, 2016
Programming
680
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
69
金流是什麼能吃嗎?
mike1208
0
85
現代前端開發 前後端分離
mike1208
0
990
Mobile 科技魔法
mike1208
0
450
CreateJS與Flash
mike1208
0
1.8k
nodejs
mike1208
0
500
VR開發者黑客松大賽-經驗分享ˋ談
mike1208
0
280
Other Decks in Programming
See All in Programming
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
540
すこし踏み込む CancellationToken
htkym
2
1.7k
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
golang-bob.pdf
iwatsukayura
0
130
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
600
Agents on Rails - Rails at Scale 2026
irinanazarova
0
560
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
How to build a perfect <img>
jonoalderson
1
6.1k
We Are The Robots
honzajavorek
0
400
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
360
BBQ
matthewcrist
90
10k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
4 Signs Your Business is Dying
shpigford
187
23k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
GitHub's CSS Performance
jonrohan
1033
470k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
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時間
謝謝大家