我使用該函數從圖形卡, 得到我的紋理,但由於某種原因,它不就有些卡返回任何東西,如果的miplevel> 0glGetTexImage()在ATI卡上無法正常工作?當的miplevel> 0
下面是一個使用獲得圖像的代碼IM失敗:
glGetTexImage(GL_TEXTURE_2D, miplevel, GL_RGB, GL_UNSIGNED_BYTE, data);
這裏是我使用的檢查,使用紋理映射,其方法的代碼:
ext = (char*)glGetString(GL_EXTENSIONS);
if(strstr(ext, "SGIS_generate_mipmap") == NULL){
// use gluBuild2DMipmaps()
}else{
// use GL_GENERATE_MIPMAP
}
目前已正常工作,所以它說GL_GENERATE_MIPMAP支持那些ATI顯卡下面。
下面是測試卡:
- 的ATI Radeon 9550/X1050系列
- 的ATI Mobility Radeon HD 3470
- ATI的Radeon X700
- 的ATI Radeon HD 4870
- 的ATI Radeon HD 3450
在這一刻我正在採取miplevel 0並通過自己的代碼生成mipmap。有沒有更好的解決這個問題?
此外glGetError()返回0爲所有卡,所以沒有發生錯誤。它只是沒有用。可能是驅動程序問題?
我還在尋找更好的修復比調整它自己的CPU ...
glGetError()是否返回有用的東西? 「老牌」究竟是什麼意思?在1998年前後,曾經有不完整的OpenGL實現(例如Matrox G200 OpenGL MCD),但是如果你沒有告訴我們更多關於它們的信息(包括驅動程序和操作系統版本),這很難說是否適用於你的顯卡。 – 2010-02-03 00:16:58
編輯我的帖子。 – Newbie 2010-02-03 16:13:53
你是如何生成你的mipmap? gluBuild2DMipmaps()或glTexParameteri(...,GL_GENERATE_MIPMAP,...)? – genpfault 2010-02-03 17:18:02