OpenGL là gì? OpenGL có tác dụng gì?

OpenGL là gì?

Theo khái niệm tin học, OpenGL (Open Graphics Library) là một tiêu chuẩn kỹ thuật đồ họa được hình thành với mục tiêu định ra một giao diện lập trình ứng dụng (API) theo không gian 3D. Trước lúc OpenGL xuất hiện, bất kì doanh nghiệp nào muốn phát triển một ứng dụng đồ họa thường phải viết lại phần đồ họa của nó cho phù hơp với mỗi nền tảng hệ điều hành cũng như phần cứng đồ họa. Với OpenGL, một ứng dụng có thể tạo ra các hiệu ứng tương tự trong bất kỳ hệ điều hành nào sử dụng các bộ điều hợp đồ họa của OpenGL. Nói cách khác, OpenGL giống như một tiếng nói đồ họa độc lập và có khả năng tương thích với mọi nền tảng, mọi kiểu máy tính, thậm chí là cả trên những máy tính không tương trợ đồ họa thời thượng.

OpenGL chỉ định một tập hợp các “lệnh” hoặc các hàm phải được thực thi ngay tức tốc. Trong số đó mỗi lệnh phụ trách một hành động vẽ hoặc tạo ra các hiệu ứng đặc biệt quan trọng nào đó. Một list các lệnh như vậy có thể được tạo ra để tạo các hiệu ứng lặp đi tái diễn OpenGL độc lập với những đặc tính của mỗi hệ điều hành, nhưng cung cấp các quy trình “glue” đặc biệt quan trọng cho từng hệ điều hành, điều này được chấp nhận OpenGL hoạt động được trong môi trường xung quanh của mạng lưới hệ thống đó.

Sơ đồ OpenGL

OpenGL chứa đựng một số lượng lớn các tính năng tích hợp được chỉ định và yêu cầu thông qua API, gồm có loại bỏ mặt phẳng ẩn, trộn alpha, chống hiệu ứng răng cưa, làm mịn, tính toán px, theo dõi và chuyển đổi các mô hình, và các hiệu ứng về không khí (sương mù, khói và khói mù).

Silicon Graphics, nhà sinh sản máy trạm đồ họa tiền tiến thế giới, là đơn vị đi tiền phong trong việc phát triển OpenGL. Theo sau là các doanh nghiệp khác trong Architecture Review Board gồm có DEC, Intel, IBM, Microsoft và Sun Microsystems. Không tốn bất kì ngân sách nào (ngoài việc học) cho việc phát triển một ứng dụng sử dụng API OpenGL. Ngoài ra Microsoft cung cấp các thư viện OpenGL được chấp nhận người dùng tải miễn phí trên các mạng lưới hệ thống Windows của hãng sản xuất.

Tác dụng của OpenGL

Tóm lại, OpenGL được thiết kế nhằm thỏa mãn 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 bằng một giao diện lập trình thống nhất.

– Tương trợ tối đa các chức năng của giao diện OpenGL bằng phương pháp ép buộc các phần cứng 3D khác nhau phải tương thích. Ngay cả những lúc không thể ép phần cứng tương trợ hoàn toàn, OpenGL có thể yêu cầu mạng lưới hệ thống sử dụng thêm sức mạnh phần mềm để xử lý.

– Tiêu chuẩn OpenGL nhận thêm những nguyên hàm hình học như điểm, đường thẳng và đa giác rồi chuyển thành những điểm đồ họa (px) trên màn hình hiển thị. Quá trình này được thực hiện thông qua luồng ống dẫn đồ họa (thuật ngữ graphics pipeline). Một tên gọi khác của OpenGL cũng được giới kỹ thuật san sẻ đó là cỗ máy trạng thái OpenGL.

Cách thiết lập cấu hình OpenGL

Thiết lập OpenGL trên Ubuntu

Để thiết lập cấu hình OpenGL trên Ubuntu, chỉ việc thực thi lệnh sau (giống như thiết lập cấu hình bất kỳ thứ nào khác) trong Terminal:

sudo apt-get install freeglut3-dev

Để thao tác làm việc trên hệ điều hành Ubuntu:

gcc filename.c -lGL -lGLU -lglut where filename.c is the name of the file with which this program is saved.

Thiết lập OpenGL trên Windows trong Code::Blocks

1. Tải xuống code block và thiết lập cấu hình nó.

