Bùi Minh Trường
Lập trình Opengl với thư viện AUX
(Tài liệu tham khảo của trường đại học wakayama Nhật)
8
10.Animation(Hoạt cảnh)
Phần này sẽ giới thiệu với các bạn về cách tạo hoạt cảnh trong opengl.Hoạt
cảnh luôn luôn có sức thu hút người lập trình, nó là một phần quan trọng
trong lập trình đồ hoạ.
Trước hết chúng ta sẽ xem xét hai hàm auxIdleFunc() và
auxMainLoop().Hàm auxIdleFun() có nhiệm vụ gọi các hàm trong khi
không nhận một sự kiện (event) của người dùng, trong chương trình dưới
đây, cụ thể là nó sẽ vẽ lại window khi không có event nào.Còn hàm
auxMainLoop() chỉ vẽ lại window khi có một sự kiện cụ thể như người
dùng di chuyển cửa sổ, nút được bấm, bị cửa sổ khác đè lên.... Để quan sát
được rõ ràng chúng ta cũng phải dùng đến hàm glMatrixMode().Khi thay
đổi modeling và viewing thì phải thay đổi ma trận của nó, bằng cách dùng
hai thông số GL_MODELVIEW và GL_PROJECTION, vì nếu chỉ thay đổi
trong lúc khởi tạo window thì ta sẽ không thu được tác dụng của các hàm
này khi cửa sổ bị thay đổi, chính vì thế mà chúng ta để nó trong hàm
resize(), vì ma trận trên được lặp đi lặp lại nên chúng ta để hàm
glMatrixMode(GL_MODELVIEW) sau cùng.Dưới đây là mã nguồn:
/*filename animation1.cpp*/
#ifdef unix
#include <GL/gl.h>
#include "aux.h"
#define CALLBACK
#else
#include<windows.h>
#include<GL/gl.h>
#include<GL/glaux.h>
#endif