LẬP TRÌNH OPENGL VỚI THƯ VIỆN AUX - Trang 49

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>

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.