OpenGL là gì?
Theo định nghĩa trong lĩnh vực tin học, OpenGL (Open Graphics Library) là một tiêu chuẩn kỹ thuật đồ họa được thiết kế nhằm cung cấp một giao diện lập trình ứng dụng đồ họa 3D. Trước khi có OpenGL, các công ty muốn phát triển ứng dụng đồ họa thường phải viết lại phần đồ họa của mình phù hợp với từng nền tảng hệ điều hành và phần cứng đồ họa khác nhau. Tuy nhiên, với OpenGL, một ứng dụng có thể tạo ra những hiệu ứng tương tự trên mọi hệ điều hành bằng cách sử dụng các hàm đồ họa của OpenGL. Điều này làm cho OpenGL trở thành một ngôn ngữ đồ họa độc lập có khả năng tương thích với mọi nền tảng và kiểu máy tính, kể cả trên những máy tính không hỗ trợ đồ họa cao cấp.
OpenGL định nghĩa một tập hợp các “lệnh” hoặc hàm phải được thực thi ngay. Mỗi lệnh chịu trách nhiệm thực hiện một hành động vẽ hoặc tạo ra các hiệu ứng đặc biệt nào đó. Một danh sách các lệnh như vậy có thể được tạo ra để tạo thành những hiệu ứng đồ họa lặp đi lặp lại, đồng thời không phụ thuộc vào đặc tính riêng của từng hệ điều hành. OpenGL cung cấp các kiểu “dính kết” đặc biệt để phù hợp với từng hệ điều hành, giúp OpenGL hoạt động trong môi trường hệ thống đó.
Bạn đang xem: OpenGL là gì? OpenGL có tác dụng gì?
OpenGL bao gồm một số tính năng tích hợp được xác định và yêu cầu thông qua giao diện lập trình ứng dụng (API), bao gồm việc xử lý bề mặt ẩn, trộn alpha, chống nhòe, làm mịn, tính toán pixel, theo dõi và biến đổi mô hình, và các hiệu ứng không gian (sương mù, khói và sương mù).
Silicon Graphics, một nhà sản xuất hệ thống đồ họa tiên tiến, đã đứng đầu trong việc phát triển OpenGL. Các công ty khác trong Architecture Review Board, bao gồm DEC, Intel, IBM, Microsoft và Sun Microsystems, cũng đã đóng góp vào sự phát triển của OpenGL. Việc phát triển một ứng dụng sử dụng API OpenGL không tốn kém (ngoài việc học). Ngoài ra, Microsoft cung cấp các thư viện OpenGL cho phép người dùng tải miễn phí trên các hệ điều hành Windows của họ.
Đóng góp của OpenGL
Tóm lại, OpenGL đã được phát triển để đáp ứng những mục tiêu chính sau:
– Đơn giản hóa việc tương tác giữa các mô hình không gian 3D thông qua một giao diện lập trình đồng nhất.
– Hỗ trợ tối đa các chức năng của giao diện OpenGL bằng cách yêu cầu sự tương thích giữa các hệ thống đồ họa 3D khác nhau. Ngay cả khi không thể tương thích hoàn toàn với phần cứng, OpenGL có thể sử dụng công nghệ phần mềm để xử lý chức năng yêu cầu.
Xem thêm : Fan Real Madrid gọi là gì? Và tại sao họ cuồng nhiệt như ngày nay?
– Tiêu chuẩn OpenGL nhận các hàm hình học cơ bản như điểm, đường thẳng và đa giác, sau đó chuyển chúng thành các điểm đồ họa (pixel) trên màn hình. Quá trình này được thực hiện thông qua một luồng ống dẫn đồ họa (được gọi là “graphics pipeline”). Một tên khác cho OpenGL được chuyên gia kỹ thuật chia sẻ là trạng thái OpenGL.
Cách cài đặt OpenGL
Cài đặt OpenGL trên Ubuntu
Để cài đặt OpenGL trên Ubuntu, bạn chỉ cần chạy lệnh sau (tương tự như cài đặt bất kỳ phần mềm nào khác) trong Terminal:
sudo apt-get install freeglut3-dev
Bạn có thể làm việc trên hệ điều hành Ubuntu bằng lệnh:
gcc tên_tập_tin.c -lGL -lGLU -lglut
nơi tên_tập_tin.c là tên tập tin chứa chương trình.
Cài đặt OpenGL trên Windows trong Code::Blocks
1. Tải về và cài đặt Code::Blocks
2. Tải về gói Freeglut MinGW bằng liên kết sau và giải nén
3. Mở Notepad với quyền quản trị và mở file từ đường dẫn:
- This PC > C: (ổ C) > Program Files(x86) > CodeBlocks > share > CodeBlocks > templates
- Chọn All Files để hiển thị tất cả các file
- Tìm kiếm và thay thế tất cả “glut32” bằng “freeglut” trong file glut.cbp
- Mở đường dẫn This PC > C: (ổ C) > Program Files(x86) > CodeBlocks > share > CodeBlocks > Templates > Wizard > glut
- Chọn All Files để hiển thị tất cả các file
- Mở wizard.script và tìm kiếm và thay thế tất cả “glut32” bằng “freeglut”
Xem thêm : Hiện tượng học chay, học vẹt trong học sinh hiện nay
4. Sao chép các file từ thư mục freeglut đã tải xuống:
- Sao chép tất cả 4 file từ thư mục “Include > GL”
- Đi đến đường dẫn This PC > C: (ổ C) > Program Files (x86) > CodeBlocks > MinGW > include > GL và dán file vào
- Sao chép 2 file từ thư mục đã tải xuống “freeglut > lib”
- Đi đến đường dẫn This PC > C: (ổ C) > Program Files (x86) > CodeBlocks > MinGW > lib và dán file vào
- Sao chép file “freeglut.dll” từ thư mục đã tải xuống “freeglut > bin”
- Đi đến đường dẫn This PC > C: (ổ C) > Windows > SysWOW64 và dán file vào
5. Mở Code::Blocks
- Chọn File > New > Project > GLUT project > Next
- Đặt tên cho project và chọn Next
- Chọn đường dẫn của GLUT: This PC > C: (ổ C) > Program Files(x86) > CodeBlocks > MinGW
- Nhấn OK > Next > Finish
Bây giờ, Code::Blocks đã sẵn sàng để kiểm tra chương trình OpenGL.
Kiểm tra hoạt động OpenGL
Để minh họa việc hoạt động của OpenGL, chúng ta sẽ thêm vào một chương trình đơn giản vẽ một hình tròn bằng ngôn ngữ lập trình C và sử dụng công nghệ OpenGL.
// Chương trình C để vẽ hình tròn bằng OpenGL #include<stdio.h> #include<GL/glut.h> #include<math.h> #define pi 3.142857 // Function để khởi tạo void myInit (void) { // Đặt màu nền là màu đen, // với các giá trị RGB lần lượt là 0.0, 0.0, 0.0 glClearColor(0.0, 0.0, 0.0, 1.0); // Đặt màu vẽ hình là màu xanh lá cây (trong chế độ RGB), với giá trị màu trong khoảng từ 0.0 đến 1.0 glColor3f(0.0, 1.0, 0.0); // Đặt kích cỡ của đường biên hình là 1 điểm ảnh glPointSize(1.0); // Đặt chế độ ma trận chiếu glMatrixMode(GL_PROJECTION); glLoadIdentity(); // Đặt kích thước của cửa sổ trong chiều X và Y gluOrtho2D(-780, 780, -420, 420); } // Hàm để hiển thị void display (void) { // Xóa bộ đệm màu glClear(GL_COLOR_BUFFER_BIT); // Bắt đầu vẽ điểm ảnh glBegin(GL_POINTS); float x, y, i; // Lặp lại tới khi đạt đến 2*pi, tương ứng với 360 độ, với sự tăng nhỏ trong góc là 0.001 for (i = 0; i < (2 * pi); i += 0.001) { // Cho bán kính hình tròn là 200 và điều này cũng nghĩa là // hình tròn được định nghĩa theo lưu đồ sau: (x, y) = (r*cos(i), r*sin(i)) x = 200 * cos(i); y = 200 * sin(i); glVertex2i(x, y); } glEnd(); glFlush(); } int main (int argc, char** argv) GLUT_RGB); // Đặt kích thước của cửa sổ trong chiều X và Y glutInitWindowSize(1366, 768); // Đặt vị trí của cửa sổ hiển thị trên màn hình glutInitWindowPosition(0, 0); // Đặt tên cho cửa sổ glutCreateWindow("Circle Drawing"); // Gọi hàm khởi tạo myInit() myInit(); // Gọi hàm hiển thị glutDisplayFunc(display); // Vòng lặp chính để giữ cửa sổ hiển thị cho đến khi người dùng đóng cửa sổ glutMainLoop();
Để biên dịch chương trình trên Ubuntu, bạn có thể sử dụng lệnh:
gcc tên_tập_tin.c -lGL -lGLU -lglut -lm
nơi tên_tập_tin.c là tên tập tin lưu trữ chương trình.
Kết quả của chương trình trên sẽ được hiển thị như trong ảnh chụp màn hình dưới đây:

Xem thêm:
- Hiển thị kích thước tự nhiên cho hình vẽ trong Corel
- Sự khác biệt về hồ sơ màu sắc của hình ảnh
- Dễ dàng chuyển đổi từ ảnh 2D sang 3D