Định dạng tệp OBJ là một trong những định dạng tệp quan trọng nhất trong các ứng dụng in 3D và đồ họa 3D. Đây là định dạng tiện dụng để in 3D nhiều màu và được sử dụng rộng rãi làm định dạng trao đổi trung gian giữa các mô hình 3D dạng khối.
Trong bài viết này, chúng tôi sẽ thảo luận chi tiết về định dạng tệp OBJ. Chúng tôi sẽ nói về các định dạng tệp tương tự khác như STL trong trường hợp in 3D hoặc COLLADA và FBX trong trường hợp ứng dụng đồ họa. Đâu là ưu điểm và nhược điểm của tệp này?
Chúng tôi cũng sẽ xem xét các tính năng khác nhau được cung cấp bởi định dạng tệp OBJ và cung cấp các thủ thuật về cách bạn có thể sử dụng các tính năng này để cải thiện các mô hình 3D của mình. Đối với những người có sở thích in 3D, chúng tôi sẽ trả lời một số câu hỏi thường gặp về việc sử dụng định dạng tệp OBJ trong các ứng dụng in 3D. Đối với những độc giả khó tính, chúng tôi sẽ đề cập đến các thông số kỹ thuật đầy đủ để bạn có thể đọc, hiểu và điều chỉnh các tệp theo cách thủ công. Ngoài ra còn có một phần về các trang nguồn, nơi chúng tôi liệt kê các trang web và phần mềm để tải xuống, mở, chỉnh sửa và sửa chữa các tệp OBJ.
Nội dung bài viết
- Tệp OBJ là gì ?
- Định dạng tệp OBJ khác với định dạng khác như thế nào?
- Định dạng tệp OBJ: Sử dụng trong In 3D
- Định dạng tệp OBJ: Sử dụng trong Ứng dụng đồ họa 3D
- Các tính năng của Định dạng tệp OBJ
- Định dạng tệp OBJ: Màu sắc và kết cấu
- Câu hỏi định dạng tệp OBJ thường gặp liên quan đến in 3D
- Câu hỏi định dạng tệp OBJ: Tôi có thể thực hiện in 3D đủ màu bằng định dạng tệp OBJ không?
- Câu hỏi định dạng tệp OBJ: Nó được in 3D như thế nào?
- Câu hỏi định dạng tệp OBJ: Tất cả các tệp OBJ có thể in 3D không?
- Tài nguyên định dạng tệp OBJ
- Đang tải xuống
- Mở và xem
- Sửa chữa
- Đặc tả định dạng tệp OBJ, được đơn giản hóa
- Đặc tả OBJ
- Định dạng tệp OBJ: đặc tả MTL
- Phần kết luận
Tệp OBJ là gì ?

