AMD מרחיבה את Radeon Cauldron 1.0 SDK לקהילת תכנות המשתמשת ב- C ++ פשוטה

חוּמרָה / AMD מרחיבה את Radeon Cauldron 1.0 SDK לקהילת תכנות המשתמשת ב- C ++ פשוטה 4 דקות קריאה

לאחר בדיקות פנימיות מקיפות ואימוץ מהיר להפליא, AMD מציעה כעת את ערכת פיתוח תוכנה (Radeon Cauldron 1.0) לקהילת התכנות. החברה מבטיחה שהמסגרת לא רק פשוטה מאוד, אלא שהיא גם תכליתית להפליא. במילים אחרות, ה- SDK של קלחת הרדון ניתן לתפוס בקלות למתחילים. יתר על כן, המסגרת גמישה בהרחבה עבור מתכנתים המעוניינים להרחיב אותה באמצעות תכונות חדשות.



AMD מציעה את אחד הפופולריים ביותר שלה מסגרות פיתוח תוכנה להמונים. המהדורה המקיפה והיציבה הראשונה של SDK Radeon Cauldron זמינה כעת למתכנתים. Radeon Cauldron הוא בעצם ספריית מסגרת לאבות טיפוס מהירים. הוא משמש בדגימות ואפקטים של AMD SDK. ה- SDK עובד בצורה חלקה עם ממשקי ה- API של Vulkan או Direct3D 12. AMD עשתה את כל המסגרת זמין להורדה ב- GitHub , המאגר הפופולרי ביותר לתוכנות קוד פתוח שנרכש לאחרונה על ידי מיקרוסופט. מעניין, ל- AMD יש גם העלה GltfSample . האפליקציה בעלת השם המוזר תוכננה, פותחה ונבנתה באמצעות מסגרת קלחת. אגב, כל המשאבים הרלוונטיים ל- SDK Radeon Cauldron זמינים גם ב- GitHub.

מהו Radeon Cauldron SDK וכיצד זה ישפיע על פיתוח תוכנה, אפליקציה או משחק?

Radeon Cauldron הוא למעשה מסגרת שלמה או ערכת פיתוח תוכנה שלמה לאב טיפוס מהיר. זה ישמש בעיקר בדגימות ואפקטים של AMD SDK. כפי שצוין לעיל, הוא יכול לעבוד בצורה אופטימלית עם Vulkan, שהוא ממשק גרפי תלת ממדי ומחשוב תלת ממדי בעל עלות נמוכה ומעולה. יתר על כן, ה- SDK עובד גם עם הגרסה האחרונה של Direct3D, שהיא Direct3D 12.



ה- SDK של Radeon Cauldron שוחרר לראשונה באופן פנימי ב- AMD. למרות שהיה צפוי, המהדורה הראשונית התקבלה ואומצה בצורה יוצאת דופן על ידי צוותי פיתוח התוכנה הפנימיים של AMD. לאחר פרויקט הפיילוט הראשון, AMD אישרה כי אפילו קבוצות משיקות אחרות בחברה החלו לגלות עניין. בסופו של דבר, ה- SDK הפך לאחת המסגרות המועדפות על צוותים שטיפלו בכלים, מנהלי התקנים ואפילו תוכנות והדגמות.



AMD מספקת את Radeon Cauldron 1.0 ב- GPUOpen תחת רישיון קוד פתוח MIT. החברה הדגישה שוב ושוב את קלות הבנת הקוד ואת הקלות להרחיב אותו. במילים אחרות, גם אם מתכנתים מנוסים אינם זמינים, משתמשים חדשים יכולים לפענח במהירות את הרכיבים המרובים ואת הפונקציות האישיות שלהם, כמו גם את התלות. זה אמור לפשט מאוד את תהליך הפיתוח המורכב ולהבטיח שכל המשתמשים יהיו בטוחים ונוחים בעת השימוש בו. יתר על כן, מתכנתים יכולים להאריך את הקוד במהירות וביעילות מבלי לדאוג לפגוע בעבודה בעבר או לשבור משהו בתהליך.



המסגרת מפתיעה וגמישה באופן מפתיע, מבטיחה ל- AMD. הטענות נראות נכונות בעיקר משום שה- SDK משתמש ב C ++ וניל. AMD פיתחה את אותה מטרה ברורה לעקוב אחר פילוסופיית 'תכונה אחת, מחלקה אחת, קובץ אחד'. למותר לציין זאת, פירוש הדבר שמתכנתים אינם צריכים לנווט בקבצים מורכבים ומרובים תוך שהם פשוט מנסים להבין כיצד פועלת יישום או פלטפורמת רשת. AMD הבטיחה ש- SDK של רדון קדרה ייצמד לצורה הפשוטה ביותר של שיעורים. במילים אחרות, בכל מקום אפשרי, רוב השיעורים יישמו את השיטות הבאות:

