深入了解OpenGL OpenGL的演化

2021-09-30 07:32:31 字數 765 閱讀 7278

因為在opengl2.0之前,opengl基本的設計是作為固定功能狀態機,所以要修改opengl的唯一方法是對它定義擴充套件。這樣,在各種opengl實現中,要通過擴充套件的形式來暴露新的功能,從而有了大量可用的擴充套件。opengl有乙個定義良好的擴充套件機制,並且硬體製造商可以自由地定義並實現新硬體功能的特徵。但由於只有opengl實現者才能實現才能實現擴充套件,因此就無法預先為應用程式擴充套件此opengl功能,直到opengl提供商提供了擴充套件的實現。

到目前為止,已經有超過400個opengl擴充套件了。只被一家製造商支援的擴充套件是通過用乙個唯一標識該製造商的短的字首來標識的(比如,sgi就是由silicon graphics, inc.開發的擴充套件)。超過1家製造商所支援的擴充套件在副檔名中用字首ext來表示。而徹底被arb組織評審的擴充套件在副檔名中用arb字首標出,以指示它們具有作為乙個揭露某個功能的推薦方法的乙個特殊狀態。達成arb標籤的擴充套件將作為被新增到標準opengl的候選。發表的opengl擴充套件的詳細說明可以在www.opengl.org/registry/中查詢到。

在opengl的版本2.0之前,圖形硬體的底層可程式設計性沒有被暴露。opengl的原始設計者mark segal和kurt akeley陳述到:「做此決定的乙個理由是,對於效能的原因,圖形硬體硬體通常被設計為以一種特定的次序提供某些操作;用任意的演算法去取代這些操作通常是不可實行的。」這話在當時2023年基本上是正確的(在當時甚至已經有了可程式設計的圖形架構)。但今天,正被生產的所有圖形硬體都是可程式設計的。因為opengl擴充套件的不斷繁殖,並且又需要支援微軟的directx api,硬體製造商沒有選擇,只能設計可程式設計的圖形架構。

深入了解A

一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...

深入了解A

一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...

深入了解Dojo Data

譯自http www.sitepen.com blog 2010 10 13 dive into dojo data 使用dojo data有助於快速建立web應用的介面,且易於嵌入各種資料來源。它在使用者介面與底層資料之間提供了一層抽象層,使得使用者介面開發人員能夠專注於ui的開發,而無需擔心資料...