1/ File OBJ là gì
Định dạng file OBJ là một trong những định dạng file 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. Định dạng file 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.
Định dạng file OBJ thường được tạo bởi phần mềm thiết kế 3D – CAD (Computer Aided Design) như một sản phẩm cuối cùng của quy trình thiết kế mô hình 3D. Định dạng file 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 file 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 file 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 đó.
File .OBJ có ý nghĩa gì: Tên đầy đủ của loại file 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 file OBJ.
Mở rộng: Định dạng file OBJ là định dạng file ASCII. Điều này có nghĩa là bạn có thể chỉnh sửa các file trong trình soạn thảo văn bản.
- Mở xem file OBJ: việc mở file 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 file 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 file 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 file OBJ.
- Chỉnh sữa file OBJ: Có một số chương trình có thể giúp sửa chữa file 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.
2/ Chức năng định dạng file OBJ
2.1/ 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.
2.2/ Tessname với các mặt đa giác
Ở dạng đơn giản nhất, định dạng file 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.
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 file. 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 file 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 file 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 file 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.
2.3/ Định dạng đường cong tự do
Định dạng file 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.
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 file.
2.4/ Bề mặt dạng tự do
Với định dạng file 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 file 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 file 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ô.
2.5/ Màu sắt 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 file OBJ cho phép bạn lưu trữ thông tin màu sắc và kết cấu ở định dạng file đồ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 file 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 file 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 file 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.
3/ File OBJ ứng dụng trong lĩnh vực nào?
3.1/ Ứng dụng trong lĩnh vực in 3D
Định dạng được sử dụng phố biến nhất trong lĩnh vực in 3D là STL. Tuy nhiên, STL là một định dạng file 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 file 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 file. Đị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 file. Đ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 file 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 file 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.
Thực tế thì định dạng file 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 file in 3D khác là VRML, AMF và 3MF. Nhưng nó 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 file STL và OBJ tại thời điểm này.
3.1.1/ File OBJ hỗ trợ in 3D nhiều màu
Định dạng file 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.
3.1.2/ Làm việc với file OBJ như thế nào để in 3D được?
Để in 3D được với file OBJ bạn cần 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 (Mã G-Code) của bạn để tạo một đối tượng.
Phần mềm in 3D sẽ cắt file 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 file G-Code, 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 file 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 nạp vào máy in 3D, giai đoạn tiếp theo là các lớp 2 chiều riêng biệt đó sẽ được ghép lại thành một đối tượng 3 chiều trên bàn in của máy. Đ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 (nếu nhựa là vật liệu in 3D), 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.
3.2/ Ứng dụng trong lĩnh vực đồ hoạ 3D
Các định dạng file 3D được sử dụng phổ biến nhất trong các ứng dụng đồ họa 3D là OBJ, FBX và COLLADA.
3.2.1/ Sự khác nhau của các file OBJ, FBX, COLLADA
Sự khác biệt quan trọng nhất giữa định dạng file 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 file 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 file OBJ.
3.2.2/ Ưu điểm của file OBJ trong lĩnh vực đồ hoạ 3D là gì?
Định dạng file 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 file 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 file 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 của hãng AutoDesk.
Một file OBJ cũng sẽ nhẹ hơn và có kích thước nhỏ hơn nhiều so với file FBX hoặc file 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 file 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 file 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.
3.2.3/ Những tính năng hiện đại của file 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 file OBJ đứng thứ hai về các tính năng trong khi định dạng COLLADA được coi là chậm thay đổi.
Tôi muốn file obj