Trước hết chúng ta cần biết một số thuật ngữ cơ bản về đồ họa trước khi tìm hiểu về một game engine.

Chúng ta chắc hẳn đã từng nghe qua về OpenGL và Direct3D. Đây đều là hai giao diện lập trình ứng dụng đồ họa được sử dụng để tạo ra các hình ảnh trong các ứng dụng. Trong phạm vi các bài viết này, chúng tôi chỉ xin đề cập đến OpenGL mà không đề cập đến Direct3D.

1/OpenGL.

OpenGL được phát triển bởi Silicon Graphic Inc., là một giao diện phần mềm hướng thủ tục theo chuẩn công nghiệp, hỗ trợ đồ họa 3 chiều. OpenGL cung cấp cho chúng ta khoảng 150 hàm để vẽ bất cứ thứ gì mà chúng ta mong muốn. Với OpenGL, chúng ta có thể tạo ra các hình khối, các ảnh trong không gian 2 chiều (2D) cũng như không gian 3 chiều (3D) với chất lượng cao. OpenGL là một giao diện độc lập với phần cứng (hardware-independent) nên nó có thể được sử dụng trên nhiều nền tảng khác nhau. Nó là lớp trung gian giữa người dùng và phần cứng, nghĩa là nó giao tiếp trực tiếp với driver của thiết bị đồ họa.

Các phiên bản của OpenGL:

OpenGL 1.x: 1.0==>1.1==>1.2.1==>1.3==>1.4==>1.5

OpenGL 2.x: 2.0==>2.1

OpenGL 3.x: 3.0==>3.1==>3.2==>3.3

OpenGL 4.x: 4.0==>4.1

Từ phiên bản OpenGL 1.0 đến OpenGL 2.0 đã có sự thay đổi lớn bằng việc ra đời của OpenGL Shading Language (GLSL). Nó cho phép người lập trình đơn giản hơn trong việc tạo ra các hình ảnh bằng cách sử dụng các shader. Shader là các đoạn mã được viết bằng ngôn ngữ C dùng để dựng hình và tạo hiệu ứng cho các vật thể. Shader có 3 loại;

– Vertex Shader: dùng để vẽ các đỉnh, chuyển tọa độ các đỉnh của vật thể từ không giao ảo 3D sang tọa độ 2D để hiển thị lên màn hình. Vertex shader có thể quản lý tọa độ các điểm, màu & kết cấu của chúng, nhưng không thể tạo ra các đỉnh mới.

-Geometry Shader: Chỉ xuất hiện từ OpenGL 3.2. Khác với vertex shader, Geometry Shader cod khả năng tạo các điểm, các đoạn thẳng hoặc các hình mới.

-Pixel Shader: hay còn gọi là Fragment Shader: có nhiệm vụ tính toán màu sắc và các thuộc tính khác của từng pixel dựa trên giá trị ánh sáng tại điểm đó.

2/OpenGL ES:

OpenGL for Embedded Systems (OpenGL ES) là một bộ phận của OpenGL được thiết kế dành riêng cho các hệ thống nhúng như: điện thoại, máy chơi game, máy tính bảng…

Các phiên bản của OpenGL ES:

Giống như OpenGL, OpenGL ES cũng có các phiên bản 1.0, 1.1, 2.0 và 3.0. Và cũng từ phiên bản 2.0, OpenGL ES hỗ trợ shader cho việc đổ bóng và tạo hình vật thể. OpenGL ES 2.0 không tương thích với OpenGL ES 1.1. Do đó, một ứng dụng nếu viết dựa trên OpenGL ES 2.0 sẽ không thể chạy được trên các thiết bị chỉ hỗ trợ OpenGL ES 1.1

3/ Một số thuật ngữ khác trong đồ họa máy tính:

– Geometry: cấu trúc hình học của một vật thể, bao gồm các điểm, tọa độ các điểm, các đường thẳng, các mặt phẳng để tạo nên vật thể đó.

– Texture: kết cấu: là lớp vỏ ngoài của vật thể. Vật thể sau khi được tạo hình cần có màu sắc của từng điểm, việc gán texture cho vật thể giống như việc chúng ta phủ lên vật thể một lớp sơn để vật thể có màu sắc nhất định

– Lighting: ánh sáng. Một vật thể muốn được nhìn thấy phải cần một nguồn sáng chiếu vào nó. Nguồn sáng này có thể là luồng sáng đồng nhất tại mọi điểm hoặc có cường độ khác nhau tùy thuộc tọa độ của điểm trong không gian

– Shading: dựng bóng. Ánh sáng sau khi chiếu vào vật thể sẽ tạo ra bóng, làm thay đổi màu sắc vật thể hoặc ảnh hưởng đến các tọa độ khác. Dựa trên nguồn sáng, cường độ ánh sáng, phương chiếu của ánh sáng sẽ tính toán ra bóng của vật thể.

– Render: là quá trình tạo ra hình ảnh dựa trên mô hình vật thể, cùng với việc tính toán và kết hợp tất cả các thành phần như Lighting, shading, texture để tạo ra một khung cảnh bằng máy tính.

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>