Vì vậy, tôi đang viết một trình phân tích cú pháp cho các tệp mô hình obj dạng sóng và có một số bất thường mà tôi không chắc chắn về cách xử lý.Định dạng OBJ dạng sóng -> Nhóm & lệnh usemtl
Vì vậy, dựa tắt của đọc sách của tôi, một lưới có thể được chia nhỏ thành các nhóm bằng cách sử dụng lệnh 'g' và một loại vật liệu có thể được gán cho mỗi nhóm sử dụng lệnh 'usemtl'
Vì vậy, một tập lý tưởng sẽ trông như thế này:
g group1
usemtl material1
//vertices
//UV coords
//faces
g group2
usemtl material2
//vertices
//UV coords
//faces
etc....
Tuy nhiên trong một số file obj tôi đã tải về (từ những nơi như Turbosquid), tôi đã nhìn thấy một nhóm duy nhất chứa nhiều "usemtl" như thế này:
g group1
usemtl material1
//vertices, faces, etc
usemtl material2
//vertices, faces, etc
g group2
usematerial material3
//vertices, faces, etc
Vì vậy, nếu có thể có nhiều tài liệu cho mỗi nhóm thì điểm của nhóm là gì?
Những tệp này được coi là "không chuẩn" hay bị hỏng?
Thay vào đó, tôi có nên nhóm các khuôn mặt dựa trên tài liệu được chia sẻ thay vì nhóm được chia sẻ không?
Có nhiều tài liệu cho mỗi nhóm sẽ làm phức tạp nhiều mã của tôi (ví dụ: giả sử tôi phải tạo một nhóm N mẫu ngẫu nhiên trên một nhóm hình tam giác/khuôn mặt với một tài liệu nhất định. Tôi chỉ có thể tra cứu các hình tam giác trong nhóm đó và tạo ra các mẫu, nhưng nếu nhóm đó chứa một số hình tam giác với vật liệu chính xác và một số không có, tôi sẽ phải kiểm tra vật liệu lạ trên đầu nhóm kiểm tra Đây chỉ là một ví dụ - có những trường hợp khác cũng trở thành vấn đề)
làm cho nó giống như mã giải thích hơn – Gahan