Day04] 為什麼WebGL 的效能這麼強? - iT 邦幫忙
文章推薦指數: 80 %
所以,WebGL 是什麼? 引述部分wiki: WebGL 程式由JavaScript 編寫的控制代碼和 OpenGL Shading Language(GLSL)編寫的著色器程式碼 ...
第11屆iThome鐵人賽
DAY
4
1
ModernWeb
寫給工程師的WebGL學習心得系列第
4篇
[WebGL-Day04]為什麼WebGL的效能這麼強?
11th鐵人賽
angelliya00
2019-09-2019:05:514203瀏覽
「網頁用了WebGL技術,所以很快!」
嗯...所以WebGL是阿斯拉的加速器還是什麼呼吸法嗎?
所以,WebGL是什麼?
引述部分wiki:
WebGL程式由JavaScript編寫的控制代碼和
OpenGLShadingLanguage(GLSL)編寫的著色器程式碼組成
這段話敘述了兩件事:
JavaScript控制
GLSL
Shader是在GPU上跑的指令,
而WebGL讓開發者可以用JavaScript操作Shader
因此寫WebGL時,很多時候是寫GPU執行的指令
需要同時寫JavaScript與Shader
為什麼GPU處理的效果這麼驚豔?:
一個令我印象深刻的影片:
MythbustersDemoGPUversusCPU
CPU-dsignedforserialoperations
舉例來說,如果CPU是射速快的機關槍
GPU-dsignedforparalleloperations
GPU相對來說就是射速慢,但彈丸數量相當多的霰彈槍
GPUisaprocessingunitoracircuitspeciallydesignedfor
fasterandefficientcomputergraphicsoperationimagemanipulation
引用自01-Whatisashader?(Shaderdev.com)
總之,GPU是用來運算影像的(CPU並不是喔!)
GPU一次處理一整片啊...
所以,寫Shader時的思考邏輯幾乎完全不同
聽來是個大問號,我會在後文說明
有趣,但也是相當困難的部分
瀏覽器對WebGL的支援性:
目前大部分主流瀏覽器、手機瀏覽器對WebGL的支援性夠高
(在一些in-AppBrowser也可以瀏覽WebGL網頁)
約略2012~2013年附近,熱烈討論HTML5
當時瀏覽器對canvas標籤的支援性不夠高
WebGL是在canvas上實現二維及三維渲染,
因此不支援canvas的瀏覽器也一定不支援WebGL
註:IE10可使用WebGL,但效果不是很好
幾年前使用WebGL技術的網頁,最多會有三種頁面:
WebGL畫面
不支援WebGL時,顯示canvas版畫面
不支援WebGL與canvas時的畫面
GPU一定比CPU快嗎?
不一定,由於CPU與GPU的設計方式不同
少量矩陣運算時,GPU耗時高於CPU
大量矩陣運算時,CPU耗時遠高於GPU
另一個討論WebGL的影片:
WebGL+GPU=AmazingResults!
影片討論WebGL,稍微硬了一些
不知道讀到這後是覺得有趣還是想放棄呢?
總結本篇重點:
WebGL是用JavaScript控制GLSL
GLSL一次處理大量運算
留言3
追蹤
檢舉
上一篇
[WebGL-Day03]WebGL學習資源
下一篇
[WebGL-Day05]學習經驗1/2-有點不得其門而入的碰壁期
系列文
寫給工程師的WebGL學習心得
共30篇
目錄
RSS系列文
訂閱系列文
59人訂閱
26
[WebGL-Day26]DisplacementFilter(1/3)原理
27
[WebGL-Day27]DisplacementFilter(2/3)在Shadertoy上模擬與互動
28
[WebGL-Day28]DisplacementFilter(3/3)在PixiJS上完成互動
29
[WebGL-Day29]WebGL的一些討論
30
[WebGL-Day30]後記與完賽
完整目錄
3則留言
舊至新
新至舊
最高Like數
0
KingTzeng
iT邦新手4級‧
2019-09-2020:47:37
每天準時拜讀
PS:前輩後面好像打錯了"wegGL"
回應
1
檢舉
angelliya00
iT邦新手4級‧
2019-09-2101:57:08
檢舉
感謝小幫手校正!
直接改囉
感謝小幫手校正!
直接改囉
修改
登入發表回應
0
lb01910483
iT邦新手5級‧
2019-09-2021:37:16
少量矩陣運算時,GPU耗時低於CPU
這段是不是打反了
回應
1
檢舉
angelliya00
iT邦新手4級‧
2019-09-2101:33:14
檢舉
對...Orz,我就直接改囉
感謝校正!
對...Orz,我就直接改囉
感謝校正!
修改
登入發表回應
0
阿展展展
iT邦好手1級‧
2020-01-2900:19:26
霰彈槍XDDD
回應
1
檢舉
angelliya00
iT邦新手4級‧
2020-02-0722:17:51
檢舉
看過就會記得很久XD
看過就會記得很久XD
修改
登入發表回應
我要留言
立即登入留言
iT邦幫忙鐵人賽
參賽組數
1087組
團體組數
52組
累計文章數
20447篇
完賽人數
572人
鐵人賽最新文章
淺談DevOps&Observability
以Ardiuno控制CPU散熱器呼吸燈
超深度鐵人賽後自我審視
建立表與表之間的關聯(Day28)
【Day?(31)】測試環境無法登入
使用程式來管理資料庫(DBMigrate)(Day27)
Day31-遲來的鐵人賽心得
STM32CubeMX專案配置詳細教學,點亮LED
撰寫httprequest的複雜一點的測試(Day26)
2022/02/12更新
前往鐵人賽
技術推廣專區
[Day2]抓取每日收盤價
[Day1]基本工具安裝
利用python取得永豐銀行API的Nonce
[Day03]tinyML開發板介紹
[Day01]在享受tinyML這道美食之前
永豐金融API測試員
[Day3]使用ta-lib製作指標
[Day4]函數打包與買進持有報酬率試算
計算API所需要的參數:HashID
計算API所需要的參數:IV
前往鐵人賽
熱門問題
抽獎程式怎麼都沒被告呢??
將現有系統中心化架構改為去中心化
Windows10設定遠端多人多工要怎麼弄壓
請問怎麼把C:\Users\XXXXX使用者目錄移到D槽捏
手提電腦加入DOMAIN後,回家幾日後就不能LOGIN
加入網域後的筆電,登入問題。
關於UPS及停電大樓柴油緊急發電接法的問題
求各位大大幫我
關於Python與Excel
Vmware4.0上的VM要轉移至Vmware7.0無法轉移
IT邦幫忙
熱門tag
看更多
13th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
windows
python
php
windowsserver
linux
c#
資訊安全
程式設計
css
vue.js
sql
mysql
熱門回答
請問怎麼把C:\Users\XXXXX使用者目錄移到D槽捏
抽獎程式怎麼都沒被告呢??
將現有系統中心化架構改為去中心化
VBA只複製數字
Vue3+VueRouter如何在Composables中互相傳值?
SQL2000升級SQL2008R2資料庫發生錯誤?
3combaseline2250plus交換器預設IP和初始連接
HPP4300G2系統重灌
O365SMTP寄發系統信件
工作管理員記錄程序cpu問題
熱門文章
計算機概論-網路通訊與網際網路Networkingandtheinternet(上)
【HTML】【CSS】如何處理inline-block元素之間的空白
DeepLink/DeferredDeepLink深度連結
ISO27001資訊安全管理系統【解析】(十二)
Python入門Day6:#WhileTrue的用法
YouTube轉換為MP3
桌面端YouTube影片下載器-10款最佳
OpenProject安裝在ubuntu20.04LTS
【JavaScript】檢查Array陣列的各種方式
Apple音樂下載到電腦5個方法輕鬆做到【必學】
一週點數排行
更多點數排行
㊣浩瀚星空㊣(yoching)
居然解出來了(partyyaya)
raytracy(raytracy)
天黑(horace_work)
尼克(nickliao1)
海綿寶寶(antijava)
Han(c0952199517)
juck30808(juck30808)
cloudeasy(cloudeasy)
haward79(haward79)
×
At
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{result.label}}
{{result.account}}
關閉
延伸文章資訊
- 1WebGL_百度百科
WebGL(全寫Web Graphics Library)是一種3D繪圖協議,這種繪圖技術標準允許把JavaScript和OpenGL ES 2.0結合在一起,通過增加OpenGL ES 2.0...
- 2WebGL - 維基百科,自由的百科全書
WebGL是一種JavaScript API,用於在不使用外掛程式的情況下在任何相容的網頁瀏覽器中呈現互動式2D和3D圖形。WebGL完全整合到瀏覽器的所有網頁標準中,可將影像處理和 ...
- 3WebGL是什么? - 简书
谈起WebGL可能有一些人比较陌生,实际上WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript... ... WebGL从2012年开始接触,后面因为开始专注前端 ...
- 4Day04] 為什麼WebGL 的效能這麼強? - iT 邦幫忙
所以,WebGL 是什麼? 引述部分wiki: WebGL 程式由JavaScript 編寫的控制代碼和 OpenGL Shading Language(GLSL)編寫的著色器程式碼 ...
- 5WebGL 入門- Web APIs
WebGL 程式包含了由JavaSrcipt 及著色器(GLSL)撰寫的控制碼以及在電腦的圖形處理器( GPU )上執行的特效程式碼(著色器程式碼)。WebGL 元素可以加入其他HTML 元素之...