ממשקי API של גרפיקה, כמו OpenGL ו-DirectX, פועלים כגשר בין התוכנה לחומרה הגרפית המשמשת למשחקים. ממשקי API אלה מספקים שיטות סטנדרטיות להצגת גרפיקה דו-ממדית ותלת-ממדית על המסך. הם הפכו בסיסיים לפיתוח משחקים במהלך העשורים האחרונים.
מנועים כמו Unity מציעים בחירה בין ממשקי ה-API הגרפיים שבהם הם משתמשים, אבל איך אתה אמור לבחור את האפשרות המתאימה למשחק שלך? הצטרף אלינו כשאנחנו משווים בין OpenGL ל-DirectX כדי לתת לך מושג איזה מהכלים האלה הוא הטוב ביותר עבורך.
DirectX לעומת OpenGL: סקירת תכונה ראשית
בבסיסם, הן DirectX והן OpenGL חולקות את אותו צינור גרפי, והן כבר שנים רבות. שני ממשקי ה-API משתמשים בנקודות הנקראות קודקודים כדי לבנות פרימיטיבים גרפיים מורכבים. כל קודקוד מאחסן את הקואורדינטות שלו ומידע חשוב אחר. אבל הדרך שבה כל ספרייה משתמשת בקודקודים היא שונה.
הם עשויים לבצע פונקציות דומות, אבל אתה תבחין בהבדל בין OpenGL ו-DirectX אם אתה עובד איתם.
DirectX לעומת OpenGL: היקף API
לפני שנמשיך הרבה יותר, חשוב לציין שבעוד ששניהם ממשקי API גרפיים, ל-OpenGL ול-DirectX יש היקפים שונים. OpenGL הוא API גרפי גזעי, וזה אומר שהוא לא עוסק בשום דבר מלבד גרפיקה דו-ממדית ותלת-ממדית. DirectX, לעומת זאת, הוא אוסף של ממשקי API של גרפיקה, אודיו, רשת וחומרה אחרים שכולם עובדים יחד.
במקרים מסוימים, OpenGL ישתמש ב-DirectX כדי לבצע פונקציות שהוא לא יכול לעשות בעצמו. שאר המאמר הזה יתעלם מההבדל הזה בין שני ממשקי ה-API, תוך התמקדות באלמנטים הגרפיים של כל כלי.
OpenGL לעומת DirectX: פלטפורמות
OpenGL הוא API חינמי המנוהל על ידי חברה ללא מטרות רווח בשם Khronos Group, בעוד DirectX מיוצר על ידי מיקרוסופט. DirectX עובד על Windows ו-Xbox בעיקר, כאשר פלטפורמות אחרות, כמו לינוקס, זוכות לאט לאט לתמיכה. OpenGL הוא חוצה פלטפורמות, מה שהופך אותו לשימוש לפיתוח משחקים במגוון מערכות הפעלה וקונסולות משחקים.
DirectX לעומת OpenGL: משאבי חומרה
DirectX משאיר את ניהול החומרה למפתח, ומעניק לך את היכולת להקצות משאבים ביעילות, כפי שאתה צריך אותם. OpenGL מטפל בניהול חומרה, אבל זה יכול לבוא עם יתרונות משלו, מכיוון שאתה לא צריך לדאוג לגבי ניהול משאבים בעצמך.
DirectX לעומת OpenGL: תיעוד
גישה לתיעוד מפורט יכולה להקל בהרבה על פיתוח משחקים בעבודה עם ממשקי API. DirectX ו-OpenGL מציעים תיעוד מתעדכן באופן קבוע וקהילות מפתחים מועילות. שני ממשקי ה-API הללו מקבלים עדכונים שנתיים גדולים כדי להבטיח שהם מציעים את התכונות הטובות ביותר הזמינות.
שימוש ב-OpenGL לעומת DirectX לפיתוח משחקים
מפתחים יצרו הרבה משחקים יפים ומותאמים היטב בשוק המודרני באמצעות OpenGL וגם DirectX. ישנם מספר דברים שעליך לקחת בחשבון בעת בחירת ממשק API לגרפיקה דו-ממדית/תלת-ממדית. חלק מהמפתחים פשוט יסתמכו על הכלי שהם הכי נוחים איתו.
OpenGL או DirectX: פלטפורמות
כבר נגענו בפלטפורמות, אבל זה שיקול מכריע למפתחים. אם אתה רוצה ליצור משחקים עבור Nintendo Switch, Playstation 4 או Linux, תצטרך לעבוד עם OpenGL או API אחר עם תמיכה בהם. DirectX נוצר עבור Windows ו-Xbox ויש לו תאימות מוגבלת למערכות אחרות.
OpenGL או DirectX: תאימות מנוע
רוב מפתחי המשחקים משתמשים במנועים כמו Unity ו-Unreal כדי ליצור את המשחקים שלהם, בימינו. שני המנועים הללו תומכים ב-OpenGL וב-DirectX, כמו מנועי פיתוח משחקים חוצי-פלטפורמות אחרים.
OpenGL או DirectX: קלות שימוש
יש שיטענו שקל יותר לעבוד עם OpenGL מאשר עם DirectX. לצד משאבי החומרה, OpenGL מטפל רק בגרפיקה, מה שהופך אותה לפשוטה יותר מטבעה. העובדה שזה עובד על פני יותר פלטפורמות גם מקלה על שחרור משחקים עם הדרישה הזו.
קלות השימוש ב-API של גרפיקה אינה חשובה כמו פעם למפתחי משחקים. עם מנועים כמו Unity בהתממשקות עם ממשקי API גרפיים מאחורי הקלעים, נדרשת רק לחיצת כפתור כדי להחליף את ה-API שבו אתה משתמש. אלא אם כן אתה יוצר משחק מאפס, לא סביר שתבחין בהבדל בנוחות השימוש בכל API.
OpenGL או DirectX: תכונות גרפיקה
אלא אם כן אתה מקרה שולי, לא סביר שתראה הבדל עצום בתכונות הזמינות בין אלה ממשקי API. שניהם תומכים ביכולות הכרטיס הגרפי שלך, וזה ישתנה רק אם מעבדי GPU יראו שינויים דרמטיים ב- עתיד.
OpenGL או DirectX: ביצועי משחק
יש ויכוח רב בין מפתחים לגבי הביצועים של ממשקי API אלה. קשה לדמיין ש-OpenGL או ל-DirectX יש הבדלי ביצועים משמעותיים, אם כי הטענה ש-OpenGL חלקה ויעילה יותר היא נפוצה באינטרנט.
הדרך היחידה לגלות אילו מבין ממשקי ה-API הללו מניבים את הביצועים הטובים ביותר היא באמצעות בדיקות. הודות לתאימות של Unity לשני ממשקי ה-API, אנו יכולים ליצור פרויקט ולבדוק משחק לדוגמה עם שני ממשקי ה-API. ליצור רף ביצועים.
בדיקות אלו בוצעו עם גרפיקה דו-ממדית וגם עם תלת-ממד כדי להבטיח שהצינורות השונים שלהם אינם גורם משמעותי. כל בדיקה נמשכת 120 שניות של משחק רגיל, והפריים לשנייה נמדדים כדי לקבוע ביצועים. כל הבדיקות נערכו באותו PC.
מבחן ביצועים בתלת מימד: Unity Carting Microgame
Unity Carting Microgame הוא תבנית חינמית המכילה את כל מה שאתה צריך כדי לבנות משחק מירוצים פשוט. זה מגיע עם הדרכות, אבל אנחנו מתעניינים יותר במשחק עצמו. בנינו את Carting Microgame עם OpenGL ו-DirectX כדי להשוות את הביצועים שלהם והתוצאות היו כדלקמן:
הנמוך ביותר | הֲכִי גָבוֹהַ | מְמוּצָע | |
---|---|---|---|
DirectX | 331 | 848 | 365.05 |
OpenGL | 247 | 819 | 283.7 |
DirectX עלה על OpenGL ב-benchmark התלת-ממד שלנו, והשיגה קצבי פריימים מרשימים לאורך כל הדרך. התוצאות של OpenGL עדיין ניתנות להפעלה.
מבחן ביצועים דו-ממדיים: Unity Platformer Microgame
בדומה ל-Carting Microgame, Unity Platformer Microgame הוא חינמי ועמוס בכלי למידה מעולים. כצפוי, משחק הדו-ממד במבחנים שלנו מתפקד טוב יותר מהמשחק התלת-ממדי, אבל אתה יכול להעריך את התוצאות בעצמך.
הנמוך ביותר | הֲכִי גָבוֹהַ | מְמוּצָע | |
---|---|---|---|
DirectX | 599 | 850 | 767.367 |
OpenGL | 302 | 604 | 515.417 |
כפי שניתן לראות מהתוצאות לעיל, DirectX השיגה קצב פריימים ממוצע גבוה בהרבה בבדיקות שלנו. למרות שההבדל עשוי להיראות דרמטי, שתי התוצאות ניתנות להפעלה.
OpenGL או DirectX 11: מסקנת ביצועים
בעוד שאנשים רבים אומרים ש-OpenGL מתפקד טוב יותר מ-DirectX, ה-API האחרון השיג תוצאות טובות יותר בשני המדדים שלנו. זה רחוק מלהיות מכריע, כאשר גורמים רבים משחקים תפקיד בהכתבת ביצועי המשחק, במיוחד כשהם הופכים מורכבים יותר.
DirectX או OpenGL: באיזה אתה צריך להשתמש לפיתוח משחקים?
בחירת ממשק API הגרפי המתאים תלויה במספר גורמים. DirectX הוא ה-API הגרפי הנפוץ ביותר. מפתחי משחקים רבים יוצרים את המשחקים שלהם עבור Windows ו-Xbox לפני העברתם ל-OpenGL עבור פלטפורמות אחרות. אם אתה מפרסם משחק אך ורק מחוץ ל-Windows ו-Xbox, אתה עשוי להפיק תועלת מהשימוש ב-OpenGL מההתחלה.
ביצועים הם גם גורם שיש לקחת בחשבון, אם כי הבדיקות שלנו מראות שזה די זניח בעת שימוש בכלי מנוע כמו Unity. למעשה, ההבדלים בין שני ממשקי ה-API הגרפיים האלה חשובים רק למי שמחפש תכונות נישה ספציפיות.