Tóm lại, định dạng tệp OBJ lưu trữ thông tin về các mô hình 3D. Nó có thể mã hóa hình học bề mặt của mô hình 3D và cũng có thể lưu trữ thông tin màu sắc và kết cấu. Định dạng này không lưu trữ bất kỳ thông tin texture nào (như vị trí ánh sáng) hoặc animation
Tệp OBJ thường được tạo bởi phần mềm CAD (Computer Aided Design) như một sản phẩm cuối cùng của quy trình mô hình 3D.
Định dạng tệp OBJ là mã nguồn mở và trung tính. Nó được sử dụng nhiều để chia sẻ các mô hình 3D trong các ứng dụng đồ họa vì nó được hỗ trợ nhập và xuất tốt từ hầu hết các phần mềm CAD. Trong những năm gần đây, nó cũng đang trở nên phổ biến dưới dạng định dạng tệp thực tế cho in 3D nhiều màu vì định dạng in 3D tiêu chuẩn STL không hỗ trợ thông tin màu sắc và kết cấu.
Định dạng tệp OBJ ban đầu được tạo bởi Wavefront Technologies cho ứng dụng Advanced Visualizer của nó để lưu trữ các đối tượng hình học bao gồm các đường, đa giác và các đường cong và bề mặt dạng tự do. Phiên bản gần đây nhất là v3.0, thay thế cho phiên bản v2.11 trước đó.
Phần mở rộng tệp .OBJ có nghĩa là gì?
Tên đầy đủ của loại tệp này là Kiểu sóng mặt OBJect, nhưng không ai bận tâm sử dụng tên đầy đủ nữa. Nó được gọi đơn giản là định dang trên tệp OBJ.
Định dạng tệp OBJ khác với định dạng khác như thế nào?
Định dạng tệp OBJ: Sử dụng trong In 3D
Định dạng nổi trội nhất trong thế giới in 3D là STL. Tuy nhiên, STL là một định dạng tệp cũ, mặc dù rất phổ biến, nhưng thực sự không theo kịp thời đại.
Độ trung thực của in 3D đang nhanh chóng tiếp cận với độ phân giải cấp micron và các mô hình đa màu đang ngày càng trở nên phổ biến. Định dạng tệp STL không thể xử lý độ phân giải cao rất tốt vì độ phân giải cao hơn đi kèm với tăng kích thước tệp. Định dạng STL cũng không phù hợp để in 3D nhiều màu vì nó không hỗ trợ thông tin về màu sắc và kết cấu.
Ngược lại, nó có thể xấp xỉ hình học bề mặt chính xác theo yêu cầu mà không làm tăng kích thước tệp. Điều này có thể sử dụng các đường cong Bezier và một phương pháp gọi là NURBS mà chúng ta sẽ thảo luận sau trong bài viết này. Hơn nữa, định dạng tệp OBJ có hỗ trợ riêng cho nhiều màu sắc và kết cấu trong cùng một mô hình.
Do đó, định dạng tệp OBJ có lợi thế hơn định dạng STL nếu bạn cần các mô hình chính xác, nhiều màu và nó có khả năng trở thành định dạng in 3D rất phổ biến trong tương lai vì điều này.
Trên flipside, định dạng tệp OBJ không phổ biến như định dạng STL. Hầu như tất cả các máy in 3D đều hỗ trợ định dạng STL. Điều tương tự không thể nói về định dạng, mặc dù nó cũng thích sự chấp nhận và hỗ trợ hợp lý. Do đó, nếu bạn đang in 3D một mô hình đơn sắc bằng máy in tiêu chuẩn, định dạng STL vẫn thích hợp hơn.
Cả hai định dạng OBJ và STL đều có một hệ sinh thái rất trưởng thành với lượng người dùng được đầu tư lớn và nhiều công cụ của bên thứ ba.
Các ứng cử viên định dạng tệp in 3D khác là VRML, AMF và 3MF. Nhưng họ không có sự hỗ trợ tương đương và không phải là sự thay thế quan trọng cho các định dạng tệp STL và OBJ tại thời điểm này.

