close

一、OpenGL ES 簡介

在上一章中,我們介紹了OpenGL,知道了它是用於計算機圖形繪製的編程接口標準,支持不同平台上的圖形繪製,在計算機上發揮了重要作用。

後來,隨着手機等移動設備性能的快速提高,人們已經不滿足於將移動設備的應用止於通訊應用、記事等傳統平面應用。而越來越注重移動設備功能的多樣化、娛樂化,手機3D遊戲、GPS導航系統等代表了未來移動設備發展的方向。

基於這種情況,Khronos 組織於 2003 年 7 月發布了專門針對於嵌入式設備圖形開發的標準 OpenGL ES (OpenGL for Embedded Systems)。

二、WebGL 簡介

WebGL,是一項用來在網頁上繪製和渲染複雜三維圖形(3D圖形),並允許用戶與之交互的技術。隨着個人計算機和瀏覽器的性能越來越強,我們能夠在Web上創建越來越精美、越來越複雜的3D圖形。

從傳統意義上來說,為了顯示三維圖形,開發者需要使用 C 或 C++ 語言,輔以專門的計算機圖形庫,如OpenGL或Direct3D,來開發一個獨立的應用程序。

現在有了 WebGL,我們只需要向已經熟悉的 HTML 和 JS 中添加一些額外的三維圖形學的代碼,就可以在網頁上顯示三維圖形了。

WebGL 是內嵌在瀏覽器中的,不必安裝插件和庫就可以直接使用它。

三、三者關係

OpenGL ES 可以說是 OpenGL 為了滿足嵌入式設備需求而開發一個特殊版本,是其一個子集;而 WebGL,是為了網頁渲染效果,將 JavaScript 和 OpenGL ES 2.0 結合在一起,通過增加 OpenGL ES 2.0 的一個JavaScript綁定得到。

基本關係如下圖所示:

在實際應用過程中,前端的 WebGL 是通過 JS 語句,操作本地的OpenGL的部分接口,對於移動設備這是操作OpenGL ES的接口,來實現頁面的圖形的渲染,WebGL只是綁定外面接口的一層,內部的一些核心內容,如着色器,材質,燈光等都是需要藉助 GLSL 語法來操作的。

三者的版本關係如下圖所示:

四、三者區別

WebGL 與其他 OpenGL 最大差別就是其可以通過 HTML 腳本本身實現 Web 交互式三維動畫的製作,無需任何瀏覽器插件支持。

OpenGL ES 和 OpenGL 最大差別就是兩者應用場景不一樣,一個是計算機,一個是移動或嵌入式設備。這種差別體現在兩個方面:

窗口系統不一樣。OpenGL ES 是一個平台中立的圖形庫,在它能夠工作之前,需要於一個實際的窗口系統關聯起來,這一點 OpenGL 也是一樣的。

但是 OpenGL 時代在不同平台上有不同的機制一關聯窗口系統,在 Windows上是wgl,在X-Window上市 xgl ,在 Apple OS 上是 agl 等。

而嵌入式市場的平台種類不計其數,單是學習各家手機操作系統的接口就是很大負擔了,更不用說致力於支持各種尺寸平台的軟件開發者,所以OpenGL ES 提供了Window Surface的抽象,使得移植工作基本可以局限在重新實現一下建立窗口的過程。

這個窗口工具是 EGL, 全稱: embedded Graphic Interface,是 OpenGL ES 和底層 Native 平台 視窗系統之間的接口。

功能規模不一樣。嵌入式設備和移動設備追求的是高性能,因此 OpenGL ES 相對OpenGL 刪減了一切低效能的操作方式,有高性能的決不留低效能的,即只求效能不求兼容性(和蘋果的作風類似)。

————————————————

版權聲明:本文為CSDN博主「特快倉鼠」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/qq_23034515/article/details/108283747

-- END --

進技術交流群,掃碼添加我的微信:Byte-Flow

獲取視頻教程和源碼


推薦:

Android FFmpeg 實現帶濾鏡的微信小視頻錄製功能

抖音傳送帶特效是怎麼實現的?

所有你想要的圖片轉場效果,都在這了

熟悉 OpenGL VAO、VBO、FBO、PBO 等對象,看這一篇就夠了

OpenGL ES 3.0 FBO 離屏渲染(校正版)

你不是說 OpenGL 無所不能嗎?刮刮卡實現下

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()