Định dạng tệp USD cho 3D: Tại sao nó tuyệt vời

Categorized as 3D, Open Source Tagged , , , , , , ,
Save and Share:

USD (Universal Scene Description – Mô tả cảnh phổ quát) là một định dạng tệp được phát triển bởi Pixar để trao đổi các cảnh đồ họa máy tính 3D giữa các ứng dụng sáng tạo nội dung kỹ thuật số. Đây là một định dạng tệp mã nguồn mở có khả năng mở rộng, có thể lưu trữ thông tin về hình học 3D, đổ bóng, ánh sáng, vật lý và các lĩnh vực liên quan đến đồ họa khác. Nó cũng có thể tổng hợp và ghi đè dữ liệu từ nhiều nguồn, tạo ra một biểu đồ cảnh duy nhất có thể được chỉnh sửa theo cách không phá hủy.

USD được sử dụng trong nhiều ngành công nghiệp, chẳng hạn như thiết kế, kiến trúc, hoạt hình và trò chơi điện tử, và được hỗ trợ bởi nhiều ứng dụng phần mềm, chẳng hạn như Blender, Cinema 4D, Houdini, Maya và SceneKit của Apple. USD cũng là cốt lõi của quy trình đồ họa 3D của Pixar và là nền tảng của nền tảng Omniverse của Nvidia.

Đặc tả Mô tả cảnh phổ quát (USD) sử dụng một số định dạng tệp sau:

  • .usd – Có thể được mã hóa bằng ASCII hoặc nhị phân
  • .usda – Mã hóa ASCII
  • .usdc – Mã hóa nhị phân
  • .usdz – Một tệp gói được định dạng dưới dạng tệp zip nén bằng không, không được mã hóa. Có thể chứa các tệp .usd, .usda, .usdc, .png, .jpeg, .m4a, .mp3 và .wav.

Blender (hoặc bất kỳ phần mềm 3D nào khác) giúp cuộc sống của bạn dễ dàng hơn bằng cách cho phép bạn thực hiện nhiều tác vụ chỉ bằng giao diện của nó, nhưng một khi bạn bắt đầu đưa các phần mềm khác vào quy trình làm việc của mình, các vấn đề bắt đầu xuất hiện liên tục. Vì vậy, hãy nói về những vấn đề lớn nhất mà có lẽ bạn đã gặp phải ngày hôm nay và cách Pixar đã tạo ra giải pháp để khắc phục chúng đến vô cực và xa hơn nữa.

Video về định dạng tệp USD của KaizenTutorials

Vấn đề

Nếu bạn đã từng tạo vân bề mặt cho một mô hình trong Substance, nhập tác phẩm của bạn vào Unreal hoặc cố gắng chia sẻ một dự án với người khác làm việc trên một phần mềm khác, bạn có lẽ đã nhận ra điều này khó chịu như thế nào. Việc phải xử lý các loại tệp khác nhau, quy trình xuất phù hợp cho từng phần mềm riêng lẻ và mất dữ liệu quý giá trong quá trình này có thể khiến bạn cảm thấy như mình đang cố tình đập đầu vào tường nhiều lần.

Và hãy tin tôi khi tôi nói rằng đây là điều mà tất cả các nghệ sĩ 3D ở khắp mọi nơi đều trải qua – cho dù bạn đang làm việc như một người sáng tạo độc lập với quy trình làm việc tùy chỉnh của riêng mình hay trong một studio lớn như Pixar, phải tuân thủ các ràng buộc nghiêm ngặt về quy trình làm việc để duy trì một quy trình làm việc phù hợp cho tất cả 1.232 người khác đang làm việc ở đó. Vấn đề vẫn vậy.

Tại sao điều này xảy ra

Tuy nhiên, điều đó cũng hợp lý phải không? Mỗi phần mềm sử dụng một loại tệp độc quyền phù hợp với nhu cầu của nó. Vì vậy, một tệp từ Blender, chẳng hạn, đã được mã hóa để hoạt động trong Blender chứ không phải trong Substance. Rõ ràng là trong một công ty, mỗi nghệ sĩ đều yêu cầu một tệp tương thích với công cụ mà họ lựa chọn để giúp họ dễ dàng và đôi khi thậm chí có thể tiếp tục làm việc trên một dự án.

Đây là lý do tại sao việc phải xuất sang một loại tệp phổ quát hơn như FBX hoặc OBJ là điều bắt buộc khi chuyển sang một phần mềm khác hoặc bàn giao dự án của bạn cho người tiếp theo. Nhưng ngay cả những loại tệp này cũng có rất nhiều hạn chế, chẳng hạn như không có khả năng lưu trữ đúng cách các mô phỏng, ánh sáng và nhiều khía cạnh khác trong dự án Blender của bạn.

