2013-01-05 146 views
0

我目前正在學習如何在openGL中加載和使用圖像。 我嘗試了幾個教程的很多例子。 許多教程使用一個函數:LoadBMP或其他東西。 這個函數沒有被我使用的頭文件聲明。在openGL中加載圖像

你需要一個appart頭文件來加載圖片嗎? 我看着openGL維基百科,他們說有3個這樣的頭文件。

還是我錯了? 您是否需要openGL 3.0或更高版本來加載圖像?

+1

LoadBMP不是OpenGL本身的一部分。我相信glaux.h可能有一些功能可以幫助您加載圖像(至少對於位圖)。這些函數將返回一個AUX_RGBImageRec,它將使用glTexImage加載的RGBA數據。 – Aeluned

+0

所以我首先必須下載glaux.h頭文件?只是一個頭文件沒有.dll文件? – abcdef

+0

DevIL圖像庫是常用圖像庫的一個例子。 – Grimmy

回答

8

OpenGL沒有任何函數來加載圖像。您可以自己編寫LoadBMP函數,也可以使用第三方庫。有很多可用的,你可以在this找到一些相關問題的答案。

然後,您可以將原始圖像數據傳遞給OpenGL紋理創建功能,如glTexImage2D,以創建紋理。

+0

如果你想寫你的,請說:loadJPEG加載JPEG圖像,你是否必須解碼JPEG格式? – abcdef

+1

@abcdef是的,你必須自己解碼jpeg格式 –

3

OpenGL只是一個訪問GPU的API。沒有功能可以加載任何媒體文件(圖像,3D模型等)。甚至沒有支持在給定的操作系統中創建窗口(OS API需要與OpenGL綁定)。

您需要從圖像中加載字節(使用另一個庫),然後您可以使用OpenGL將其上傳到GPU。

爲了簡單起見,我使用了一個名爲SOIL的庫,我覺得它很棒。 OpenGL wiki上有一個list of related toolkits and APIs,這可能很有用。