Định dạng tệp OBJ: Sử dụng trong Ứng dụng đồ họa 3D
Các định dạng tệp được sử dụng phổ biến nhất trong các ứng dụng Đồ họa 3D là OBJ, FBX và COLLADA.
SỰ KHÁC NHAU GIỮA CÁC ĐỊNH DẠNG TỆP OBJ, FBX, COLLADA
Sự khác biệt quan trọng nhất giữa định dạng tệp OBJ và khác là hỗ trợ thông tin cảnh quan (như nguồn sáng) và hình động. Định dạng tệp OBJ không hỗ trợ thông tin cảnh quan và hình động trong khi FBX và COLLADA thì có. Do đó, nếu bạn cần hình động cho trò chơi hoặc phim của mình, thì tốt hơn bạn nên sử dụng định dạng FBX và COLLADA.
Nhưng trong trường hợp bạn không cần toàn cảnh hoặc hoạt hình, có một số lợi thế nhất định khi sử dụng định dạng tệp OBJ.
ƯU ĐIỂM CỦA ĐỊNH DẠNG TỆP OBJ
Thứ nhất, định dạng tệp OBJ là định dạng đơn giản và mở. Nó có hỗ trợ xuất nhập rộng rãi giữa các phần mềm CAD. Điều này có nghĩa là nếu bạn chia sẻ mô hình 3D của mình dưới dạng tệp OBJ, thì phần mềm CAD khác sẽ diễn giải nó một cách chính xác và nhất quán. Điều tương tự không thể nói về các định dạng FBX hoặc COLLADA. Định dạng COLLADA cũng là mã nguồn mở, nhưng nó khá phức tạp. Phần mềm CAD khác nhau diễn giải nó khác nhau và điều này dẫn đến sự không nhất quán.
Định dạng FBX là định dạng khép kín và độc quyền và cung cấp SDK để chuyển đổi các định dạng hiện có thành FBX (Xuất). Tuy nhiên, không dễ để đi theo một cách khác – chuyển đổi tệp FBX sang định dạng khác (Nhập). Các nhà phát triển phần mềm CAD không phải AutoDesk thường phải tìm cách nhập dữ liệu FBX hợp lý. Điều này dẫn đến sự không nhất quán nếu bạn đang sử dụng phần mềm không phải AutoDesk.
Một tệp OBJ cũng sẽ nhẹ hơn và có kích thước nhỏ hơn nhiều so với tệp FBX hoặc tệp COLLADA của cùng một mô hình 3D. Điều này là do sự đơn giản của định dạng tệp OBJ so với các thông số kỹ thuật khác và do mã hóa nhị phân nguyên gốc của nó.
Do đó, nếu bạn không cần toàn cảnh hoặc hoạt hình và bạn quan tâm đến sự hỗ trợ và giải thích nhất quán bằng các phần mềm CAD khác nhau, định dạng tệp OBJ là định dạng phù hợp. Trong hầu hết các trường hợp khác, FBX là định dạng tối ưu cho các ứng dụng đồ họa 3D.
CÁC TÍNH NĂNG HIỆN ĐẠI CỦA ĐỊNH DẠNG TỆP OBJ
Về các tính năng hiện đại, định dạng FBX là định dạng tiến bộ nhất cung cấp nhiều tính năng tiên tiến và cập nhật và cải tiến thường xuyên. Định dạng tệp OBJ đứng thứ hai về các tính năng trong khi định dạng COLLADA được coi là chậm thay đổi.
Các tính năng của Định dạng tệp OBJ
ĐỊNH DẠNG TỆP OBJ: HÌNH HỌC
Mục đích chính của định dạng tệp OBJ là mã hóa hình dạng bề mặt của vật thể 3D. Định dạng tệp OBJ khá linh hoạt về mặt này. Nó cho phép một số lựa chọn để mã hóa hình học bề mặt. Mỗi trong số ba phương pháp được phép nêu dưới đây đều có những ưu điểm và nhược điểm riêng.
ĐỊNH DẠNG TỆP OBJ: TESSNAME VỚI CÁC MẶT ĐA GIÁC
Ở dạng đơn giản nhất, định dạng tệp OBJ cho phép người dùng tessellate (lát) bề mặt của mô hình 3D với các hình dạng hình học đơn giản như hình tam giác, hình tứ giác hoặc đa giác phức tạp hơn. Các đỉnh của đa giác và bình thường cho mỗi đa giác sau đó được lưu trữ trong một tệp để mã hóa hình dạng bề mặt của mô hình.
Ví dụ, đây là một hình ảnh cho thấy mô hình 3D của đầu lợn có thể được xâu chuỗi bằng các hình tam giác nhỏ.

Tessellations với khuôn mặt đa giác có lợi thế và bất lợi. Đa giác là các hình dạng hình học đơn giản và phương pháp này thực sự là cách đơn giản nhất để mô tả hình học bề mặt. Tuy nhiên, xấp xỉ một bề mặt cong với đa giác giới thiệu độ thô cho mô hình.
Trong trường hợp in 3D, máy in 3D sẽ in đối tượng có cùng độ thô như được chỉ định bởi tệp. Tất nhiên, bằng cách làm cho các hình tam giác nhỏ hơn và nhỏ hơn, phép tính gần đúng có thể được thực hiện ngày càng tốt hơn, dẫn đến bản in chất lượng tốt. Tuy nhiên, khi bạn giảm kích thước của hình tam giác, số lượng hình tam giác cần thiết để che phủ bề mặt cũng tăng lên. Điều này dẫn đến kích thước tệp khổng lồ mà các máy in 3D phải vật lộn để xử lý. Chia sẻ hoặc tải lên các tệp lớn như vậy cũng là một nỗi đau.
Do đó, điều rất quan trọng là tìm sự cân bằng phù hợp giữa kích thước tệp và chất lượng in. Sẽ không có ý nghĩa gì khi giảm kích thước của hình tam giác ad infinitum bởi vì đến một lúc nào đó, mắt bạn sẽ không thể phân biệt được giữa các phẩm chất in.
ĐỊNH DẠNG TỆP OBJ: ĐƯỜNG CONG DẠNG TỰ DO
Định dạng tệp OBJ cũng cho phép chỉ định hình dạng bề mặt của mô hình bằng các đường cong dạng tự do . Ý tưởng cơ bản là người dùng định nghĩa một tập hợp các đường cong dạng tự do (Cardinal Splines, Bezier curves, v.v.) chạy dọc theo bề mặt của mô hình. Bề mặt sau đó được xấp xỉ từ bộ sưu tập các đường cong này.
Dưới đây là một ví dụ minh họa một đường cong biểu mẫu tự do trên bề mặt của mô hình 3D.

