OpenGL – C++ Bài 7: Render Các Đối Tượng cơ bản

Hi. Chào mừng các bạn đến với chủ đề Học Lập Trình OpenGL Tại blog: Phát Triển Phần Mềm 123-az

Hôm nay chúng ta cùng nghiên cứu cách vẽ các hình học 3d cơ bản trong opengl

Đó là các đối tượng hình học 3d rất cơ bản trong thế giới thực, với kích thường tùy người sử dụng nhập vào.

Note:

+ Khi dùng cho các dự án hay bài tập dài hay các demo của bạn. Hãy nhớ sử dụng display list để tối ưu hơn.

+Tìm hiểu cách sử dụng display list tại đây =>  Sử dụng display list trong OpengGL.

+ Sample code tôi tạo trong hệ tọa độ thuần của opengl.

Trục Y hướng lên trên, do đó khi các bạn áp dụng vào dự án của mình.

Hãy sử dụng các lệnh glRotate và glTranslate để quay hoặc dịch đối tượng cho phù hợp.

I. Render các hình Cad Cơ bản.
1. Opengl Vẽ một hình lập phương (OpenGL render Cube)

2. Opengl Vẽ một hình hộp chữ nhật (OpenGL render box)

3.Opengl Vẽ một hình Cầu (Opengl render Sphere)

3. OpenGL Vẽ một hình trụ (OpenGL Render Cylinder)

 

4. OpenGL vẽ một hình nón cụt (OpenGL Render Truncated Cone)

5. OpenGL Vẽ một hình nón thường (OpenGL Cone)

6. OpenGL Vẽ mộ hình kim tự tháp – hình chóp đều (OpenGL Render pyramid)

7. OpenGL Vẽ một hình chóp cụt (OpenGL Render Frustum Shape).

8. Opengl Vẽ mộ hình Bát diện đều (OpenGL Render Octagon)

Bát diện đều có 8 mặt bên và 2 mặt đáy là hình bát giác đều

Tính chất của bát giác đều:

+ Tổng các góc là 1080 độ.

+ Góc giữa hai cạnh là 135 độ.

+ 8 cạnh bằng nhau.

II. Thiết Lập Màu sắc khác nhau trong chế độ lighting cho từng đối tượng.

Trong bài lighting các bạn đã biết cách tọa chiếu sáng và chế độ material để thiết lập màu sắc cho đối tượng khi chiếu sáng.

Nhưng khi chúng ta thiết lập một chế độ vật liệu chung trong hàm Init thì các đối tượng đều có chung nhau một màu sắc vật liệu.

Như vậy câu hỏi đặt ra rằng, Nếu tối muốn tạo màu sắc chiếu sáng riêng cho từng loại đối tượng thì tôi làm thế nào.

Ví dụ tôi muốn cube màu đỏ, cylinder màu vàng, pyramid màu xanh thì làm sao thực hiện được.

Ok. Hãy thực hiện với các bước sau.

1. Định nghĩa ra các màu cơ bản mà bạn muốn như dưới đây.

#define K_MAT_RED            0
#define K_MAT_GREEN       1
#define K_MAT_BLUE          2
#define K_MAT_YELLOW    3
#define K_MAT_PINK          4

2. Viết hai hàm set material như sau:

Function SetMaterialColor được định nghĩa hai lần với hai kiểu đối số truyền vào.

1 là dành cho các màu cơ bản có thể gọi tên.

2 là dành cho màu bất kỳ mà các bạn sẽ giá trị.

3. Trong hàm renderscene khi tạo dựng đối tượng => Gọi hàm và truyền màu sắc mong muốn.

Chúng ta có kết quả như sau:

Ok. Trên đây là cơ bản cách render các hình học 3d trong openGL.

Từ những hình học cơ bản này, chúng ta có thể lắp ghép và tạo dựng các đối tượng phức tạp hơn.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.