Có một số yếu tố góp phần vào cách lưu và xử lý hình học trong các phương tiện khác nhau (chương trình, định dạng tệp, API). Tôi đã thực hiện một số chương trình phân tích hình học thương mại, vì vậy tôi có một số kinh nghiệm với nó.
Đầu tiên tôi chắc chắn điều này không liên quan gì đến Unity đơn giản hóa mọi thứ. Nhưng trong trường hợp nó đã có một số thuật toán decimation có thể được thực hiện nhưng tôi chắc chắn không phải vậy, vì một công cụ trò chơi không cần phải thay đổi hình dạng (tính chất hình học của lưới) nhưng thường có thể sửa đổi kết nối của nó để phù hợp với cấu trúc tối ưu của mình.
Một số yếu tố này là:
Điều gì làm cho một đỉnh độc đáo?
Điều này có thể thay đổi rất nhiều tùy thuộc vào cách chương trình, api hoặc định dạng tệp xử lý với một đỉnh. Một đỉnh có thể là duy nhất nếu nó có một vị trí duy nhất, nhưng trong các trường hợp khác, nó là duy nhất nếu nó có bất kỳ thuộc tính duy nhất nào. Ví dụ: nếu hai đỉnh chia sẻ cùng một vị trí, nhưng có các quy tắc khác nhau thì chúng sẽ được "nhân đôi" trong trường hợp OpenGL, điều này đặc biệt rõ ràng trong trường hợp khối bạn đã đề cập.
Cạnh cứng và mịn.
Các tiêu chuẩn có thể ra lệnh nếu một cạnh được coi là cứng hoặc mịn, nếu một đỉnh đóng góp vào cạnh cứng, thì nó cần phải được nhân đôi để các API kết xuất hiện tại có thể hiểu cách hiển thị (tô bóng) khuôn mặt này một cách chính xác.
Chỉ số
Nhiều định dạng tệp cho phép một đỉnh mặt có một số chỉ mục cho vị trí đỉnh / texCoords / quy tắc, đây không phải là trường hợp của API kết xuất hiện tại. Một ví dụ điển hình của việc này là tệp Obj, điều này sẽ buộc Unity xây dựng lại các chỉ mục và thường sao chép nhiều thuộc tính để khớp với các chỉ mục đỉnh.
Kết nối
Rất nhiều đỉnh thực sự được kết nối và là duy nhất được lưu nhiều lần, điều này phải thực hiện cách trình soạn thảo tệp gốc xử lý và lưu lưới. Unity sẽ giảm số lượng đỉnh trùng lặp (hãy nhớ nếu nó có thuộc tính khác thì nó không phải là duy nhất) để làm cho nó hiệu quả hơn cho việc lưu trữ và xử lý mà không làm giảm chất lượng.
Điều này cũng liên quan đến việc có bao nhiêu cạnh đa giác mà tệp gốc cho phép, ví dụ Obj cho phép đa giác phía N, điều mà bất kỳ công cụ trò chơi lành mạnh nào cũng không muốn, vì vậy, nó kết thúc việc tam giác lưới và tính toán lại nhiều thuộc tính thường gặp thay đổi số đỉnh.