WebGL和OpenGL的區別為:性質不同、插件支持不同、用途不同。
WebGL
WebGL的縮寫為Web圖形庫。它主要用於渲染二維圖形和交互式三維圖形。它是可以與HTML5一起使用的Javascript API。它支持跨平台,並且僅以英語提供。WebGL程序由用JavaScript編寫的控制代碼組成
1.WebGL 是基於 OpenGL ES 2.0 的 Javascript API,而不是純OpenGL(ES代表“嵌入式系統”)。
2.WebGL通過 HTML5 的 Canvas 來和 DOM 打交道。因此也和 OpenGL ES 2.0 一樣,使用 GLSL 作為 Shading Language (一種 C-Like 頂點計算和着色的語言,緩存編譯到 GPU,由 GPU 來執行)。
3.WebGL 2.0基於OpenGL ES 3.0,確保了提供許多選擇性的WebGL 1.0擴展,並引入新的API。
OpenGL
OpenGL被稱為開放圖形庫。它被稱為跨語言和平台應用程序編程接口,用於呈現二維和三維矢量圖形。
OpenGL提供了許多功能,例如擴展。
1.OpenGL ES本質上是OpenGL的一個子集。
2.OpenGL_ES是khronos協會從OpenGL裁剪定制而來的,專為手機,游戲機等嵌入式設備而設計。它的接口其實和 Open GL很類似。
3.OpenGL ES相對OpenGL刪減了一切低效能的操作方式,有高性能的決不留低效能的,即只求效能不求兼容性。
主要區別:
- WebGL基於OpenGL ES,它缺少常規OpenGL具有的許多功能,例如僅支持頂點和片段着色器。OpenGL具有WebGL所不具備的功能,例如幾何體着色器,鑲嵌細分着色器和計算着色器。
- WebGL主要用於瀏覽器。OpenGL確實需要本機驅動程序,並且主要用於安裝軟件。
- WebGL用於Web應用程序,而OpenGL用於許多視頻游戲。
- WebGL更易於學習和開發應用程序。如果您熟悉WebGL,則可以輕松學習OpenGL。
- 在WebGL中,它可以使用2D紋理來偽造3D紋理。在OpenGL中,不需要這樣做,因為它具有很多功能,例如幾何和着色器。
- 在WebGL中,從一開始就必須學習使用着色器和緩沖區。在OpenGL中,並非如此。
- WebGL具有較少的功能,因此學習曲線較少。OpenGL具有更大的學習曲線,因為它具有包括WebGL在內的許多功能。
- WebGL基於OpenGL ES 2,而不是純OpenGL。OpenGL ES是OpenGL的子集。OpenGL ES具有較少的功能,並且對用戶來說非常簡單。OpenGL具有很多功能並且難以使用。
轉自:https://blog.csdn.net/qq_29808089/article/details/112169991