有關於OpenGL、OpenGL ES、WebGL的小結

轉自原文 有關於OpenGL、OpenGL ES、WebGL的小結 javascript

一.   OpenGL簡介

  OpenGL(全寫Open Graphics Library)是個定義了一個跨編程語言、跨平臺的編程接口的規格,它用於三維圖西象(二維的亦可)。OpenGL是個專業的圖形程序接口,是一個功能強大,調用方便的底層圖形庫。php

  關於其餘的介紹我就不說了。這邊我說一下有OpenGL的資源網站:html

  OpenGL官網:http://www.opengl.org/resources/libraries/glut/html5

  NeHe網站:http://nehe.gamedev.net/java

  優良的OpenGL教程:http://www.zwqxin.com/archives/opengl/tutorial-recommendation.htmlandroid

 

二.   OpenGL ES

1. OpenGL ES簡介

        能夠這麼說,OpenGL ES是OpenGL的嵌入式版本,OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三維圖形 API 的子集,針對手機、PDA和遊戲主機等嵌入式設備而設計。該API由Khronos集團定義推廣,Khronos是一個圖形軟硬件行業協會,該協會主要關注圖形和多媒體方面的開放標準。web

        OpenGL ES的版本差別,主要有兩個版本,一個是OpenGL ES 1.X,一個是OpenGL ES 2.0版本,2.0的版本是不兼容1.x版本,由於一個是固定功能的管線(1.x),另外2.0是可編程功能管線,因此不少都不同,來看看百科是怎麼介紹的。OpenGL ES 是從 OpenGL 裁剪的定製而來的,去除了 glBegin/glEnd,四邊形(GL_QUADS)、多邊形(GL_POLYGONS)等複雜圖元等許多非絕對必要的特性。通過多年發展,如今主要有兩個版本,OpenGL ES 1.x 針對固定管線硬件的,OpenGL ES 2.x 針對可編程管線硬件。OpenGL ES 1.0 是以 OpenGL 1.3 規範爲基礎的,OpenGL ES 1.1 是以 OpenGL 1.5 規範爲基礎的,它們分別又支持 common 和 common lite兩種profile。lite profile只支持定點實數,而common profile既支持定點數又支持浮點數。 OpenGL ES 2.0 則是參照 OpenGL 2.0 規範定義的,common profile發佈於2005-8,引入了對可編程管線的支持。 編程

 

2. OpenGL ES 2.0概況:

支持的平臺:瀏覽器

  - 支持iPad, iPhone3GS 和後續版本,以及iPodTouch3代和後續版本。編程語言

  - 支持Android平臺從Android 2.2版本開始。

  - 支持android NDK從Android 2.0版本開始。

  - 支持BlackBerry PlayBook黑莓。

  - 支持Pandora潘多拉控制檯的3D庫。

  - 被WebGL支持:瀏覽器支持OpenGL

  - 支持少數新款Nokia諾基亞手機,好比N900上的Maemo和N8上的Symbian3塞班3系統。

  - 支持多款三星手機,包括Galaxy S和Wave

  - 使用開發插件能夠支持Palm webOS。

  - 支持Archos 愛可視上網本:70 IT, 101 IT

     opengl es與android有着密切的關係,主要體如今這兩種接口的發展軌跡和研發公司。

    目前有關於OpenGL ES 2.0的材料仍是蠻少的,就只有一本書介紹(OpenGL ES 2.0 Programming Guide)是英文版,我有買了一本書,其實不會很難看懂。你要學習OpenGL ES 最好先把OpenGL 和 OpenGL Shading Language瞭解一下,畢竟這是基礎的知識內容。

    OpenGL ES 書的網站:http://www.opengles-book.com/downloads.html

三. WebGL

1. WebGL 簡介

        WebGL是一種3D繪圖標準,這種繪圖技術標準容許把JavaScript和OpenGL ES 2.0結合在一塊兒,經過增長OpenGL ES 2.0的一個javascript綁定,WebGL能夠爲HTML5 Canvas提供硬件3D加速渲染,這樣Web開發人員就能夠藉助系統顯卡來在瀏覽器裏更流暢地展現3D場景和模型了,還能建立複雜的導航和數據視覺化。顯然,WebGL技術標準免去了開發網頁專用渲染插件的麻煩,可被用於建立具備複雜3D結構的網站頁面,甚至能夠用來設計3D網頁遊戲等等。

        WebGL完美地解決了現有的Web交互式三維動畫的兩個問題:第一,它經過HTML腳本自己實現Web交互式三維動畫的製做,無需任何瀏覽器插件支持;第二,它利用底層的圖形硬件加速功能進行的圖形渲染,是經過統一的、標準的、跨平臺的OpenGL接口實現的。

2. WebGL 的例子

     其實我有作了一個WebGL的例子,是用WebGL畫了一個色立體,固然目前還很粗糙,簡單的來講,它就是html5+OpenGL ES的組合,可是Html5還不成熟,因此關於WebGL的不少例子還只是在不成熟的DEMO上,可是我想這在之後還一種趨勢,固然IT業誰也說不清楚,WebGL能夠說是OpenGL的網頁版,目前關於WebGL的書籍仍是沒有的,官網有一個是學習WebGL的教程,固然是英文了。。呵呵

目前IE還不支持WebGL,有FireFox還有谷歌瀏覽器等支持。。。

10大WebGL應用演示網站案例http://www.fadianzhan.com/index.php/archives/208

學習網站:http://learningwebgl.com/blog/

相關文章
相關標籤/搜索