WebGL入門之基於WebGL的3D視覺化引擎介紹
定義
WebGL(Web Graphics Library)是一個JavaScript API,用於在任何相容的Web瀏覽器中渲染高效能互動式3D和2D圖形,而無需使用外掛。WebGL透過引入一個非常符合OpenGL ES 2.0的API來實現這一點,該API可以在HTML 元素中使用。這種一致性使 API 可以利用使用者裝置提供的硬體圖形加速。WebGL完全整合到瀏覽器的所有Web標準中,允許GPU加速使用影像處理和效果作為網頁畫布的一部分。WebGL元素可以與其他HTML元素嵌入,並與頁面的其他部分合成。
WebGL是一個跨平臺的開放Web標準,用於基於OpenGL ES的低階3D圖形API,透過HTML5 Canvas元素向ECMAScript公開。熟悉OpenGL ES 2.0的開發人員使用GLSL將WebGL識別為基於Shader的API,其構造在語義上與底層OpenGL es API的構造相似。它非常接近OpenGL ES規範,對開發人員對記憶體管理語言(如JavaScript)的期望做出了一些讓步。WebGL 1.0 公開了 OpenGL ES 2.0 功能集;WebGL 2.0 公開了 OpenGL ES 3.0 API。
設計
WebGL 1.0基於OpenGL ES 2.0.為3D圖形提供了API。[5] 它使用 HTML5 canvas 元素,並使用文件物件模型 (DOM) 介面進行訪問。
WebGL 2.0基於OpenGL ES 3.0.保證了WebGL 1.0的許多可選擴充套件的可用性,並公開了新的API。
自動記憶體管理作為 JavaScript 語言的一部分提供。與OpenGL ES 2.0一樣,WebGL沒有OpenGL 1.0中引入並在OpenGL 3.0中棄用的固定函式API。此功能可以改為由使用者透過在 JavaScript 中提供著色器程式碼和配置資料繫結來提供。
WebGL中的著色器直接在GLSL中表示,並作為文字字串傳遞給WebGL API。WebGL 實現將這些著色器指令編譯為 GPU 程式碼。此程式碼針對透過 API 傳送的每個頂點以及柵格化到螢幕的每個畫素執行。
歷史
WebGL是從Vladimir Vukićević在Mozilla開始的Canvas 3D實驗演變而來的。Vukićević在2006年首次展示了Canvas 3D原型。到2007年底,Mozilla和Opera都已經完成了自己的獨立實現。
2009年初,非營利性技術聯盟Khronos Group成立了WebGL工作組,最初來自Apple,Google,Mozilla,Opera等。WebGL規範的1.0版本於2011年3月釋出。截至2012年3月,工作組主席是肯·羅素。
WebGL的早期應用包括Zygote Body。2012年11月,歐特克宣佈將大部分應用程式移植到執行在本地WebGL客戶端上的雲中。這些應用程式包括Fusion 360和AutoCAD 360.WebGL 2規範的開發始於2013年,最終於2017年1月完成。本規範基於 OpenGL ES 3.0.第一個實現是在Firefox 51.Chrome 56和Opera 43中。
應用
Sovit3D 視覺化開發平臺採用B/S架構,基於WebGL繪圖技術標準,提供基於純 HTML5(Canvas/WebGL)的標準 Web 技術,可方便的在瀏覽器上進行瀏覽和除錯,滿足了工業物聯網跨平臺雲端化部署實施的需求,從元件庫到 2D、3D 組態工具,再到行業向量圖示和三維模型模板資源庫,構成了一站式的資料視覺化解決方案,可快速實現現代化的、智慧化的、跨平臺的圖形展示效果及互動體驗。為Web視覺化提供了豐富的展現形式和視覺效果,幫助軟體開發公司、解決方案提供商輕鬆搭建3D視覺化場景。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014953/viewspace-2925733/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於 WebGl HTML5 的 3D 視覺化機房WebHTML3D視覺化
- 基於 HTML5 WebGL 的 3D 風機視覺化系統HTMLWeb3D視覺化
- 基於 WebGL 的 HTML5 3D 工控隧道視覺化系統WebHTML3D視覺化
- 基於 HTML5 WebGL 的挖掘機 3D 視覺化應用HTMLWeb3D視覺化
- 基於 HTML5 WebGL 的加油站 3D 視覺化監控HTMLWeb3D視覺化
- 基於 HTML5 + WebGL 的無人機 3D 視覺化系統HTMLWeb無人機3D視覺化
- 基於 HTML5 + WebGL 的太陽系 3D 視覺化系統HTMLWeb3D視覺化
- 基於 HTML5 WebGL 的發動機 3D 視覺化系統HTMLWeb3D視覺化
- 基於 HTML5 的 WebGL 樓宇自控 3D 視覺化監控HTMLWeb3D視覺化
- 基於 HTML5 的 WebGL 3D 地鐵站視覺化系統HTMLWeb3D視覺化
- 基於 WebGL 的 HTML5 樓宇自控 3D 視覺化監控WebHTML3D視覺化
- 基於 HTML5 WebGL 的地鐵站 3D 視覺化系統HTMLWeb3D視覺化
- 視覺化學習:WebGL的基礎使用視覺化Web
- 基於 WebGL 3D 的 HTML5檔案館視覺化管理系統Web3DHTML視覺化
- 基於 HTML5 的 WebGL 3D 檔案館視覺化管理系統HTMLWeb3D視覺化
- 基於 HTML5 + WebGL 的 3D 風力發電場視覺化系統HTMLWeb3D視覺化
- 基於 HTML5 WebGL + WebVR 的 3D 虛實現實視覺化培訓系統HTMLWebVR3D視覺化
- 基於 WebGL 的 3D Chart 圖表Web3D
- webgl入門(1)-什麼是webglWeb
- 基於WebGL架構的3D視覺化平臺—三維裝置管理(ThingJS實現樓宇裝置管理3D視覺化)Web架構3D視覺化JS
- 視覺化學習:如何用WebGL繪製3D物體視覺化Web3D
- WebGL之3D地球Web3D
- webgl入門(2)-初識webgl和著色器Web
- 基於 HTML5 WebGL 的 3D 挖掘機HTMLWeb3D
- 基於 HTML5 WebGL 的 3D 機房HTMLWeb3D
- 基於 WebGL 的 3D 電信機架之資料繫結Web3D
- 基於 HTML5 WebGL 的 3D 渲染引擎構建工廠運作系統HTMLWeb3D
- 基於threejs(webgl)的3D元宇宙雲展廳JSWeb3D元宇宙
- 基於 HTML5 WebGL 的 3D 科幻風機HTMLWeb3D
- 基於 HTML5 的 WebGL 3D 隧道監控HTMLWeb3D
- 基於WebGL的三維交通監控視覺化技術應用(實踐版) ThingJSWeb視覺化JS
- 視覺化學習:WebGL實現縮放平移視覺化Web
- 基於HTML5 WebGL的工業化3D電子圍欄HTMLWeb3D
- 藉助WebGL三維視覺化技術檢索3D動態影像Web視覺化3D
- Three.js入門篇之1 - WebGL on HTMLJSWebHTML
- 基於Web的6個完美3D圖形WebGL庫Web3D
- 基於 WebGL HTML5 的 3D 模型分離控制WebHTML3D模型
- 基於 HTML5 WebGL 的 3D 工控裙房系統HTMLWeb3D