Màu sắc của các đối tượng vẽ trong môi trường OPENGL phải được lựa chọn và khởi tạo trước khi vẽ đối tượng, do OPENGL là một tập hợp các bộ lệnh đồ họa nên khi lập trình chuyên sâu chúng ta nên xây dựng các hàm trong đó chứa các tập hợp lệnh khởi tạo màu sắc ánh sáng hay vật liệu cho đối tượng.
1. Chọn màu.
Xét đoạn mã sử dụng các hàm Open GL để thể hiện 1 đoạn thẳng trắng trên nền đen. void DrawWithOpenGL() { glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f, 1.0f, 1.0f); glBegin(GL_LINE) glVertex2f(0.25f,0.25f); glVertex2f(0.75f,0.25f); glEnd(); glFlush(); }
Bây giê ta xem xét kỹ hơn từng dòng của DrawWithOpenGL () a. Đặt màu xóa
Ở dòng đầu tiên, DrawWithOpenGL () gọi hàm glClearColor (), để thiết lập màu nền ở chế độ RGBA. Bốn đối số của hàm này là các giá trị có kiểu dữ liệu GLfloat, biểu điễn các thành phần màu: đỏ, xanh lá, xanh dương và alpha. RGBA (red, green, blue, alpha) là chế độ màu kết hợp hệ thống RGB với alpha (là thành phần dùng điều khiển việc trộn màu). RGB (red, green, blue) là chế độ pha trộn hay phương pháp thể hiện màu trên phương tiện
dùng nguồn sáng như màng hình màu. RGB pha trộn theo tỷ lệ phần trăm các màu cơ bản là đỏ, xanh lá cây và xanh dương để tạo nên các màu khác.
b. Xóa bộ đệm màu
Dòng thứ hai trong DrawWithOpenGL () xóa bộ đệm màu với màu xóa hiện hành. Hàm glClear () hiểu đối số của nó nh một chuỗi các cờ bit cho biết bộ đệm nào cần xóa (hàm không trả về giá trị). Bộ đệm màu (được biểu thị bởi cờ GL_COLOR_BUFFER_BIT là vùng bé nhớ chứa hình ảnh sẽ được hiển thị trên màn hình màn hình. Open GL sử dụng các loại bộ nhớ khác, bao gồm bộ đệm chiều sâu và bộ đệm stencil, để giúp nó xử lý ảnh.
c. Đặt màu vẽ hiện hành
Sau khi đặt màu vẽ, mọi đối tượng được tạo bởi các lời gọi hàm OpenGL sẽ được vẽ bằng màu vẽ đã chọn. Như đã biết, màu này sẽ duy trì tác dụng cho đến khi nào bị thay đổi bởi lời gọi glColor () khác.