Что мне нужно добавить к моему методу инициализации OpenGL, чтобы включить тестирование глубины, и как бы я использовал его для наложения текстур?
Мне бы пришлось расширить последний параметр glOrtho до чего-то более экстремальногочем -1, и, конечно, Глубокая проверка глубины.Затем, чтобы использовать его, я могу только предположить, что я изменяю третий параметр glVertex на что-то, что не равно 0, чтобы отправить его впереди / позади других текстур.
Я пробую это, и чертовы текстуры недаже не показывай.xD Я, должно быть, что-то упустил.
РЕДАКТИРОВАТЬ: RE: Ответ Тима
всякий раз, когда я делал изображение z более экстремальным, чем -1, оно не показывало, что экран был просто черным.
void initGL(){
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_DEPTH_TEST); //depth test enabled
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glOrtho(-width/2, width/2, -height/2, height/2, 1, -10);//far changed to -10
GL11.glMatrixMode(GL11.GL_MODELVIEW);
}
и
void loadBG(int theLoadedOne){
GL11.glBindTexture(GL11.GL_TEXTURE_2D, theLoadedOne);
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0,0);
GL11.glVertex3f(-width/2,height/2, -2);//new z value
GL11.glTexCoord2f(1,0);
GL11.glVertex3f(width/2,height/2,-2);//new z value
GL11.glTexCoord2f(1,1);
GL11.glVertex3f(width/2,-height/2,-2);//new z value
GL11.glTexCoord2f(0,1);
GL11.glVertex3f(-width/2,-height/2,-2);//new z value
GL11.glEnd();
GL11.glFlush();
}
и
while(!Display.isCloseRequested()){
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
...
for(int i=0;i<1;i++){ //dont mind this for loop
bg.loadThisBG(0); //its here for reasons
}
updateFPS();
Display.update();
} Display.destroy();
}