Giới thiệu USD

Vậy đâu là câu trả lời cho vấn đề này? Universal Scene Description (USD), viết tắt! Được Pixar công bố lần đầu tiên dưới dạng phần mềm mã nguồn mở vào năm 2016 như quy trình cốt lõi mới của họ, USD chủ yếu là một cách để các nghệ sĩ của họ dễ dàng di chuyển dữ liệu giữa nhau và các công cụ họ sử dụng.

Kể từ khi phát hành, USD liên tục trải qua các thay đổi và cải tiến, điều này là phổ biến đối với phần mềm mã nguồn mở giống như Blender, cũng được cập nhật và mở rộng liên tục.

USD là gì?

USD là rất nhiều thứ và nếu tôi đi sâu vào nó, nó thực sự có thể là một điều rất kỹ thuật và phức tạp để mô tả. Nhưng nếu nói một cách đơn giản, USD là một cách để các ứng dụng như Blender, Unreal, Houdini, Substance, Maya, Nvidia Omniverse và nhiều ứng dụng khác giao tiếp và hiểu nhau.

Trong ngành công nghiệp máy tính, thực tế có một từ hoa mỹ cho việc này – khả năng tương tác. Khá khó nói! Tuy nhiên, dù nghe có vẻ hoa mỹ nhưng nó thực sự không phức tạp như bạn nghĩ. Bạn có thể bắt đầu sử dụng nó ngay hôm nay trên máy tính của riêng mình hoặc thậm chí với nhiều bạn bè hoặc đồng nghiệp trên khắp thế giới.

USD khác biệt như thế nào

Theo truyền thống, quy trình làm việc là một thứ một chiều, trong đó mỗi người chỉ được làm việc trên một thứ gì đó sau khi người trước đó hoàn thành. Hoặc đối với cá nhân bạn, bạn chỉ có thể chuyển sang bước tiếp theo trong quy trình, chẳng hạn như tạo vân bề mặt, nếu việc dựng hình hoàn toàn xong.

Bạn có thể so sánh điều này với việc nướng bánh – khi bạn xây dựng và tạo ra chiếc bánh này, bạn phải hoàn thành từng bước trước khi có thể bắt đầu bước tiếp theo. Bạn không thể nướng bánh trước khi bạn trộn bột và bạn không thể xây dựng nó trước khi nướng bánh trong lò nướng. Mỗi bước phụ thuộc vào bước trước đó đã được hoàn thành.

Quan trọng hơn, một khi bạn phủ kem và nhân hoặc quyết định rằng cốt bánh cần phải là sô cô la, thì không có đường quay lại. Bạn không thể bỏ nướng bánh, thay đổi hương vị thành vani hoặc gỡ lớp kem ra. Và đây là những gì chúng ta gọi là quy trình làm việc phá hủy.

Tuy nhiên, USD giống như Lego hơn. Mỗi khối đại diện cho một phần của cảnh 3D – nhân vật, đồ vật, môi trường, bất cứ thứ gì – và bạn có thể lắp ráp, tháo rời và sửa đổi các khối này một cách độc lập.

Trong một quy trình làm việc truyền thống, việc thay đổi một khối sẽ liên quan đến việc phải điều chỉnh phần còn lại của cấu trúc. Nhưng với USD, mỗi khối xây dựng có thể được làm việc độc lập và tôi có thể chỉ cần thay đổi một khối thành một màu khác chẳng hạn mà không cần phải xây dựng lại toàn bộ mô hình.

Đó là một cách tiếp cận không phá hủy cho phép thử nghiệm và quy trình làm việc cộng tác mà không bị sa lầy bởi các hạn chế của quy trình.

Mục tiêu của USD

Mục tiêu trong tất cả những điều này với USD là tạo ra một cách để dữ liệu di chuyển tự do giữa các ứng dụng, để cung cấp cho các nghệ sĩ và nhóm sự tự do tập trung vào sáng tạo chứ không phải vào việc xuất và bị mắc kẹt chờ đợi lẫn nhau để có thể tiếp tục làm việc. Các nghệ sĩ không nên phải khởi động lại nếu nhóm ý tưởng quyết định thay đổi mọi thứ sau này. Và không nên có vấn đề với các định dạng tệp đến từ các chương trình khác không hoạt động trong phần mềm bạn chọn.

