Có một đặc điểm kỹ thuật tiêu chuẩn cho đại diện đồ họa 3D?


12

Tôi đang đọc một cuốn sách về đồ họa máy tính và tại một số điểm, nó hiển thị mô hình 3D, được tạo từ tệp .dat.

Dưới đây là một vài quy tắc cho việc tạo tệp .dat:

  • Tạo một danh sách các vị trí / mặt đỉnh
  • Viết ngược chiều kim đồng hồ
  • Khuôn mặt kết thúc bằng một dấu chấm (.)
  • Phân số cũng được chấp nhận

Tôi muốn biết nếu đây là tiêu chuẩn, và nếu không, cách xác định tiêu chuẩn của một đối tượng 3D là gì.

Ngoài ra, nếu có một đặc điểm kỹ thuật, ai đã xác định nó và tìm nó ở đâu?

Câu trả lời:


8

Khi nói về các định dạng tệp, chúng ta đang nói về việc lưu giữ một số dữ liệu liên quan đến mô hình / hình học 3D. Không có tiêu chuẩn chung về định dạng tệp cho hình học 3D bền bỉ. Chỉ có một vài định dạng chiếm ưu thế hơn những định dạng khác.

Giống như với các định dạng tệp hình ảnh, PNG và JPEG là các định dạng phổ biến nhất hiện nay, nhưng không có thỏa thuận chung giữa các ứng dụng về việc sử dụng cái này hay cái kia. Mỗi ứng dụng sử dụng phù hợp nhất cho mục đích của nó.

Điều tương tự cũng xảy ra với các định dạng tệp lưu trữ dữ liệu 3D. Mỗi phần mềm mô hình 3D thường sẽ có một hoặc một bộ định dạng ưa thích. Hầu hết thực sự xác định các định dạng tùy chỉnh chỉ hoạt động với phiên bản cụ thể của công cụ. Điều này có thể xảy ra vì nhiều lý do, từ đơn giản hóa hoạt động bên trong của ứng dụng hoặc làm cho việc tải tệp nhanh hơn, để ràng buộc người dùng với một công cụ nhất định có chủ đích.

.datĐịnh dạng này bạn mô tả là một định dạng tùy chỉnh được tạo bởi các tác giả của cuốn sách, có lẽ được thiết kế với ý tưởng đơn giản. Nó dường như là một tệp văn bản tương tự định dạng OBJ của Wavefront , đây là định dạng rất phổ biến để lưu trữ hình học tĩnh, mặc dù hiện tại đã hơi lỗi thời. Người ta có thể nói rằng .OBJđịnh dạng là định dạng .BMPmô hình 3D.

Các định dạng mô hình 3D phổ biến khác bao gồm:

  • Các Collada định dạng.

  • Các 3DS định dạng.

  • Các LỚP định dạng.

Và nhiều người khác. Giải thích chung hơn ở đây .

Cũng lưu ý rằng lúc đầu tôi đã nói rằng đây là các định dạng để lưu trữ / duy trì mô hình 3D hoặc hình học trên bộ lưu trữ ngoại tuyến. Điều đó không có nghĩa (và thường thì không phải vậy) rằng các ứng dụng sử dụng chúng sẽ lưu trữ dữ liệu bên trong bộ nhớ bằng cách sử dụng cùng bố cục với tệp. Thông thường, loại dữ liệu này sẽ trải qua rất nhiều quá trình xử lý sau khi được tải từ một tệp cho đến khi, ví dụ, nó được hiển thị trên màn hình.


1
"Thông thường, loại dữ liệu này sẽ trải qua quá trình xử lý sau khi được tải từ một tệp cho đến khi, ví dụ, nó được hiển thị trên màn hình." giống như một hình ảnh được chuyển thành một mảng pixel trước khi được đẩy lên màn hình bất kể định dạng ban đầu là gì. (mặc dù nén phần cứng)
ratchet freak

@ratchetfreak nhưng không phải tất cả việc sử dụng định dạng 3D đều xuất hiện trên màn hình.
joojaa

BMP, là một định dạng nhị phân, không phải là một đối tác tốt với OBJ. Một kết hợp tốt hơn sẽ là XPM , là văn bản.
Ruslan

5

Không có định dạng tiêu chuẩn cho các mô hình 3D. Một số câu hỏi phổ biến được liệt kê trong câu trả lời của glampert, có thể tìm thấy nhiều hơn trong câu trả lời SE này .

Nếu bạn đang thiết kế định dạng của riêng bạn cho mục đích riêng của bạn, (thực tế là một việc khá phổ biến), đó là bước đầu tiên tốt để xem cách bạn đang sử dụng dữ liệu mô hình của mình. Ví dụ: nếu bạn tập trung vào kết xuất, bạn có thể sử dụng định dạng mà thư viện đồ họa mong đợi. Nếu bạn muốn giảm thời gian tải phần mềm của mình càng nhiều càng tốt thì việc giảm số lượng phân tích cú pháp và xử lý bạn phải làm có thể giúp ích. Một tiện ích đơn giản có thể xuất ra một tệp theo định dạng mà công cụ của bạn mong đợi sẽ có nghĩa là bạn có thể chỉ cần ánh xạ tệp vào bộ nhớ và sau đó chuyển một con trỏ vào thư viện đồ họa của bạn.