2. Truy cập liên kết này và tải xuống file Zip từ liên kết tải xuống xuất hiện sau gói Freeglut MinGW, mang tên liên kết là Tải về freeglut 3.0.0 for MinGW và giải nén nó.

3. Mở Notepad với quyền admin và mở file từ:

  • This PC > C: (ổ C) > Program Files(x86) > CodeBlocks > share > CodeBlocks > templates, sau đó nhấp vào All Files để hiển thị tất cả file.
  • Tiếp theo, mở glut.cbp và tìm kiếm tất cả glut32 và thay thế bằng freeglut.
  • Sau đó, mở This PC > C: (ổ C) > Program Files(x86) > CodeBlocks > share > CodeBlocks > Templates > Wizard > glut, sau đó nhấp vào All Files để hiển thị tất cả những file.
  • Mở wizard.script và tại đây, cũng thay thế tất cả glut32 bằng freeglut.

4. Sau đó, chuyển đến thư mục freeglut (nơi nó đã được tải xuống) và:

  • Include > GL, rồi sao chép tất cả 4 file từ đó
  • Đi tới This PC > C: (ổ C) > Program Files (x86) > CodeBlocks > MinGW > include > GL và dán nó vào.
  • Sau đó, từ thư mục tải xuống freeglut > lib, sao chép 2 file và đi tới This PC > C: (ổ C) > Program Files (x86) > CodeBlocks > MinGW > lib và dán nó.
  • Một lần nữa, vào thư mục đã tải xuống freeglut > bin và sao chép file (freeglut.dll) từ đây và đi tới This PC > C: (ổ C) > Windows > SysWOW64 và dán file này.

5. Thời điểm hiện nay hãy mở Code::Blocks.

  • Chọn File > New > Project > GLUT project > Next.
  • Đặt tiêu đề cho project rồi chọn Next.
  • Để chọn vị trí của GLUT: This PC > C: (ổ C) > Program Files(x86) > CodeBlocks > MinGW.
  • Nhấn OK > Next > Finish.

Thời điểm hiện nay, Code::Blocks đã sẵn sàng để kiểm tra OpenGL File.

Kiểm tra hoạt động với OpenGL

Để cho thấy OpenGL hoạt động ra sao, một lớp học vẽ hình tròn đơn giản được thêm vào trong C bằng phương pháp sử dụng nền tảng OpenGL.

// C program to demonstrate // drawing a circle using // OpenGL #includevàlt;stdio.hvàgt; #includevàlt;GL/glut.hvàgt; #includevàlt;math.hvàgt; #define pi 3.142857 // function to initialize void myInit (void) { // making background color black as first // 3 arguments all are 0.0 glClearColor(0.0, 0.0, 0.0, 1.0); // making picture color green (in RGB mode), as middle argument is 1.0 glColor3f(0.0, 1.0, 0.0); // breadth of picture boundary is 1 px glPointSize(1.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); // setting window dimension in X- and Y- direction gluOrtho2D(-780, 780, -420, 420); } void display (void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); float x, y, i; // iterate y up to 2*pi, i.e., 360 degree // with small increment in angle as // glVertex2i just draws a point on specified co-ordinate for ( i = 0; i < (2 * pi); i += 0.001) { // let 200 is radius of circle and as, // circle is defined as x=r*cos(i) and y=r*sin(i) x = 200 * cos(i); y = 200 * sin(i); glVertex2i(x, y); } glEnd(); glFlush(); } int main (int argc, char** argv) GLUT_RGB); // giving window size in X- and Y- direction glutInitWindowSize(1366, 768); glutInitWindowPosition(0, 0); // Giving name to window glutCreateWindow(“Circle Drawing”); myInit(); glutDisplayFunc(display); glutMainLoop();

Biên dịch lớp học trên trong Ubuntu:

gcc filename.c -lGL -lGLU -lglut -lm where filename.c is the name of the file with which this program is saved.

Đầu ra của lớp học trên được hiển thị trong ảnh chụp màn hình hiển thị phía bên dưới:

Đầu ra của chương trình mẫu
Đầu ra của lớp học mẫu

Xem thêm:

  • Hiển thị kích thước thật cho hình vẽ trong Corel
  • Sự khác biệt về chính sách Color Profile của những tấm hình
  • Chuyển đổi dễ dàng từ ảnh 2D sang 3D

You May Also Like

About the Author: v1000