Ở cấp độ dịch vụ, đó là những gì USD dường như là – một định dạng tệp có khả năng tương tác cao, dễ dàng trao đổi giữa các phần mềm khác nhau. Và công bằng mà nói, đây là những gì nó sẽ là đối với hầu hết người dùng Blender, vì rất nhiều người trong chúng ta có xu hướng làm việc một mình. Nhưng USD không chỉ là một loại tệp…

Đó là một cách để lắp ráp và tổ chức bất kỳ số lượng tài sản nào thành các bối cảnh ảo, cảnh quay, góc quay và thế giới – sử dụng chúng từ ứng dụng này sang ứng dụng khác và chỉnh sửa chúng một cách không phá hủy thường xuyên trong thời gian thực.

Cách làm việc với USD

Vậy hãy xem cách chúng ta có thể làm việc với USD trong quy trình làm việc của Blender. Ở dạng cơ bản nhất, USD đã là một tùy chọn xuất trong Blender kể từ phiên bản 3.6. Vì vậy, nếu bạn có một tệp bạn đang làm việc và muốn lưu nó dưới dạng tệp USD, bạn có thể vào Tệp > Xuất > Universal Scene Description và nó sẽ hiển thị cửa sổ nhắc bạn lưu tệp.

Nó có khá nhiều tùy chọn nhưng các tùy chọn chính cần lưu ý là:

  • Chỉ lựa chọn – Sẽ chỉ bao gồm các đối tượng đã chọn trong quá trình xuất của bạn
  • Hoạt ảnh và Tóc – Sẽ bao gồm/loại trừ dữ liệu hoạt ảnh và hạt tóc cho các đối tượng của bạn

Đây là một ví dụ tuyệt vời về cách USD hoạt động. Đây là một tệp từ thư viện mẫu USD của Nvidia được tạo trong một loạt các phần mềm như 3ds Max và Substance. Nếu bạn mở tệp này trong Blender bằng cách nhập nó, nó hoạt động gần như 100% ngay lập tức!

Như bạn có thể thấy, nó chứa tất cả dữ liệu bao gồm ánh sáng, độ sâu trường ảnh, máy ảnh, vật liệu và nhiều thứ khác nữa. Điều duy nhất không được xuất đúng cách là ánh sáng HDRI mà chúng ta phải tự thiết lập. Nhưng thật đáng kinh ngạc khi nghĩ rằng nó trông gần như giống hệt nhau bên trong trình kết xuất Arnold của 3DS Max và vừa được xuất sang Blender và hoạt động tốt như nhau chỉ bằng một loại tệp!

Nó có hệ thống phân cấp thích hợp, vật liệu và về cơ bản mọi thứ đều được thiết lập. Nó thực sự, thực sự tuyệt vời! Dù sao thì, điều này cho thấy cách USD hoạt động giữa các ứng dụng khác nhau và rằng nó hoạt động như một định dạng tệp có khả năng tương tác.

Ví dụ thực tế về USD

Nhưng hãy xem xét một ví dụ thực tế hơn. Đối với ví dụ về quy trình làm việc này, tôi sẽ sử dụng quy trình làm việc điển hình là sử dụng Blender để mô hình hóa một đối tượng cho trò chơi.

Quy trình làm việc truyền thống sẽ diễn ra như sau:

  1. Tạo mô hình trong Blender
  2. Mở UV cho mô hình
  3. Xuất dưới dạng FBX vì Painter không thể sử dụng tệp Blender
  4. Nhập FBX vào Substance Painter
  5. Thêm vật liệu trong Substance
  6. Xuất texture dưới dạng hình ảnh
  7. Nhập FBX vào công cụ trò chơi
  8. Thiết lập texture thủ công
  9. Tạo kết xuất

Với USD, chúng ta có thể đơn giản hóa đáng kể quy trình này và duy trì một quy trình làm việc phần lớn không phá hủy. Quy trình làm việc vẫn rất giống nhau với Blender và Substance là các thành phần chính.

Nhưng vì USD không hoạt động tự nhiên trong thời gian thực giữa các ứng dụng này (chủ yếu là do Blender vẫn còn hỗ trợ USD hạn chế), tôi sẽ sử dụng Nvidia Omniverse để tạo kết nối đó cho chúng ta.

Thông qua Omniverse, tôi có thể truy cập vào một nhánh tương thích với USD hơn của Blender do Nvidia xây dựng. Tôi có thể bật trình kết nối Omniverse cho Substance Painter để nhận ra LifeLink. Và tôi có thể sử dụng USD Composer để thu hẹp khoảng cách giữa các ứng dụng và xem sản phẩm cuối cùng.

