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

{
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);/*thông số mới*/
auxInitWindow(argv[0]);
auxReshapeFunc(resize);
auxIdleFunc(draw);
auxMainLoop(none);
return 0;
}
Trong hàm draw() tôi đã bỏ đi hàm glFlush() và thay bằng hàm
auxSwapBuffers(), sử dụng double buffer là một kỹ thuật để tránh hiện
tượng nhấp nháy màn hình mà các bạn mới lập trình đồ hoạ thường mắc
phải.Kỹ thuật này được mô tả như sau: dùng một offbuffer, rồi vẽ lên đó
sau đó mới đưa lên màn hình, tưởng tượng nếu bạn cắt từng chữ rồi dán lên
để người xem thấy thì họ sẽ nhìn thấy bạn dán từng chữ một, nhưng nếu
bạn dán lên đằng sau tờ giấy rồi lật ngược lại thì họ không biết là nó được
dán từng chữ một(tượng trưng thôi, chứ người ta biết thừa )Để dùng được
double buffers bạn phải thêm thông số AUX_DOUBLE trong hàm
auxInitDisplayMode().Bây giờ bạn đã có một hình lập phương chuyển
động mịn màng quanh trục OY.
Thật ra hình lập phương mà chúng ta đã vẽ chỉ là một khung của hình lập
phương thôi, còn các mặt thì chúng ta chưa vẽ, vì thế mà các nét khuất
chúng ta vẫn nhìn thấy, bây giờ chúng ta sẽ dùng tham số GL_QUADS để

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.