ממשק חדש – טכנולוגיות חדשות
כעת נתייחס למעבד החדש שמשולב בתוך יחידת העיבוד המאוחדת עליה דיברנו עד כה. מעבר למעבדי ה-Pixel וה-Vertex, נוסף הפעם גם מעבד חדש בשם מעבד גיאומטרי, שקל מאוד להבין מה שימושו העיקרי..
מעבדים גיאומטריים
![]() |
![]() |
מעבדים גאומטריים, או כפי שהם נקראים באנגלית Geometry Shaders, הינם מנגנון עיבוד גראפי חדש שמציגה NVIDIA. מדובר ביכולת של המעבד הגרפי לבצע מניפולציות על הצורות שהוא מתבקש לעבד, כאשר החידוש בכך הוא שהמעבד הגראפי (ללא התערבות של המעבד הראשי או המשתמש) מסוגל לייצר בעצמו מודלים תלת מימדיים ולשנות מודלים קיימים.
יחידת העיבוד הגאומטרית פועלת רמה אחת מעל מעבדי הקודקודים ומתעסקת בצורות גדולות יותר כגון קווים, משולשים, צורות מלאות ונקודות. בעוד שמעבד הקודקודים מסוגל "להזיז" נקודות בלבד, המעבד הגאומטרי יכול ליצור קודקודים חדשים ולכן לשנות את הצורה בזמן אמת. אתם בוודאי שואלים את עצמכם, בשביל מה זה טוב? ובכן, התשובה היא שהדבר פוטר את המעבד הראשי מלבצע חישובים רבים בנוגע לפיזיקה של גוף מסוים, שכן עכשיו כל המידע הזה נתון בידי המעבד הגרפי. אם ניקח לדוגמה דשא או שיער (אלמנט החוזר הרבה במשחקים) המוצג על גבי המסך, על מנת לגרום לו לנוע בהתאם לחוקי הפיזיקה כאשר נושבת רוח ומזיזה אותו (למשל), יש צורך לתאם את שינוי התנועה עם המעבד הראשי המחשב את השינויים הדרושים למיקום כל נקודה ונקודה.
כעת, בעזרת המעבדים הגאומטריים, כל התהליך הנ"ל מתבצע בתוך המעבד הגראפי ללא צורך לחכות שהמעבד הראשי יסיים את חישוביו. יתרה מזאת, המעבד הגאומטרי יכול לבצע שינוי אובייקטים באופן אקראי כדי ליצור גופים בעלי צורה משתנה, כפי שניתן לראות בתמונות שלהלן.
Stream Output
כפי שציינו, המעבדים הגאומטריים יכולים לחסוך עבודה למעבד הראשי ולקצר בכך תהליכי עיבוד ותצוגה. ה-Stream Output מקנה אפשרות למידע המעובד במעבדים הגיאומטריים (או במעבדי ה-Vertex במידה והמעבדים הגיאומטריים אינם מנוצלים) להיות מועבר לזיכרון ולאחר מכן לראשיתו של צינור העיבוד הנראה בתמונה (הכוונה בצינור עיבוד זה היא זרימה שוטפת של מידע בין כל רכיביו) הנראה בתמונה בכדי לעבור עיבוד מחודש.
העברת מידע שוטף בצורה שכזו מאפשרת עיבוד גיאומטרי מורכב יותר (למשל שכפול של עץ שוב ושוב ליצירת יער), חישובי תאורה מתקדמים והדמיות פיזיקליות מעורבות באמצעות המעבד הגרפי, בהתערבות מינימאלית מצד המעבד הראשי.
![]() |
Shader Model 4.0
ממשק ה-DirectX 10 החדש מציג בפנינו את מודל ה-Shader החדש ובו מספר חידושים עיקריים:
- ביצוע מתוכנת וחדיש שמאפשר ניצול מלא של מעבדי ה-Shaders עבור כל צורת עיבוד, פרימיטיבית ככל שתהיה.
- טכנולוגיית איחוד חדישה אשר מציגה סט של הוראות מאוחדות ומשאבים משותפים דרך שלושת המעבדים העיקריים – Vertex, Pixel ומעבד הגאומטריה.
- משאבי Shader משופרים ברמה גבוהה.
אם נשווה לרגע את ה-DX10 לעומת הממשק הקודם, ה-DX9, נוכל לומר כי השיפור הוא רב, שכן הממשק החדש מציע שיפור של מאות מונים במשאבים הזמינים עבורו. המשאבים הבולטים ביותר ששופרו בין שני הממשקים הם מקומות האחסון הזמניים במאגרים (32 ב-DX9 לעומת 4092 ב-DX10) ומספר מקומות האחסון הכללי במאגרים (256 ב-DX9 לעומת 65,536 ב-DX10 – בפועל קיימים 16 מאגרים בעלי 4096 מקומות אחסון כל אחד). כל אלו מאפשרים תכנות מורכב יותר תוך שמירה על נוחות מירבית למתכנת – וגרפיקה ריאליסטית יותר עבור המשתמש.
אחד המאפיינים השכיחים בשימוש ב-DirectX 9 היה עיבוד מטרות רבות, שכן הממשק אפשר למעבד ה-Shader לפלוט 4 תוצאות של רינדורים ייחודיים. הדבר התבטא ברינדור יעיל של 4 אפשרויות של סצינה מסוימת, בתהליך עיבוד יחיד.
לעומת זאת, ממשק ה-DirectX 10 לוקח את הנושא צעד קדימה ומאפשר לעבד 8 תוצאות אפשריות בתהליך בודד. הדבר מעלה בצורה ניכרת את מורכבות מעבדי ה-Shaders שיכולים להיות מנוצלים עבור פריים בודד.