2011-05-22 235 views
1

我在使用OpenGL繪製紋理時遇到了一些問題。以下是我目前正在嘗試使用these textures加載的模型的鏈接。OpenGL紋理映射問題

現在,這裏的一個目錄,所有的相關文件的鏈接:http://karvis.kapsi.fi/

這個問題可以從img1.jpg

可以看到我用紅色標出這個區域是不應該與映射紋理,你可以從3D倉庫模型中看到。問題是,由於某種原因,整個模型被映射,但也應該有沒有紋理的區域。還有沒有紋理的相同型號:img2.jpg

而我正在編譯的代碼是:main.cpp。我使用資產導入庫導入Collada模型和FreeImage以將圖像轉換爲RGB格式。

有誰知道爲什麼會發生這種情況?也許我傳遞錯誤的參數給OpenGL,或者是我加載這些紋理的方式?

回答

2

之前渲染的紋理,你需要做的:

glEnable(GL_TEXTURE_2D); 
glBindTexture(...); 
//render the texture 

完成渲染紋理後,你需要禁用紋理:

glDisable(GL_TEXTURE_2D); 

所有我在你的代碼,你能看到2d紋理在節目的開始。

通過您的代碼進一步看,檢查此:

if(mesh->HasTextureCoords(0)) 

返回TRUE或FALSE的領域,你不想被渲染的紋理。

+0

似乎「if(mesh-> HasTextureCoords(0))」永遠不會返回false。看起來有點奇怪,也許問題出在模型上。 – Joni 2011-05-22 14:53:54

+0

@Joni你確定它應該是0,而不是別的?接縫在for循環中有一個常量 – 2011-05-22 14:56:04