Cấu trúc của Nwfc Engine

Một phần của tài liệu nghiên cứu và xây dựng thử nghiệm 3G Engine (Trang 45 - 48)

Engine là một tập các thành phần, mỗi thành phần thể hiện 1 chức năng riêng biệt. Một số chức năng chỉ sử dụng cục bộ nhưng hầu hết các chức năng được kết xuất (export) cho ứng dụng đầu cuối dưới dạng giao diện (interface).

Hình 3-2 Mô hình các thành phần của Nwfc Engine 3.4.1. Các thành phần trong Nwfc module

Mesh. Thành phần đảm nhận chức năng lưu trữ dữ liệu 3 chiều mà chủ yếu là đỉnh (vertex) và chỉ số (index).

MeshBuilder. Có vai trò hỗ trợ lập trình viên, giúp họ có thể sửa đổi hay thao tác trên dữ liệu 3D được chứa trong Mesh một cách nhanh và thuận tiện nhất.

Texture. Là thành phần xử lý các ảnh bề mặt texture. Các texture là các tài nguyên chia xẻ (shared resource) và được quản lý nội bộ trong Engine bởi số đếm tham chiếu (reference count).

TextureManager. Hệ thống các texture được quản lý nội bộ trong Engine bởi TextureManager, thành phần này sẽđảm bảo các texture có cùng tên và đường dẫn sẽ tham chiếu đến cùng 1 đối tượng trong bộ nhớ giúp tiết kiệm rất nhiều bộ nhớ đối với các ứng dụng lớn. Các hệ thống manager và cơ chế chia xẻ tài nguyên bằng sốđếm tham chiếu được sử dụng rất phổ biến trong Engine.

Material. Đây là trái tim đồ họa của toàn bộ Engine. Thành phần này đảm nhận mọi chức năng về chất liệu hiển thị trên bề mặt 3D như độ bóng, vân bề mặt, độ phản chiếu, độ khúc xạ… Nói chung mọi vật thểđều có chất liệu của nó, gỗ thì có chất liệu gỗ, sắt thì có chất liệu kim loại. Mọi tính chất về chất liệu như thế sẽ được quản lý bởi thành phần này. Cũng giống như texture, material cũng là sử dụng reference count để quản lý chia xẻ tài nguyên.

RenderSystem. Đây không phải là 1 thành phần mà là 1 hệ thống. Hệ thống này sẽđảm nhận quản lý toàn bộ chức năng đồ họa của toàn bộ Engine. Mọi hành động mà ứng dụng đầu cuối muốn triển khai về mặt đồ họa đều phải thông qua hệ thống này. Hệ thống này còn đảm nhận luôn chức năng quản lý cho các material.

RenderAPI. Đây là thành phần đóng vai trò giao tiếp với phần cứng và với các thư viện đồ họa cấp thấp giúp thực hiện các chức năng trên phần cứng. Thành phần này sẽ được hiện thực hóa trên các 3D API cụ thể (như Direct3D hay OpenGL).

Shader. Giúp quản lý và tích hợp các thông tin cần thiết khi dựng hình như các trạng thái của phần cứng, Vertex Shader, Pixel Shader… Shader được sử dụng trong material và hoàn toàn có thểđược chia xẻ giữa các material khác nhau.

FileSystem. Hệ thống quản lý truy xuất và tìm kiếm tập tin. Mọi thành phần khác muốn thao tác trên tập tin đều phải thông qua thành phần này. Ta phải sử dụng 1 hệ thống tập tin duy nhất cho mọi thành phần vì sự phụ thuộc vào các thư viện tập tin được sử dụng như (StandardFileIO hay Win32FileIO). Ngoài ra sự quản lý tập

trung còn giúp ta triển khai các hình thức lưu trữ khác nhau (như lưu trữ trong tập tin zip chẳng hạn).

Parameter files. Đây là thành phần hỗ trợ định dạng tập tin Parameter của Engine. Định dạng tập tin Parameter sẽ được trình bày ở phần sau. Tập tin Parameter được sử dụng rất phổ biến trong cũng như ngoài Engine. Nó giúp định nghĩa cấu trúc tập tin material... và được dùng rất nhiều cho Game demo.

Math. Thư viện toán dùng cho 3D, hỗ trợ vector 2..4 chiều, quaternion, ma trận 4x4, color, mặt phẳng.

NwfcUtil. Hỗ trợ ứng dụng đầu cuối có thể truy xuất các thành phần trong Engine.

Một phần của tài liệu nghiên cứu và xây dựng thử nghiệm 3G Engine (Trang 45 - 48)