Tạo một dự án Empty Project và thiết lập cài đặt dành cho glut và OpenGL. Có thể tham khảo tại đây.
Gõ (hoặc chép) đoạn code sau:
#include <iostream>
#include <gl\glut.h>
#include <gl\GL.h>
#include <gl\GLU.h>
void display() {
glColor3f(1.0,1.0,0.0);
glPointSize(10);
glBegin(GL_POINTS);
glVertex2f(50,100);
glVertex2f(200,200);
glEnd();
glFlush();
}
int main(int argc, char** argv) {
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(0,0);
glutInitWindowSize(500,500);
glutCreateWindow("Ve");
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glOrtho(0.0,500,0.0,500,-1.0,1.0);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Phần #include: để nhập các thư viện, file header để sử dụng các hàm glut, OpenGL.
Nghiên cứu các hàm được gọi trong Main() trước:
- glutInit(int* pargc,char **argv): Khởi tạo thông số cho cửa sổ của glut. Các tham số pargc và argv được lấy từ hàm main().
- Các hàm về thiết lập cửa sổ màn hình:
- glutInitDisplayMode(int mode): thiết lập chế độ màu, buffer cho màn hình.
Danh sách các thiết lập:
GLUT_RGBA: thiết lâp cho chế độ màn hình RGBA.
GLUT_RGB: tương tự GLUT_RGBA.
GLUT_INDEX: thiết lập chế độ màu mặc định.
GLUT_SINGLE: thiết lập chế độ màn hình buffer đơn.
GLUT_DOUBLE: thiết lập chế độ màn hình buffer đôi.
GLUT_ACCUM: thiết lập chế độ accumulation buffer.
GLUT_ALPHA: thiết lập chế độ đối tương anpha cho buffer màu.
GLUT_DEPTH: thiết lập cho depth buffer.
GLUT_STENCIL: thiết lập cho stencil buffer.
GLUT_MULTISAMPLE: thiết lập cho multisampling.
GLUT_STEREO: thiết lập chế độ stereo.
GLUT_LUMINANCE: thiết lập cho chế độ màu "luminance".
Sử dụng toán tử OR để kết hợp các chế độ màu, buffer với nhau.
- glutInitWindowPosition(int x, int y): tọa độ cửa sổ màn hình.
- glutInitWindowSize(int x, int y): thiết lập kích thước cửa sổ màn hình.
- glutCreateWindow(char* title): tạo cửa sổ màn hình với tiêu đề là title.
- glClearColor(Glclampf red, Glclampf green, Glclampf blue, Glclampf alpha): thiết lập chế độ màu mới cho toàn bộ ứng dụng.
- glClear(int mode): GL_COLOR_BUFFER_BIT: thông số để thiết lập cho màu sắc. Còn một số thiết lập nữa sẽ được đề cập sau.
- glOrtho(...): thiết lập tầm nhìn trực giao, sẽ được nói chi tiết trong bài về phép biến trong OpenGL.
- glutDisplayFunc(void (*f)(void)): gọi hàm để thực hiện việc vẽ khi cửa sổ màn hình hiển thị. Trong ví dụ này là gọi hàm display.
- glutMainLoop(): Lặp đi lặp lại các hàm callback - sẽ đề cập sau - đến khi nao cửa sổ đóng lại.
Trong hàm display:
- glColor3f( red, green, blue ): thiết lập màu sắc cho đối tượng sắp vẽ.
- glPointSize(float size): kích thước điểm ảnh.
- glBegin(int mode): gồm các thông số và minh họa phía dưới:
- glEnd():kết thúc quá trình vẽ.
- glFlush(): đưa dữ liệu từ bộ nhớ tạm và màn hình.