Mặt khác, nếu kết xuất không phải là mối quan tâm chính của bạn và việc chỉnh sửa là quan trọng hơn đối với bạn, bạn có thể xem xét một định dạng dễ chỉnh sửa hơn, chẳng hạn như cạnh có cánh . Sử dụng định dạng mô hình mục đích chung có thể phù hợp với mục đích của bạn khi bắt đầu dự án, nhưng cuối cùng, có nhiều điều bạn có thể làm với mô hình 3D và mỗi định dạng đều có những lợi ích và nhược điểm riêng, vì vậy bạn có thể chọn cách phù hợp nhất với mình .


4

Không có một tiêu chuẩn duy nhất xác định việc lưu trữ các mô hình 3D. API đồ họa chỉ quan tâm đến các hình tam giác, được xác định bởi các đỉnh và chỉ số cho biết các đỉnh tạo thành một tam giác.

Nhiều công ty đã tạo ra các định dạng mô hình của riêng họ với các tính năng và mục tiêu khác nhau. Một trong những cách đơn giản nhất là định dạng .obj (Wavefront Object). Trong đó chứa danh sách các vị trí đỉnh, quy tắc và tọa độ kết cấu và một danh sách các chỉ số tạo nên các hình tam giác. Nó cũng chứa các vật liệu, với một số tính chất cơ bản như kết cấu, màu sắc khuếch tán và đặc trưng.

Các định dạng mô hình nâng cao hơn, chẳng hạn như .fbx (FilmBox) được Autodesk sử dụng chứa thông tin bổ sung theo yêu cầu của phần mềm mô hình. Chúng có thể bao gồm xương, hệ thống phân cấp và thậm chí nhiều thuộc tính đỉnh được sử dụng để lột da, v.v. Vì vậy, có "tiêu chuẩn", nhưng chúng không thực sự thống nhất vì mỗi chương trình có thể yêu cầu thông tin khác nhau. Nhưng wavefront là một lựa chọn rất tốt, bởi vì nhiều ứng dụng mô hình hóa có thể xuất sang nó và thật dễ dàng để viết (tìm) một nhà nhập khẩu.


3

Như các câu trả lời khác đã đề cập, có nhiều định dạng cạnh tranh để lưu trữ dữ liệu 3D.

Tuy nhiên, một định dạng cụ thể đã xuất hiện kể từ khi câu hỏi này được hỏi, có nhiều đặc điểm bạn mong đợi từ một "tiêu chuẩn": định dạng glTF .


glTF là một tiêu chuẩn 3D được xuất bản bởi Khronos Group (tổ chức đứng sau OpenGL và Vulkan), nhằm mục đích bù đắp những sai sót trong Collada.

Ưu điểm chính của nó là:

  • Nó dựa trên JSON, giúp dễ dàng phân tích, tuần tự hóa, đọc và gửi qua mạng.

  • Có rất ít sự mơ hồ hoặc dư thừa trong tiêu chuẩn (mặc dù có một số *). Các đơn vị, bàn tay, dấu hiệu tọa độ kết cấu, vv đều được tiêu chuẩn hóa; tất cả mọi thứ luôn dựa trên chỉ mục, có nghĩa là không có dự phòng dữ liệu. Điều này làm cho nó thực sự dễ dàng để viết một nhà nhập khẩu.

  • Các tài liệu rất sạch sẽ và đầy đủ.

  • Bố cục của dữ liệu dựa trên quy trình công việc OpenGL / WebGL, có nghĩa là các mô hình đã nhập có thể được sử dụng làm dữ liệu trong động cơ với ít hệ thống ống nước.

  • Tiêu chuẩn là Nguồn mở và đặc tả được lưu trữ trên Github. Điều đó có nghĩa là tiêu chuẩn sẽ luôn có sẵn, có thể sử dụng miễn phí và quá trình phát triển được hiển thị cho mọi người. Do sự phản đối, tương lai của các tiêu chuẩn nguồn đóng được quyết định bởi lợi ích cá nhân, vốn đã nguy hiểm.

  • glTF được hỗ trợ bởi nhiều người khổng lồ trong ngành thông qua Khronos (Adobe, Google, Microsoft, Mozilla, Unity); nó có thể được xuất bởi Blender (xuất từ ​​Maya vẫn chưa được hỗ trợ chính thức) và được nhập bởi Unreal, Unity và Godot.

Xem thêm:

* Tôi khá chắc chắn rằng các tiếp tuyến biến đổi là vô nghĩa.


2

Để thêm vào các câu trả lời khác, thực tế có hai loại định dạng, trung gian và thời gian chạy. Các định dạng trung gian (ví dụ: COLLADA) dài hơn / chậm hơn và được chuyển đổi giữa các công cụ cuối cùng thành định dạng thời gian chạy tùy chỉnh được tối ưu hóa cho một ứng dụng / phần cứng cụ thể. Các ứng dụng đơn giản không quan tâm nhiều đến hiệu suất có thể trực tiếp sử dụng các định dạng trung gian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.