花了幾個小時尋找一個簡單的方法來添加一個圖像到用C++編寫的openGL應用程序,我失敗了,悲慘地。很明顯,其他人也有。OpenGL DevIL C++源代碼
我對OpenGL相當新穎,我用OpenGL使用DevIL編寫了自己的win32應用程序,你猜對了,我失敗了。 我可以讓DevIL工作的唯一方法是使用Glut,我不想使用或SDL或glaux.h
我在尋找的是代碼或C++中帶有OpenGL的簡單圖像加載器的教程和魔鬼,任何幫助將不勝感激。
花了幾個小時尋找一個簡單的方法來添加一個圖像到用C++編寫的openGL應用程序,我失敗了,悲慘地。很明顯,其他人也有。OpenGL DevIL C++源代碼
我對OpenGL相當新穎,我用OpenGL使用DevIL編寫了自己的win32應用程序,你猜對了,我失敗了。 我可以讓DevIL工作的唯一方法是使用Glut,我不想使用或SDL或glaux.h
我在尋找的是代碼或C++中帶有OpenGL的簡單圖像加載器的教程和魔鬼,任何幫助將不勝感激。
如果您要求OpenGL使用地圖過濾,請務必give it mipmaps to filter with。
此外,我很肯定glTexParameteri()
和glTexEnvf()
只適用於當前綁定的紋理。
嘗試用這個替換您InitTextures()
:
Tex1 = ilutGLLoadImage("tex1.bmp");
glBindTexture(GL_TEXTURE_2D, Tex1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
Tex2 = ilutGLLoadImage("tex2.bmp");
glBindTexture(GL_TEXTURE_2D, Tex2);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
來自pastebin的代碼可以正常工作,我想用opengl複製代碼作爲win32應用程序,而不是使用過剩。 我真的不知如何去做,我看過的所有教程都包含過剩的內容,或者像使用glaux庫的NeHes教程。 http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=06 我想換掉那個教程中的devil庫的glaux lib函數,但是我不知道如何去做我對DevIL沒有正確的理解?可能嗎? – Jeraldo 2010-09-14 16:43:50
是如何魔鬼不工作?崩潰?鏈接器問題?沒有有用的顯示? – genpfault 2010-09-14 14:31:39
沒有紋理繪製到屏幕上。它基本上與谷歌演示相同的代碼在這裏: – Jeraldo 2010-09-14 15:31:52
http://pastebin.com/RBTajJyk – Jeraldo 2010-09-14 15:33:04