Như bạn có thể thấy, các đường cong dạng tự do chắc chắn phức tạp hơn các mặt đa giác. Nhưng bằng cách hy sinh sự đơn giản, chúng ta cũng đạt được rất nhiều. Vì các đường cong dạng tự do có thể mô tả chính xác các đường cong sử dụng một vài tham số toán học, chúng yêu cầu ít dữ liệu hơn để mô tả cùng một bề mặt khi so sánh với một phương pháp gần đúng như các phép tính đa giác. Do đó, chúng tôi có thể tạo mã hóa chất lượng cao cho bất kỳ mô hình 3D nào bằng cách sử dụng các đường cong dạng tự do mà không làm tăng kích thước tệp.
ĐỊNH DẠNG TỆP OBJ: BỀ MẶT DẠNG TỰ DO
Với định dạng tệp OBJ, bạn cũng có thể chỉ định hình dạng bề mặt bằng cách ốp bề mặt bằng các miếng vá bề mặt dạng tự do thay vì đa giác đơn giản. Loại miếng vá bề mặt này rất hữu ích để mô tả các bề mặt không giống như mặt phẳng, hình cầu, hình trụ hoặc hình nón tức là các bề mặt không có kích thước xuyên tâm cứng nhắc. Ví dụ về các bề mặt như vậy bao gồm thân xe, cánh của máy bay hoặc thân thuyền.
Bề mặt dạng tự do phổ biến nhất được gọi là NURBS (Spline Rational B không đồng nhất) và định dạng tệp OBJ hỗ trợ nó. GIF cho thấy một ví dụ về bề mặt NURBS trông như thế nào.
Ưu điểm của việc sử dụng các bề mặt dạng tự do có phần giống với các lợi thế của việc sử dụng các đường cong dạng tự do – chúng chính xác hơn và chúng dẫn đến kích thước tệp nhỏ hơn với độ chính xác cao hơn so với các phương pháp khác. Trên thực tế, người ta có thể lập luận rằng các bề mặt dạng tự do chính xác hơn các đường cong dạng tự do vì chúng mã hóa bề mặt chính xác trái ngược với xấp xỉ bề mặt bằng các đường cong. Đây là lý do tại sao họ tìm thấy ứng dụng trong các ngành kỹ thuật không thể tha thứ khi nói về độ chính xác – chẳng hạn như kỹ thuật hàng không vũ trụ và kỹ thuật ô tô.
Định dạng tệp OBJ: Màu sắc và kết cấu
Trong nhiều ứng dụng, sự xuất hiện của mô hình 3D là rất quan trọng. Chẳng hạn, không ai muốn chơi Need For Speed với những chiếc xe buồn tẻ, không màu. Những chiếc xe tốt hơn là đầy màu sắc và sáng bóng! Màu sắc và độ sáng bóng của một chiếc xe là những ví dụ về các đặc tính liên quan đến ngoại hình. Nói một cách đơn giản, ngoại hình mô tả các thuộc tính bề mặt như loại vật liệu, kết cấu, màu sắc, v.v … Điều này quyết định mô hình trông như thế nào khi được hiển thị.
Định dạng tệp OBJ cho phép bạn lưu trữ thông tin màu sắc và kết cấu ở định dạng tệp đồng hành được gọi là định dạng Thư viện mẫu vật liệu (MTL). Tệp đối tác này có phần mở rộng .MTL.
Với hai tệp này cùng nhau, có thể hiển thị một mô hình kết cấu nhiều màu.
Các tệp MTL chứa văn bản ASCII xác định các thuộc tính phản xạ ánh sáng của một bề mặt theo mô hình phản xạ Phong . Người ta có thể định nghĩa các thuộc tính vật liệu như màu môi trường xung quanh, màu khuếch tán, màu đặc trưng, độ trong suốt, v.v. Chúng ta sẽ thảo luận chi tiết hơn về thông số kỹ thuật của tệp MTL trong phần sau.
Ngoài việc hỗ trợ các thuộc tính vật liệu này, định dạng MTL còn hỗ trợ bản đồ kết cấu, đây là một phương pháp thuận tiện hơn để chỉ định màu sắc và kết cấu. Trong ánh xạ kết cấu, mọi điểm trên bề mặt của mô hình 3D (hoặc lưới đa giác) được ánh xạ thành hình ảnh 2 chiều. Các tọa độ của hình ảnh 2D có các thuộc tính như màu sắc và kết cấu. Khi kết xuất mô hình 3D, mọi điểm bề mặt được chỉ định tọa độ trong hình ảnh 2 chiều này. Các đỉnh của lưới được ánh xạ đầu tiên. Các điểm khác sau đó được gán tọa độ bằng cách nội suy giữa các tọa độ của các đỉnh.