Với thiết lập đó, giờ đây chúng ta có thể mở dự án Blender của mình trong nhánh Blender tùy chỉnh. Nếu sau đó chúng ta nhấn N và đi đến phía bên phải ở đây, chúng ta sẽ nhận được tiện ích bổ sung Nucleus cho phép chúng ta xuất cái này dưới dạng tệp USD.

Nếu sau đó chúng ta chuyển đến USD Composer và mở tệp USD đó, chúng ta sẽ nhận được một loại liên kết trực tiếp giữa các ứng dụng. Giờ đây, tôi có thể thực hiện bất kỳ thay đổi nào đối với lưới, xuất lại và có sự thay đổi đó tự động được chọn trong USD Composer.

Mọi thứ còn tuyệt hơn nữa! Sau khi chúng ta nhập mô hình, chúng ta có thể mở Substance Painter, bật trình kết nối Omniverse và đi tới Nhập lưới để tự động nhập đối tượng của chúng ta từ USD Composer vào Substance. Tại thời điểm này, nếu chúng ta thực hiện các thay đổi trong Blender, chúng ta vẫn có thể xuất lại và chọn thay đổi đó trong USD Composer, tệp này tự động liên kết với Substance Painter.

Tuy nhiên, sau khi chúng ta thêm texture bên trong Substance Painter, việc thực hiện lại điều này sẽ xóa các texture đó. Vì vậy, một khi bạn hài lòng, hãy thêm vật liệu của bạn trong Substance Painter và với Life Link được bật, những vật liệu này sẽ tự động bật lên trong USD Composer.

Bất kỳ thay đổi nào bạn thực hiện sau đó đều tự động xuất và cập nhật trong USD Composer. Thực sự, thực sự tuyệt vời!

Đối với tôi, quy trình làm việc này khá là đáng kinh ngạc. Việc có thể thực hiện các thay đổi trong Blender và Substance Painter trong thời gian thực và có tất cả những thay đổi đó tự động hoạt động theo quy trình và phản ánh trong kết xuất cuối cùng là một điều gì đó khác biệt.

Nếu bạn quan tâm đến việc thử mọi thứ mà Nvidia Omniverse cung cấp, bạn có thể tải xuống miễn phí thông qua liên kết trong phần mô tả. Và nếu bạn muốn tìm hiểu thêm về tất cả các trường hợp sử dụng kỹ thuật mà USD và Omniverse cùng nhau cung cấp, bạn cũng có thể tìm thấy một liên kết tải xuống miễn phí khác cũng như liên kết để tham dự các phiên ngày USD mở trực tuyến hoặc trực tiếp tại GTC vào tháng 3.

Tôi thực sự khuyên bạn nên xem qua điều đó vì đây thực sự là tương lai của quy trình làm việc 3D.

Thêm về USD

Ngoài ví dụ thú vị này, USD còn có nhiều điều hơn thế nữa để cung cấp. Và nếu bạn tận dụng tốt khả năng của nó, bạn sẽ trở nên hiệu quả hơn rất nhiều với tư cách là một nghệ sĩ. Vậy nó còn có thể làm gì khác?

Chà, ngoài thực tế là một định dạng tệp phổ quát sẽ giúp cuộc sống của bạn dễ dàng hơn rất nhiều, nó hoàn toàn là tương lai. Kể từ tháng 8 năm 2023, USD đã trở thành một tổ chức phi lợi nhuận chính thức có tên là Alliance of Open USD (AO USD) viết tắt – với Pixar, Apple, Adobe, Autodesk và Nvidia là các thành viên sáng lập.

Tôi nghĩ điều này thực sự cho thấy các công ty này đầu tư như thế nào và họ thực sự coi đây là tương lai của một định dạng tệp có khả năng tương tác – mà mọi người nên có thể sử dụng rất dễ dàng.

Ngoài việc là một định dạng tệp, USD lưu trữ hầu hết mọi thứ – từ đèn và máy ảnh đến bộ nhớ cache mô phỏng và dữ liệu cảnh – trong một cấu trúc dạng lớp gọi là “prim” (viết tắt của primitives – nguyên thủy). Nó chứa tất cả dữ liệu đó để mô tả các cảnh và tài sản phức tạp ở định dạng có thể đọc được bởi một loạt các ứng dụng.

Bây giờ khi biết điều đó, cái tên “Universal Scene Description” thực sự có rất nhiều ý nghĩa!

