CHƯƠNG VI: HỆ THỐNG DIỄN HOẠT 6.1 Giới thiệu về hệ thống diễn hoạt
6.5. Xửlý dữliệu tập tin md
Mục đích
Sau khi đê tìm hiểu cấu trúc của tập tin md5 ta cần phải đọc vă xử lý được dữ liệu trong tập tin để có thể sử dụng trong chương trình.
Câch giải quyết
Trước hết ta phải xđy dựng nín câc cấu trúc dữ liệu lưu trữ dữ liệu đủ tổng quât để khi cầc ta có thể thay đổi được định dạng tập tin lưu trữ mă khhông ảnh hưởng đến logic chương trình. Câc dữ liệu 3D đặc trưng cần phải nạp từ tập tin md5 phải tổ chức thănh câc dữ liệu cấu trúc:
Câc dữ liệu về khốp: chỉ số , tín, chỉ số khớp cha, tín khớp cha, vector chỉ vị trí ban đầu, quaternion xâc định góc quay ban đầu.
Dữ liệu về câc mặt: gồm chỉ số của 3 đỉnh hình thănh nín một mặt. Dữ liệ về trọng số: chỉ số của khớp vă trọng số tương ứng.
Dữ liệu cho câc khung hình: bao gồm vector vă quaternion cho mỗi khung hình.
Sữ liệu diễn hoạt: khớp hiện tại, khớp cha, danh sâch khung hình diễn hoạt, khung hình cơ sở, thuộc tính md5 của khớp (nhằm xâc định sự thay đổi dữ liệu câc khung hình so với khung hình cơ sở).
Việc lưu lại thông tin nạp từ tập tin một câch tinh tế, hiệu quả còn giúp cho ta tiết kiệm bộ nhớ rất lớn. Giả sử như ta có hai con quâi vật giống hệt nhau cùng xuất hiện trong măn Game thì hai con quâi vật năy phải cùng truy xuất đến một dữ liệu đê nạp. Có nghĩa lă nếu dữ liệu cho con quâi vật đê nạp từ trước thì ta không cần nạp nữa mă chỉ truy xuấy đến sữ liệu dùng chung đê nạp mă thôi. Nếu ta không chú ý đến vấn đề năy thì sẽ gđy lêng phí rất lớn về bộ nhớ vă thời gian nạp sữ liệu. Để giải quyết thì ta chỉ thực hiện nạnp dữ liệu một lần (văo lần đầu tiín yíu cầu dữ liệu), khi cần dùng ta dùng câc con trỏ chỉ đến dữ liệu vă xử lý. Ta không được thay đổi câc dữ liệu gốc nạp từ tập tin để đảm bảo không ảnh hưởng đến câc đối tượng dang sử dụng chung dữ liệu.
Việc đọc sữ liệu sẽ được đọc theo trình tự bố trí dữ liệu trong tập tin md5 với sự hỗ trợ của một công cụ cho phĩp ta phđn tích tập tin để tìm thông tin chính xâc vă nhanh.