USD (Universal Scene Description), או תיאור סצנה אוניברסלי, הוא פורמט קובץ שפותח על ידי פיקסאר להחלפת סצנות גרפיקה תלת-ממדית בין יישומי יצירת תוכן דיגיטלי. זהו פורמט קובץ קוד פתוח וניתן להרחבה, שיכול לאחסן מידע על גיאומטריה תלת-ממדית, הצללה, תאורה, פיזיקה ותחומים אחרים הקשורים לגרפיקה. הוא גם יכול להרכיב ולעקוף נתונים ממקורות מרובים, וליצור גרף סצנה יחיד שניתן לערוך באופן לא הרסני.
USD נמצא בשימוש בתעשיות רבות, כגון עיצוב, אדריכלות, אנימציה ומשחקים, ונתמך על ידי יישומי תוכנה רבים, כגון בלנדר, סינמה 4D, הודיני, מאיה ו-SceneKit של אפל. USD הוא גם הליבה של צינור הגרפיקה התלת-ממדית של פיקסאר והבסיס לפלטפורמת Omniverse של Nvidia.
מפרט תיאור הסצנה האוניברסלי (USD) משתמש במספר פורמטים של קבצים:
- .usd – יכול להיות מקודד ב-ASCII או בינארי
- .usda – מקודד ב-ASCII
- .usdc – מקודד בינארי
- .usdz – קובץ חבילה בפורמט של ארכיון zip ללא דחיסה ולא מוצפן. עשוי להכיל קבצי .usd, .usda, .usdc, .png, .jpeg, .m4a, .mp3 ו-.wav.
בלנדר (או כל תוכנת תלת מימד אחרת) מקלה על החיים בכך שהיא מאפשרת לך לבצע משימות רבות רק באמצעות הממשק שלה, אבל ברגע שאתה מתחיל להכניס תוכנות אחרות לצינור העבודה שלך, בעיות מתחילות לצוץ משמאל ומימין. אז בואו נדבר על הבעיות הגדולות ביותר שאתה כנראה כבר נתקל בהן היום וכיצד פיקסאר יצרה את הפתרון להתגבר עליהן עד אינסוף ומעבר לו.
הבעיה
אם אי פעם מרקמתם מודל ב-Substance, ייבאתם את העבודה שלכם ל-Unreal, או שניסיתם לשתף פרויקט עם מישהו שעובד בתוכנה אחרת, כנראה שהבנתם כמה זה יכול להיות מעצבן. הצורך להתמודד עם סוגי קבצים שונים, זרימות עבודה נכונות לייצוא עבור כל תוכנה בנפרד, ולאבד נתונים יקרים בתהליך, יכול לגרום לך להרגיש שאתה חובט בראש בקיר בכוונה שוב ושוב.
ותאמינו לי כשאני אומר שזה משהו שכל אמני התלת מימד בכל מקום חווים – בין אם אתם עובדים כיוצרים עצמאיים עם צינור עבודה מותאם אישית משלכם או באולפן גדול כמו פיקסאר שצריך להתאים לאילוצי צינור עבודה קפדניים כדי לשמור על זרימת עבודה תקינה עבור כל 1,232 האנשים האחרים שעובדים שם. הבעיה נשארת זהה.
למה זה קורה
זה הגיוני בכל זאת, נכון? כל תוכנה משתמשת בסוג קובץ קנייני שמתאים לצרכים שלה. אז קובץ מבלנדר, למשל, קודד לעבוד בבלנדר אבל לא ב-Substance. ברור שבחברה, כל אמן דורש שקובץ יהיה תואם לכלי הבחירה שלו כדי להקל ולפעמים אפילו לאפשר להמשיך לעבוד על פרויקט.
זו הסיבה שהצורך לייצא לסוג קובץ אוניברסלי יותר כמו FBX או OBJ הוא חובה כשעוברים לתוכנה אחרת או מעבירים את הפרויקט שלך לאדם הבא. אבל גם לסוגי הקבצים האלה יש הרבה מגבלות, כמו חוסר היכולת לאחסן כראוי סימולציות, תאורה והיבטים רבים אחרים של פרויקטי בלנדר שלך.
הכירו את USD
אז מה התשובה לבעיה הזו? Universal Scene Description (USD) בקיצור! USD, שפורסם לראשונה כתוכנת קוד פתוח על ידי פיקסאר בשנת 2016 כצינור הליבה החדש שלהם, היה בעיקר דרך עבור האמנים שלהם להקל על העברת נתונים בינם לבין עצמם לבין הכלים שבהם הם משתמשים.
מאז שחרורו, USD עובר כל הזמן שינויים ושיפורים, וזה נפוץ עבור תוכנות קוד פתוח בדיוק כמו בלנדר, שגם היא מתעדכנת ומתרחבת באופן עקבי.
מה זה USD?
USD הוא הרבה דברים ואם אני אצלול ממש לעומק לתוכו, זה יכול להיות דבר מאוד טכני ומסובך לתאר. אבל אם אני אנסח את זה בפשטות, USD היא דרך לגרום ליישומים כמו בלנדר, Unreal, הודיני, Substance, מאיה, Nvidia Omniverse ועוד רבים אחרים לדבר ולהבין זה את זה.
בתעשיית המחשבים יש למעשה מילה מהודרת לזה – אינטרואופרביליות. קצת קשה להגיד! עם זאת, למרות כמה שזה נשמע מפואר, זה לא כל כך מסובך כמו שאתה עשוי לחשוב. אתה יכול להתחיל להשתמש בו עוד היום במחשב שלך או אפילו עם כמה חברים או עמיתים לעבודה ברחבי העולם.
מה שונה ב-USD
באופן מסורתי, צינור עבודה הוא דבר חד-כיווני מאוד שבו כל אדם זוכה לעבוד על משהו רק לאחר שהאדם הקודם סיים. או עבורך באופן אישי, אתה יכול לעבור רק לשלב הבא בתהליך, כמו ריקם, אם המידול הסתיים לחלוטין.
אתה יכול להשוות את זה לאפיית עוגה – כשאתה בונה ויוצר את העוגה הזו, אתה צריך לסיים כל שלב לפני שתוכל להתחיל את הבא. אתה לא יכול לאפות את העוגה לפני שאתה מערבב את הבצק, ואתה לא יכול לבנות אותה לפני שאתה אופה את העוגות בתנור. כל שלב תלוי בשלב הקודם שהושלם.
חשוב מכך, ברגע שאתה שם את הציפוי והמילוי או מחליט שהספוג צריך להיות שוקולד, אין דרך חזרה. אתה לא יכול לבטל את אפיית העוגה, לשנות את הטעם לווניל או להוריד את הציפוי. וזה מה שאנחנו קוראים לו זרימת עבודה הרסנית.
USD לעומת זאת, הוא יותר כמו לגו. כל קובייה מייצגת חלק מסצנת תלת מימד – דמויות, אובייקטים, סביבות, מה שזה לא יהיה – ואתה יכול להרכיב, לפרק ולשנות את הקוביות האלה באופן עצמאי.
בצינור עבודה מסורתי, שינוי קובייה אחת יצריך התאמה של שאר המבנה. אבל עם USD ניתן לעבוד על כל קובייה בנפרד ואני יכול פשוט לשנות קובייה אחת לצבע אחר למשל, בלי הצורך לבנות מחדש את כל המודל.
זוהי גישה לא הרסנית המאפשרת ניסוי וטעייה וזרימות עבודה שיתופיות מבלי להיתקע על ידי מגבלות צינור העבודה.
המטרה של USD
המטרה בכל זה עם USD היא ליצור דרך להעביר נתונים בין יישומים באופן חופשי, לתת לאמנים וצוותים את החופש להתמקד ביצירה ולא בייצוא ולהיתקע בהמתנה זה לזה כדי להיות מסוגלים להמשיך לעבוד. אמנים לא צריכים להתחיל מחדש אם צוות הקונספט מחליט לשנות דברים בהמשך הדרך. ולא צריכות להיות בעיות עם פורמטים של קבצים שמגיעים מתוכנות אחרות שלא עובדות בתוכנה שבחרת.
ברמת השירות, זה מה ש-USD נראה שהוא – פורמט קובץ אינטרואופרבילי מאוד שניתן להחלפה בקלות בין תוכנות שונות. ולהגינות, זה מה שזה יהיה עבור רוב משתמשי בלנדר, מכיוון שרבים מאיתנו נוטים לעבוד לבד. אבל USD הוא יותר מסתם סוג קובץ…
זוהי דרך להרכיב ולארגן כל מספר של נכסים לתוך סטים וירטואליים, סצנות, שוטים ועולמות – להשתמש בהם מיישום ליישום ולערוך אותם באופן לא הרסני לעתים קרובות בזמן אמת.
איך לעבוד עם USD
אז בואו נסתכל איך אנחנו יכולים לעבוד עם USD בזרימת עבודה של בלנדר. בצורתו הבסיסית ביותר, USD היה אפשרות ייצוא בבלנדר מאז גרסה 3.6. אז אם יש לך קובץ שאתה עובד עליו ורוצה לשמור אותו כקובץ USD, אתה יכול ללכת לקובץ > ייצוא > Universal Scene Description וזה ייתן לך חלון הנחיה לשמור את הקובץ.
יש לו לא מעט אפשרויות אבל העיקריות שצריך לשים לב אליהן הן:
- בחירה בלבד – יכלול רק אובייקטים נבחרים בייצוא שלך
- אנימציה ושיער – יכלול/יחריג נתוני אנימציה וחלקיקי שיער עבור האובייקטים שלך
הנה דוגמה נהדרת לאופן שבו USD עובד. זהו קובץ מספריית הדוגמאות של USD של Nvidia שנוצר במגוון תוכנות כמו 3ds Max ו-Substance. אם אתה פותח את זה בבלנדר על ידי ייבוא, זה עובד כמעט 100% באופן מיידי!
כפי שאתה יכול לראות, הוא מכיל את כל הנתונים כולל אורות, עומק שדה, מצלמה, חומרים ועוד הרבה יותר. הדבר היחיד שלא מיוצא כראוי הוא תאורת ה-HDRI שאנחנו צריכים להגדיר בעצמנו. אבל זה מדהים לחשוב שזה נראה כמעט זהה בתוך Arnold renderer של 3DS Max, ופשוט יובא לבלנדר ועובד באותה מידה באמצעות סוג קובץ יחיד!
יש לו היררכיה נכונה, חומרים, ובעצם הכל מוגדר. זה ממש, ממש מגניב! בכל מקרה, זה מראה איך USD עובד בין יישומים שונים ושהוא מתפקד כפורמט קובץ אינטרואופרבילי.
דוגמה מעשית ל-USD
אבל בואו נסתכל על דוגמה מעשית יותר. עבור דוגמת צינור עבודה זו אני אשתמש בזרימת עבודה טיפוסית של שימוש בבלנדר כדי למדל אובייקט למשחק.
צינור העבודה המסורתי ייראה בערך כך:
- יצירת מודל בבלנדר
- פריסת UV למודל
- ייצוא כ-FBX מכיוון ש-Painter לא יכולה להשתמש בקבצי בלנדר
- ייבוא FBX ל-Substance Painter
- הוספת חומרים ב-Substance
- ייצוא טקסטורות כתמונות
- ייבוא FBX למנוע משחק
- הגדרת טקסטורות באופן ידני
- יצירת רינדורים
עם USD אנחנו יכולים לפשט משמעותית את התהליך הזה ולשמור על זרימת עבודה לא הרסנית במידה רבה. צינור העבודה נשאר דומה מאוד כאשר בלנדר ו-Substance הם המרכיבים העיקריים.
אבל מכיוון ש-USD לא עובד באופן טבעי בזמן אמת בין האפליקציות האלה (בעיקר בגלל שלבלנדר עדיין יש תמיכה מוגבלת ב-USD), אני אשתמש ב-Nvidia Omniverse כדי ליצור את החיבור הזה עבורנו.
באמצעות Omniverse אני יכול לקבל גישה לענף תואם USD יותר של בלנדר שנבנה על ידי Nvidia. אני יכול להפעיל את מחבר Omniverse עבור Substance Painter כדי לממש את LifeLink. ואני יכול להשתמש ב-USD Composer כדי לגשר על הפער בין האפליקציות ולצפות במוצר הסופי.
עם ההגדרה הזו, אנחנו יכולים כעת לפתוח את פרויקט הבלנדר שלנו בענף הבלנדר המותאם אישית. אם נלחץ על N ואז נלך לצד ימין כאן, נקבל את התוסף Nucleus שמאפשר לנו לייצא את זה כקובץ USD.
אם נלך ל-USD Composer ונפתח את קובץ ה-USD הזה, נקבל מעין קישור חי בין האפליקציות. אני יכול עכשיו לבצע כל שינוי ברשת, לייצא אותה מחדש ושהדבר ייקלט אוטומטית בתוך USD Composer.
זה משתפר! ברגע שאנחנו מייבאים את המודל, אנחנו יכולים לפתוח את Substance Painter, להפעיל את מחבר Omniverse וללכת לייבוא רשת כדי לייבא אוטומטית את האובייקט שלנו מ-USD Composer ל-Substance. בשלב זה אם אנחנו מבצעים שינויים בבלנדר, אנחנו עדיין יכולים לייצא מחדש ולקלוט את זה ב-USD Composer, שמתקשר אוטומטית ל-Substance Painter.
עם זאת, ברגע שאנחנו מוסיפים טקסטורות בתוך Substance Painter, לעשות זאת שוב יסיר את הטקסטורות האלה. אז ברגע שאתה מרוצה, הוסף את החומרים שלך ב-Substance Painter, ועם Life Link מופעל, הם יקפצו אוטומטית ב-USD Composer.
כל שינוי שתבצע אחר כך מיוצא ומתעדכן אוטומטית ב-USD Composer. ממש, ממש מגניב!
עבורי זרימת העבודה הזו היא די מדהימה. היכולת לבצע שינויים בבלנדר וב-Substance Painter בזמן אמת וכל זה לעבוד אוטומטית בהמשך ולהשתקף ברינדור הסופי זה משהו אחר.
אם אתה מעוניין לנסות את כל מה שיש ל-Nvidia Omniverse להציע, אתה יכול להוריד אותו בחינם דרך הקישור בתיאור. ואם אתה רוצה ללמוד עוד על כל מקרי השימוש הטכניים ש-USD ו-Omniverse מספקים יחד, אתה יכול למצוא קישור הורדה חינם נוסף לזה וגם קישור להשתתף בימי ה-USD הפתוחים באופן וירטואלי או באופן אישי ב-GTC במרץ.
אני ממש ממליץ לבדוק את זה כי זה באמת העתיד של זרימות עבודה בתלת מימד.
עוד על USD
מלבד הדוגמה המהנה הזו, ל-USD יש הרבה יותר מה להציע. ואם תעשה שימוש טוב ביכולות שלו, תהפוך ליעיל הרבה יותר כאמן. אז מה עוד הוא יכול לעשות?
ובכן, מלבד העובדה שפורמט קובץ אוניברסלי יקל על החיים שלך בהרבה, זה בהחלט העתיד. מאז אוגוסט 2023, USD הפך לארגון רשמי ללא מטרות רווח בשם הברית של Open USD (AO USD) בקיצור – עם פיקסאר, אפל, אדובי, אוטודסק ו-Nvidia כחברים מייסדים.
אני חושב שזה באמת מראה עד כמה החברות האלה משקיעות ואיך הן באמת רואות את זה כעתיד של פורמט קובץ אינטרואופרבילי – שכולם צריכים להיות מסוגלים להשתמש בו בקלות רבה.
מלבד היותו פורמט קובץ, USD מאחסן כמעט הכל – מאורות ומצלמות ועד מטמוני סימולציה ונתוני סצנה – במבנה דמוי שכבות בשם "פרימס" (קיצור של פרימיטיבים). הוא מכיל את כל הנתונים האלה כדי לתאר סצנות ונכסים מורכבים בפורמט שניתן לקריאה על ידי מגוון רחב של יישומים.
עכשיו כשאנחנו יודעים את זה, השם "Universal Scene Description" בעצם מאוד הגיוני!
אם אתה מכיר אוספים בבלנדר, USD עובד באופן דומה. אתה יכול לקנן כל דבר בתוך אוספים מקוננים מרובים, עם היתרון הנוסף ש-USD מתייחס לכל השכבות האלה כמופעים. לכן הוא מסוגל לטעון ולקרוא את כל הנתונים במהירות רבה בצורה אופטימלית.
זה עובד באופן דומה לאוספים של מופעים בבלנדר, וזה טוב כי מופעים דורשים פחות מחשוב מאשר אובייקטים משוכפלים בפועל. זה גם דומה מאוד לקומפוזיציה מוקדמת ב-After Effects או לקומפאונדינג ב-Nuke – אתה בעצם מקבץ דברים בתוך קבוצות/שכבות מקוננות, מה שמקל ומאיץ על המחשב לעבוד עם הקובץ.
דוגמה מצוינת לאופטימיזציה הזו היא פרויקט הדוגמה החדש ביותר של USD של Nvidia בשם "הסדנה של דה וינצ'י". באמצעות אפליקציית USD Composer שלהם (שהיא מושלמת לצפייה בפרויקטי USD עם תאורה בזמן אמת), אני יכול להפעיל מחדש את ספריית הענק הזו בגודל 67GB של נכסים, טקסטורות ואורות עם מיליוני פוליגונים בקצב קרוב ל-120 FPS ללא כל השהיה או בעיות. זה אפשרי בגלל כמה ש-USD טוען ביעילות את הקבצים והטקסטורות בצורה אופטימלית במיוחד.
באופן דומה, עבור אנימציות שנהגו להיות מיוצאות כקבצי Alembic, אחסון במטמון USD הוא עכשיו הרבה יותר מהיר. קבצי Alembic הם בדרך כלל עצומים, לא אופטימליים במיוחד ונקראים לאט על ידי המחשב שלך – בדרך כלל גורמים להפעלה מקוטעת. עם USD, השגת FPS יציב אינה בעיה כלל וגודל הקובץ קטן בהרבה.
יתרונות נוספים
תכונה מגניבה נוספת היא שאתה יכול לגשת לשכבות בתוך פרויקט ה-USD שלך מבחוץ בקלות רבה. לדוגמה, אם יש שכבת prim המכילה את הנתונים שכדור הוא ירוק בתוך קובץ USD, על ידי שינוי פשוט של הצבע הזה לאדום בעורך תואם USD כמו USD Composer, אנחנו יכולים לשנות את צבע הכדור בלי לפתוח את הקובץ בבלנדר בכלל! זה כוח עצום.
למרות שזו כמובן דוגמה בסיסית, היא מראה את הפוטנציאל. יתרון מרכזי נוסף הוא שUSD עדיין מאפשר לך לעבוד רק על שכבה אחת של קובץ מורכב בתוכנה מסוימת. אז גם אם הקובץ שלך מכיל פרויקט שלם עם מצלמות, אורות וכו', אתה עדיין יכול לפתוח רק חלק אחד ממנו – למשל מודל בודד – בתוך Substance Painter, ולעבוד רק על החלק הזה של הפרויקט בלי להשפיע על שום דבר אחר.
זה נכון גם אם אנשים רבים עובדים על אותו קובץ – חוזקה מרכזית נוספת של USD. עשרה אנשים יכולים לעבוד על אותו קובץ כך ששינויים שבוצעו על ידי אמן מספר אחת נראים מיד לאמן מספר שתיים, מה שמאפשר להם להתאים את עבודתם בהתאם. היכולת לשתף פעולה עם אנשים מרחוק היא עוצמתית להפליא.
העתיד של צינורות עבודה בתלת מימד
בטוח לומר ש-USD הוא הרבה יותר מסתם פורמט קובץ. זוהי פלטפורמת טכנולוגיה ומערכת אקולוגית מקיפה שבמשימתה באמת מתיישבת עם בלנדר: החופש ליצור ללא מגבלות.
USD עדיין נמצא בפיתוח. החלום אמיתי – פורמט קובץ תוכנה אוניברסלי שניתן לשימוש על ידי כל תוכנה בתעשייה, ניתן לעריכה בזמן אמת על ידי אמנים מרובים.
כולנו צריכים להיות אסירי תודה לפיקסאר על שסללה את הדרך עם הפיתוח המדהים הזה, ולחברות כמו Nvidia ואפל שתרמו את חלקן.