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

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 đó.

Có Thể Bạn Quan Tâm :   Từ ghép là gì? Cách để bạn nhận biết từ ghép

Sơ đồ OpenGL

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.

– 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:

Có Thể Bạn Quan Tâm :   VUCA Là Gì? Lời Khuyên Cho Giới Trẻ Trong Thời Đại VUCA

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”

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:

Có Thể Bạn Quan Tâm :   Hướng Dẫn Về Lightning Network Của Bitcoin Cho Người Mới Bắt Đầu

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:

Kết quả của chương trình mẫu
Kết quả của chương trình mẫu

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

You May Also Like

About the Author: admin