Câu hỏi định dạng tệp OBJ thường gặp liên quan đến in 3D

Câu hỏi định dạng tệp OBJ: Tôi có thể thực hiện in 3D đủ màu bằng định dạng tệp OBJ không?
Mới đây, XYZ Printing đã công bố máy in 3D để bàn đủ màu đầu tiên trên thế giới . Có giá khoảng 3000 đô la, không thực tế khi nói ngành công nghiệp in 3D đang dần chuyển từ mô hình đơn sắc sang in nhiều màu.
Định dạng tệp OBJ hoàn toàn hỗ trợ in 3D nhiều màu. Trên thực tế, nó là lựa chọn tốt nhất nếu bạn chọn đi con đường đa màu sắc. Định dạng in 3D tiêu chuẩn STL không hỗ trợ màu sắc và các định dạng in 3D khác như AMF, 3MF và VRML quá rìa để xem xét sử dụng chính.

Câu hỏi định dạng tệp OBJ: Nó được in 3D như thế nào?
Để in 3D, tệp phải được mở trong một máy cắt chuyên dụng như Dil3r. Máy thái lát là gì? Đây là một phần mềm in 3D chuyển đổi các mô hình 3D kỹ thuật số thành các hướng dẫn in cho máy in 3D của bạn để tạo một đối tượng.
Trình cắt sẽ cắt tệp OBJ của bạn thành hàng trăm (đôi khi hàng nghìn) lớp ngang phẳng dựa trên các cài đặt bạn chọn và tính toán đường dẫn công cụ để theo đó sẽ hiển thị vật lý mô hình của bạn, từng lớp. Quá trình này cũng tính toán các ước tính cho bao nhiêu tài liệu mà máy in của bạn sẽ cần ép đùn và mất bao lâu để thực hiện.
Tất cả thông tin này sau đó được gói lại thành tệp GCode, ngôn ngữ gốc của máy in 3D của bạn. Cài đặt bộ cắt ảnh hưởng đến chất lượng bản in của bạn, vì vậy điều quan trọng là phải có phần mềm và cài đặt phù hợp để giúp bạn có bản in chất lượng tốt nhất có thể. Điều quan trọng nữa là kiểm tra xem Bộ cắt của bạn có hỗ trợ các tệp OBJ hay không và nếu có, tính năng nào nó hỗ trợ. Một số máy thái có thể hỗ trợ các lưới đa giác đơn giản nhưng sẽ gây ra lỗi nếu bạn sử dụng các đường cong hoặc bề mặt dạng tự do trong mã hóa.
Khi GCode đã được tải lên máy in 3D của bạn, giai đoạn tiếp theo là các lớp hai chiều riêng biệt đó sẽ được ghép lại thành một đối tượng ba chiều trên giường in của bạn. Điều này được thực hiện bằng cách gửi một loạt các lớp nhựa, kim loại hoặc vật liệu tổng hợp mỏng và xây dựng mô hình một lớp mỗi lần.

