Pha trộn (Blending)

Một phần của tài liệu Tài liệu Giới thiệu về lập trình game 3D sử dụng OpenGL doc (Trang 39 - 41)

Hướng dẫn này sẽ giới thiệu về cách pha trộn màu.

Việc pha trộn màu sắc rất hữu ích cho các hiệu ứng ví dụ như: thủy tinh, nước, màn hình v.v..

Một phần thiết yếu của việc trộn màu là giá trị alpha mà chúng ta chỉ định cho tất cả màu sắc. Alpha có giá trị bằng 0 thể hiện một bề mặt hoàn toàn trong suốt và giá trị bằng 1 thể hiện một bề mặt mờ đục.

Khi làm việc với sự trộn màu chúng ta phải luôn nhớ đến 2 màu khác nhau. Thứ nhất là giá trị của màu nguồn (giá trị hiện tại thêm vào) và bản ghi của giá trị màu (giá trị tồn tại trong bộ đệm). Màu sắc sẽ được làm tùy thuộc vào giá trị alpha.

Demo code

79

Chúng ta sẽ đặt một số lượng hình chữ nhật chồng lên nhau trên màn hình, các đỉnh cho hình chữ nhật được đưa ra ở mảng dưới đây.

Chúng ta sẽ hiện thị các kết hợp khác nhau của trộn màu. Những biến dưới đây sẽ tổ chức những loại màu trộn đang được thực hiện.

Chức năng Init của chúng ta sẽ lựa chọn một màu để xóa màn hình. Chúng ta sẽ không sử dụng bất kì chiều sâu nào trong chức năng này.

Đê kích hoạt chức năng pha màu chúng ta phải sử dụng cở GL_BLEND của chức năng glEnable.

Một chức năng quan trọng glBlendFunc được sử dụng để chỉ định màu sắc như thế nào trong việc trộn màu. Chức năng này có 2 giá trị. Xác định màu sắc như thế nào có thể được tính. Cả 2 tham số có thể chấp nhận được các giá trị sau: - GL_ZERO - GL_ONE - GL_SRC_COLOR - GL_ONE_MINUS_SRC_COLOR - GL_DST_COLOR - GL_ONE_MINUS_DST_COLOR - GL_SRC_ALPHA

81

Một phần của tài liệu Tài liệu Giới thiệu về lập trình game 3D sử dụng OpenGL doc (Trang 39 - 41)