webgl與opengl的區(qū)別和聯(lián)系
WebGL
WebGL的縮寫為Web圖形庫。它主要用于渲染二維圖形和交互式三維圖形。它是可以與HTML5一起使用的Javascript API。它支持跨平臺,并且僅以英語提供。WebGL程序由用JavaScript編寫的控制代碼組成
1.WebGL 是基于?OpenGL?ES 2.0 的 Javascript API,而不是純OpenGL(ES代表“嵌入式系統(tǒng)”)。
2.WebGL通過 HTML5 的?Canvas?來和 DOM 打交道。因此也和 OpenGL ES 2.0 一樣,使用 GLSL 作為 Shading Language (一種 C-Like 頂點計算和著色的語言,緩存編譯到 GPU,由 GPU 來執(zhí)行)。
3.WebGL 2.0基于OpenGL ES 3.0,確保了提供許多選擇性的WebGL 1.0擴展,并引入新的API。
OpenGL
OpenGL被稱為開放圖形庫。它被稱為跨語言和平臺應用程序編程接口,用于呈現(xiàn)二維和三維矢量圖形。
OpenGL提供了許多功能,例如擴展。
1.OpenGL ES本質(zhì)上是OpenGL的一個子集。
2.OpenGL_ES是khronos協(xié)會從OpenGL裁剪定制而來的,專為手機,游戲機等嵌入式設備而設計。它的接口其實和 Open GL很類似。
3.OpenGL ES相對OpenGL刪減了一切低效能的操作方式,有高性能的決不留低效能的,即只求效能不求兼容性。
主要區(qū)別:
WebGL基于OpenGL ES,它缺少常規(guī)OpenGL具有的許多功能,例如僅支持頂點和片段著色器。OpenGL具有WebGL所不具備的功能,例如幾何體著色器,鑲嵌細分著色器和計算著色器。
WebGL主要用于瀏覽器。OpenGL確實需要本機驅(qū)動程序,并且主要用于安裝軟件。
WebGL用于Web應用程序,而OpenGL用于許多視頻游戲。
WebGL更易于學習和開發(fā)應用程序。如果您熟悉WebGL,則可以輕松學習OpenGL。
在WebGL中,它可以使用2D紋理來偽造3D紋理。在OpenGL中,不需要這樣做,因為它具有很多功能,例如幾何和著色器。
在WebGL中,從一開始就必須學習使用著色器和緩沖區(qū)。在OpenGL中,并非如此。
WebGL具有較少的功能,因此學習曲線較少。OpenGL具有更大的學習曲線,因為它具有包括WebGL在內(nèi)的許多功能。
WebGL基于OpenGL ES 2,而不是純OpenGL。OpenGL ES是OpenGL的子集。OpenGL ES具有較少的功能,并且對用戶來說非常簡單。OpenGL具有很多功能并且難以使用。
————————————————
版權(quán)聲明:本文為CSDN博主「一碗老面i」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_29808089/article/details/112169991