Câu hỏi định dạng tệp OBJ: Tất cả các tệp OBJ có thể in 3D không?
Không may măn. Chỉ có một thiết kế 3D được tạo riêng cho in 3D là có thể in 3D. Tệp OBJ chỉ là nơi chứa dữ liệu, không đảm bảo rằng có thể in được thứ gì đó. Hãy nhớ rằng định dạng tệp OBJ cũng được sử dụng làm định dạng trao đổi cho các ứng dụng đồ họa 3D, trường hợp sử dụng không liên quan gì đến in 3D.
Các mô hình 3D phù hợp cho in 3D cần phải có độ dày thành tối thiểu và hình học bề mặt kín nước của Google có thể in 3D. Ngay cả khi nó hiển thị trên màn hình máy tính, không thể in thứ gì đó có độ dày thành bằng không.
Ngoài ra còn có sự xem xét của các yếu tố nhô ra trên mô hình. Nhìn vào logo All3DP trong hình trên; nếu mô hình được in thẳng đứng, thì các phần tử nhô ra với góc lớn hơn 45 độ sẽ yêu cầu hỗ trợ (mà bạn có thể nhìn thấy bằng màu xanh lá cây).
Khi tải xuống một tệp mà bạn không tự tạo, bạn nên dành thời gian để xác minh rằng nó thực sự có thể in 3D. Điều này sẽ giúp bạn tiết kiệm rất nhiều thời gian, sự thất vọng và lãng phí dây tóc.
Tài nguyên định dạng tệp OBJ
Trong phần này, chúng tôi sẽ chia sẻ một số phần mềm và tài nguyên tuyệt vời mà bạn có thể sử dụng để tải xuống, xem, chỉnh sửa và sửa chữa các tệp OBJ.

Đang tải xuống
Có rất nhiều kho lưu trữ, thị trường và công cụ tìm kiếm trên web chứa hàng ngàn tệp miễn phí. Các vị trí chính để tải xuống các tệp OBJ là TurboSquid , 3D miễn phí , CGTrader , Archive3D , Clara , Mô hình 3D miễn phí và Oyonale .

Mở và xem
May mắn thay, việc mở tệp OBJ không quá phức tạp. Hầu hết các phần mềm CAD có thể xử lý định dạng tệp OBJ và sẽ cho phép bạn xem nó. Đặc biệt, bạn có thể dùng thử Solidworks, Fusion 360, Blender, Rhino, Cinema4D và Unity.
Bạn cũng có thể xem các tệp trực tuyến mà không gặp rắc rối khi tải xuống và cài đặt phần mềm trên máy của mình: Autodesk360Viewer , 3DViewerOnline , 3D-Tool là những trình xem mô hình 3D trực tuyến hỗ trợ định dạng tệp OBJ.

