GLvoid CALLBACK resize(GLsizei w,GLsizei h)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0,0,w,h);
gluPerspective(30.0,1.0,1.0,10.0);
glMatrixMode(GL_MODELVIEW);
}
int main(int argc, char *argv[])
{
auxInitPosition(200,100,512,512);
auxInitDisplayMode(AUX_RGBA|AUX_DOUBLE|AUX_DEPTH);/*thô
ng số mới*/
auxInitWindow(argv[0]);
auxReshapeFunc(resize);
auxIdleFunc(draw);
auxMainLoop(none);
return 0;
}
Trong chương trình trên chúng ta đã sử dụng tham số
GL_DEPTH_BUFFER_BIT, muốn xoá buffer z thì chúng ta phải dùng
tham số này(mục đích là cài đặt z buffer), hai hàm glEnable() và
glDisable() có tác dụng khởi động buffer z(chiều sâu) và tắt nó đi, được
dùng với thông số GL_DEPTH_TEST.Trong hàm auxInitDisplayMode()
chúng ta cũng phải thêm thông số AUX_DEPTH để có thể quan sát được
chiều sâu của đồ vật.Tuy vậy chương trình trên có một số yếu điểm, đó là
việc liên quan đến các mặt khuất.Thử biên dịch mã nguồn dưới đây và quan
sát sự khác nhau:
/*filename depth2.cpp*/
#ifdef unix
#include <GL/gl.h>