事實上,我並不完全瞭解OpenGL是什麼。
OpenGL in和本身就是一個API的規範:你可以調用一組函數,特殊值和標記以及每個調用的效果是什麼。然後,實現遵循這個規範來提供一個可用的OpenGL。
OpenGL是柵格化繪圖API,爲繪製3D空間中的圖元而優化。即您提供3D座標流和繪圖模式(即繪製點,線或三角形),然後OpenGL將3D數據轉換爲2D屏幕空間並在畫布上繪製平面圖元。後來的OpenGL版本不再是嚴格的3D到2D版本,而是需要所謂的着色器,它是描述將任意維度幾何轉換爲2D屏幕空間的小程序。
附加功能是在繪圖時作爲附加數據源的圖像數據(紋理)的採樣和插值。
細節:我似乎一直在嘗試使用3D梅薩這甚至不是嚴格意義上的官方OpenGL實現反正。
爲什麼?如果你在Windows上,那麼你應該使用GPU驅動提供的OpenGL實現,而不是一些隨機庫(儘管Mesa3D並不是完全隨機的)。
OpenGL實際上並不是你安裝的一些庫,它是GPU驅動程序提供的一組函數。對於GPU驅動程序不提供OpenGL的情況,您可以使用軟件光柵化器實現。
Mesa 3D甚至使用gpu嗎?
取決於。在Windows上Mesa3D只是一個軟件光柵器。但是對於X.org(Linux,FreeBSD等)來說,Mesa3D是GPU驅動程序的開源OpenGL前端,因此如果X.org配置爲使用Mesa3D可以使用的驅動程序,那麼您可以通過檯面獲得GPU加速。
我不知道如何獲得另一個實現庫;我甚至不知道其他人是什麼。(我的dev-cpp編譯器提供了Mesa 3D)
通常,您將OpenGL作爲GPU驅動程序的一部分。在Linux上安裝開源GPU驅動程序時,會自動安裝Mesa3D。但也有閉源驅動程序和那些使用完全不同的代碼庫。
這是非常重要的:你並不需要一個專門的OpenGL庫做OpenGL開發。
通常,您的編譯器附帶一個「opengl32.lib」(如果在Windows上 - 在其他平臺上,您只是告訴鏈接器與系統OpenGL鏈接)。然而,這只是鏈接器的內容列表,實際的OpenGL實現將提供什麼。
在Windows系統OPENGL32.DLL出口僅OpenGL的1.1。對於任何以上的功能,都有所謂的擴展機制來加載更高版本的功能。通常你做到這一點通過庫(在這種情況下,一個真正的圖書館)一樣GLEW
請在這裏發表_specific_問題,每...問題一個問題。那裏有一些東西。如果您收到鏈接器錯誤,請閱讀docs_和_關注您找到的教程和示例。至於「什麼是OpenGL」,請使用搜索引擎,那裏有大量的信息。 – Mat
我試過使用聊天功能!但沒人聽。 – Codesmith