Sửa chữa
Có một số chương trình có thể giúp sửa chữa tệp OBJ bị hỏng. Ví dụ, Netfabb Basic, Meshmixer và Meshlab đều là những công cụ tuyệt vời để sửa chữa các vấn đề in phổ biến nhất.
Đặc tả định dạng tệp OBJ, được đơn giản hóa
Cho đến nay, chúng ta đã thảo luận rất nhiều về định dạng tệp OBJ có thể làm gì và những gì nó không thể làm. Nhưng làm thế nào để định dạng tệp OBJ mã hóa thông tin về các thuộc tính hình học và vật liệu trong một tệp? Bạn thực sự sẽ thấy gì nếu bạn mở tệp bằng trình soạn thảo văn bản?
Trong phần này chúng ta sẽ đi qua các phần cơ bản nhất của đặc tả, xem xét cách định dạng tệp OBJ thực sự hoạt động. Sau khi xem qua thông tin, bạn sẽ hiểu và đánh giá cao những gì mỗi dòng của tệp OBJ lưu trữ. Nếu bạn là một lập trình viên và muốn tạo một trình phân tích cú pháp, kiến thức này là không thể thiếu. Đặc tả tệp OBJ đầy đủ có sẵn ở đây .
Đặc tả OBJ
Định dạng tệp OBJ là định dạng tệp ASCII. Nếu bạn thực sự khó tính, bạn có thể chỉnh sửa các tệp trong trình soạn thảo văn bản.
Đặc tả ban đầu không chỉ định kết thúc của ký tự dòng là gì, vì vậy một số phần mềm sử dụng trả về vận chuyển và một số sử dụng nguồn cấp dữ liệu. Bạn có thể phải chuyển đổi cuối dòng ký tự nếu trình soạn thảo văn bản hoặc phần mềm của bạn không đọc được tệp.
Ký tự đầu tiên của mỗi dòng là rất quan trọng. Nó chỉ định loại lệnh. Nếu ký tự đầu tiên là #, dòng đó là một nhận xét và mọi thứ khác trong dòng đó sẽ bị bỏ qua. Dòng trống cũng bị bỏ qua.
Dưới đây chúng tôi liệt kê ra tất cả các lệnh phổ biến. Ký tự đầu tiên luôn là một loại lệnh. Nó được theo sau bởi các đối số. Tất cả mọi thứ hiển thị trong ngoặc vuông là tùy chọn.
ĐỊNH DẠNG TỆP OBJ: LỆNH COMMENT
Như chúng ta đã thảo luận trước đây, ký tự # chỉ ra rằng dòng này là một nhận xét và nên được bỏ qua. Dòng đầu tiên thường luôn là một bình luận chỉ định chương trình nào tạo ra tệp.
ĐỊNH DẠNG TỆP OBJ: LỆNH VERTEX
Đây là lệnh đỉnh. Trong phiên bản đơn giản hóa này, chúng tôi sẽ chỉ bao gồm các mặt đa giác, do đó lệnh đỉnh có thể được sử dụng để chỉ định các đỉnh của đa giác. Khi sử dụng các bề mặt và đường cong dạng tự do, có một lệnh vp tương tự có thể được sử dụng để chỉ định các điểm kiểm soát của bề mặt hoặc đường cong.
Lệnh v chỉ định một đỉnh bằng ba tọa độ cartesian x, y và z. Đỉnh được tự động gán tên tùy theo thứ tự tìm thấy trong tệp. Đỉnh đầu tiên trong tệp có tên ‘1’, đỉnh thứ hai là ‘2’, đỉnh thứ ba là ‘3’, v.v.
ĐỊNH DẠNG TỆP OBJ: LỆNH THƯỜNG CỦA VERTEX
Đây là lệnh bình thường đỉnh. Nó chỉ định các vectơ bình thường lên bề mặt. x, y và z là các thành phần của vectơ bình thường. Lưu ý rằng vectơ bình thường này chưa được liên kết với bất kỳ điểm đỉnh. Chúng ta sẽ phải liên kết nó với một đỉnh sau này với một lệnh khác gọi là lệnh f .
Lệnh bình thường của đỉnh được bỏ qua trong rất nhiều tệp vì khi chúng ta sẽ nhóm các đỉnh thành các mặt đa giác bằng lệnh f , nó sẽ tự động xác định vectơ bình thường từ tọa độ đỉnh và thứ tự xuất hiện các đỉnh.
ĐỊNH DẠNG TỆP OBJ: LỆNH KẾT CẤU VERTEX
Lệnh kết cấu đỉnh chỉ định một điểm trong bản đồ kết cấu mà chúng ta đã đề cập trong phần trước. U và V là tọa độ X và Y trong bản đồ kết cấu. Đây sẽ là các số dấu phẩy động trong khoảng từ 0 đến 1. Chúng thực sự không cho bạn biết bất cứ điều gì một mình, chúng phải được nhóm với một đỉnh trong lệnh f mặt, giống như các quy tắc đỉnh.
ĐỊNH DẠNG TỆP OBJ: LỆNH FACE
Lệnh face có lẽ là lệnh quan trọng nhất. Nó chỉ định một mặt đa giác được làm từ các đỉnh xuất hiện trước đường thẳng này.
Để tham chiếu một đỉnh bạn chỉ cần theo hệ thống đánh số ngầm định của các đỉnh. Ví dụ: ‘f 23 24 25 27’ có nghĩa là một mặt đa giác được xây dựng từ các đỉnh 23, 24, 25 và 27 theo thứ tự.
Đối với mỗi đỉnh, bạn có thể liên kết một lệnh vn , sau đó liên kết đỉnh đó bình thường với đỉnh tương ứng. Tương tự, bạn có thể liên kết một lệnh vt với một đỉnh, nó sẽ xác định ánh xạ kết cấu sẽ sử dụng tại thời điểm này.
Nếu bạn chỉ định một vt hoặc vn cho một đỉnh, bạn phải chỉ định nó cho tất cả chúng.
ĐỊNH DẠNG TỆP OBJ: LỆNH NHÓM
Lệnh tên nhóm chỉ định một nhóm đối tượng phụ. Tất cả các lệnh f mặt theo sau sẽ nằm trong cùng một nhóm. Điều này hữu ích nếu chúng ta muốn sử dụng lại một thông tin cụ thể, chẳng hạn như loại vật liệu, cho một phần được chọn của một đối tượng.
ĐỊNH DẠNG TỆP OBJ: LỆNH SỬ DỤNG VẬT LIỆU
Lệnh sử dụng vật liệu cho phép bạn đặt tên cho một vật liệu để sử dụng. Tất cả các lệnh f face sau sẽ sử dụng cùng một vật liệu cho đến khi một lệnh usemtl khác xuất hiện.
ĐỊNH DẠNG TỆP OBJ: KẾT HỢP TẤT CẢ LẠI VỚI NHAU
Đặt tất cả những thứ này lại với nhau, đây là một phác thảo sơ bộ của một tệp OBJ đơn giản
Định dạng tệp OBJ: đặc tả MTL
Tệp MTL đi kèm chỉ định màu sắc và kết cấu của mô hình. Tệp MTL này được tham chiếu bằng cách sử dụng lệnh
trong đó tên là tên của tệp MTL.
Vì các tài liệu được chỉ định trong tệp MTL, lệnh mtlib phải đặt trước lệnh usemtl .
Một tệp MTL có thể chỉ định nhiều tài liệu. Vật liệu được xác định bằng lệnh newmtl .
Các tính chất của vật liệu được xác định sau đó. Dưới đây là một số lệnh xác định thuộc tính.
ĐỊNH DẠNG TỆP OBJ: LỆNH MÀU XUNG QUANH
Ví dụ, lệnh này xác định màu môi trường xung quanh của vật liệu. R, G và B là các kênh màu đỏ, xanh lá cây và xanh dương. Mỗi có thể lấy một giá trị từ 0 đến 1.
ĐỊNH DẠNG TỆP OBJ: LỆNH MÀU KHUẾCH TÁN
Tương tự, Kd là màu khuếch tán.
ĐỊNH DẠNG TỆP OBJ: LỆNH MINH BẠCH
Lệnh này chỉ định tính minh bạch của vật liệu. Các giá trị có thể từ 0 (hoàn toàn trong suốt) đến 1 (hoàn toàn mờ đục).
ĐỊNH DẠNG TỆP OBJ: LỆNH CHẾ ĐỘ CHIẾU SÁNG
Lệnh này chỉ định chế độ chiếu sáng. Nhiều lựa chọn có sẵn, được liệt kê dưới đây:
ĐỊNH DẠNG TỆP OBJ: LỆNH MAP MAPPING
Cuối cùng, tất cả các thuộc tính này cũng có thể được khai báo trong bản đồ kết cấu. Ví dụ: nếu bạn muốn khai báo màu xung quanh bằng bản đồ kết cấu, chỉ cần sử dụng lệnh sau.
Ở đây, bản đồ kết cấu được chỉ định trong một tệp kết cấu riêng biệt với phần mở rộng .TGA.
ĐỊNH DẠNG TỆP OBJ: KẾT HỢP MỌI THỨ LẠI VỚI NHAU
Để đặt mọi thứ lại với nhau, đây là một tệp dữ liệu thực tế cho một hình vuông 2 × 2 có kết cấu đơn giản. Nó tham chiếu một tệp MTL được gọi là master.mtl. Tệp MTL này xác định các thuộc tính vật liệu bằng cách sử dụng bản đồ kết cấu 1 × 1.