Nếu bạn đã quen thuộc với bộ sưu tập trong Blender, USD hoạt động tương tự. Bạn có thể lồng bất cứ thứ gì bên trong nhiều bộ sưu tập lồng nhau, với lợi ích bổ sung là USD coi tất cả các lớp này là các instance (thể hiện). Do đó, nó có thể tải và đọc tất cả dữ liệu một cách rất nhanh chóng và được tối ưu hóa.

Điều này hoạt động tương tự như các bộ sưu tập thể hiện trong Blender, điều này rất tốt vì các thể hiện yêu cầu ít tính toán hơn các đối tượng trùng lặp thực tế. Nó cũng rất giống với pre-comping trong After Effects hoặc compounding trong Nuke – về cơ bản bạn nhóm các thứ bên trong các nhóm/lớp lồng nhau, điều này giúp máy tính dễ dàng và nhanh hơn khi làm việc với tệp.

Một ví dụ tuyệt vời về tối ưu hóa này là dự án mẫu USD mới nhất của Nvidia có tên “Da Vinci’s Workshop”. Sử dụng ứng dụng USD Composer của họ (rất phù hợp để xem các dự án USD với ánh sáng thời gian thực), tôi có thể phát lại thư viện 67GB khổng lồ này gồm các tài sản, texture và ánh sáng với hàng triệu đa giác ở tốc độ gần 120 FPS mà không bị giật lag hoặc gặp sự cố nào. Điều này có thể thực hiện được là do cách USD tải các tệp và texture một cách hiệu quả và cực kỳ tối ưu hóa.

Tương tự, đối với hoạt ảnh thường được xuất dưới dạng tệp Alembic, bộ nhớ cache USD hiện nhanh hơn rất nhiều. Các tệp Alembic thường rất lớn, rất không được tối ưu hóa và máy tính của bạn đọc chậm – thường dẫn đến phát lại bị giật. Với USD, việc đạt được FPS ổn định không có vấn đề gì và kích thước tệp nhỏ hơn nhiều.

Nhiều lợi ích hơn

Một tính năng thực sự thú vị khác là bạn có thể truy cập các lớp bên trong dự án USD của mình từ bên ngoài tệp khá dễ dàng. Ví dụ: nếu có một lớp prim chứa dữ liệu rằng một hình cầu có màu xanh lục bên trong tệp USD, bằng cách chỉ cần thay đổi màu đó thành màu đỏ trong một trình chỉnh sửa tương thích với USD như USD Composer, chúng ta có thể thay đổi màu của hình cầu mà không cần mở tệp trong Blender! Điều đó thực sự vô cùng mạnh mẽ.

Mặc dù đó rõ ràng là một ví dụ cơ bản, nhưng nó cho thấy tiềm năng. Một lợi ích lớn khác là USD vẫn cho phép bạn chỉ làm việc trên một lớp duy nhất của một tệp phức tạp trong một phần mềm nhất định. Vì vậy, ngay cả khi tệp của bạn chứa một dự án hoàn chỉnh với máy ảnh, đèn, v.v., bạn vẫn có thể chỉ mở một phần của nó – ví dụ: một mô hình duy nhất – bên trong Substance Painter và chỉ làm việc trên phần đó của dự án mà không ảnh hưởng đến bất kỳ điều gì khác.

Điều này cũng xảy ra nếu nhiều người đang làm việc trên cùng một tệp – một điểm mạnh lớn khác của USD. Mười người có thể làm việc trên cùng một tệp để các thay đổi do nghệ sĩ số một thực hiện sẽ hiển thị ngay lập tức cho nghệ sĩ số hai, cho phép họ điều chỉnh công việc của mình cho phù hợp. Khả năng cộng tác với mọi người từ xa là vô cùng mạnh mẽ.

Tương lai của quy trình làm việc 3D

Có thể nói rằng USD không chỉ đơn thuần là một định dạng tệp. Đó là một nền tảng công nghệ và hệ sinh thái toàn diện mà sứ mệnh của nó thực sự phù hợp với Blender: sự tự do sáng tạo không giới hạn.

USD vẫn đang được phát triển. Giấc mơ là có thật – một định dạng tệp phần mềm phổ quát có thể được sử dụng bởi bất kỳ phần mềm nào trong ngành, có thể chỉnh sửa trong thời gian thực bởi nhiều nghệ sĩ.

Tất cả chúng ta nên biết ơn Pixar đã mở đường cho sự phát triển đáng kinh ngạc này và các công ty như Nvidia và Apple đã đóng góp phần của họ.

Leave a comment

Your email address will not be published. Required fields are marked *