מחלקה MyTechnique

{



bool OnCreate (...); // יוצר את הצינורות, הגיאומטריה הסטטית, ואתחולים חד פעמיים אחרים

בטל OnDestroy (...);

בטל OnDraw (...) // השתמש במקורות שנוצרו כדי לצייר את הטכניקה

}

ה- Radeon Cauldron SDK מאפשר שתי טכניקות הדרושות לעיבוד דגמי glTF 2.0. בעוד שדרוש אחד להעברת PBR (פיזור מבוסס טיוח), השני נועד למעבר עומק בלבד. כהרחבה, ישנן שתי מחלקות הנקראות GltfPbrPass ו- GltfDepthPass. הנתונים של מודל glTF מחולקים לשלושה קבצים:

  1. GltfCommon, מחלקה API אגנוסטית הטוענת ומטפלת בשינוי ובאנימציה של הסצנה, כולל MyTechnique {bool OnCreate (...); // יוצר את הצינורות, הגיאומטריה הסטטית ושאר התחלות חד פעמיות הריקות OnDestroy (...); בטל OnDraw (...) // השתמש במקורות שנוצרו כדי לצייר את הטכניקה} g.
  2. GltfTexturesAndBuffers, מחלקה הטוענת ומחזיקה את כל המרקמים, מטריצות הסקין ומאגרי הגיאומטריה.
  3. GltfPbrPass ו- GltfDepthPass, שתי מחלקות המשתמשות בשיעורים לעיל כדי לעבד את הסצנה בטכניקות שהוזכרו.

מסגרת הקדירה של ריידון מכילה קוד, גרפני-אגנוסטי ותלוי גרפיקה. מכאן שניתן לפצל את המסגרת לשלושה פרויקטים של Visual Studio:

  1. Framework_DX12: כפי שעולה מהשם, חלק זה נוגע ל- DirectX12. במילים אחרות, הוא מכיל את כל הקוד Direct3D 12.
  2. Framework_VK: חלק זה מכיל את כל קוד ה- Vulkan הרלוונטי.

אגב, יש גם רכיב שלישי, אשר מקובל בשני סוגי הפרויקטים של Visual Studio שהוזכרו לעיל. חלק זה נקרא 'Framework_Common'. המרכיב המשותף מכיל את ההיבטים הבאים:

מבני GLTF

  • קוד טרנספורמציה ואנימציה
  • טוען תמונות
  • טיפול בחלונות
  • מַצלֵמָה

מסגרת קלחת ריידון תומכת בטכניקות לאחר עיבוד כגון פריחה, טשטוש, דגימת הורדה ומיפוי טונים. ה- SDK מציג שני חברי משנה חדשים. אלה שימושיים ביצירת יעדי עיבוד זמניים:

bool OnCreateWindowSizeDependentResources (...) // יוצר יעדי עיבוד זמניים הדרושים להשפעה

בטל OnDestroyWindowSizeDependentResources (...)

מעניין ש- AMD Radeon Cauldron 1.0 SDK שנבדק באופן פנימי מאפשר למתכנתים ליישם דברים גם ברמה נמוכה יותר. באופן מפתיע, אפילו ברמות אלה, הם יכולים להשתמש בכמה מנהלי זיכרון כדי להבטיח שהדברים יתנהלו בצורה חלקה. חלק ממנהלי הזיכרון שעדיין עובדים אפילו ברמה נמוכה יותר הם כדלקמן:

  • StaticBufferPool: רכיב זה מכיל את הנתונים הסטטיים. יתר על כן, הוא כולל גם הקצאת משנה.
  • DynamicBufferRing: זוהי מערכת חיץ מעגלית. מתכנתים יכולים להסתמך על זה למאגרים קבועים.
  • מרקם: מאפשר טעינה של טקסטורות ויצירת יעדי עיבוד. מעניין שמערכת הטקסטורה מאפשרת גם ליצור תצוגות למטרות העיבוד.
  • ShaderCompilerHelper: זהו כלי רב עוצמה המסייע בהרכבת קוד המקור. ShaderCompilerHelper שומר במטמון את הבינאריות. למותר לציין, זה מקטין משמעותית את זמני הטעינה.
  • UploadHeap: כלי זה מאפשר למתכנתים להקצות משנה ממאגר זיכרון המערכת להעלאת נתונים, הכוללים למעשה מרקמים כמו גם מאגרים למאגר זיכרון וידאו.

מכיוון שמדובר ב- SDK בעל קוד פתוח, AMD קוראת למוקדי החוץ המוקדמים לבדוק אותו ולהציע את המשוב שלהם. סביר מאוד להניח כי AMD תנתח את אותו הדבר ותיישם כמה מההצעות לשיפור ה- SDK של Radeon Cauldron.

תגים אמד AMD Navi ריידון