OpenGL
OpenGL (Open Graphics Library) הוא ממשק תכנות יישומים ליצירת תוכנות שמייצרות גרפיקה תלת ממדית ממוחשבת (וגם דו-ממדית). הממשק מורכב מיותר מ־250 קריאות פונקציות שונות שיכולות לשמש לציור של סצנות תלת-ממדיות מורכבות מפרימיטיבים פשוטים. OpenGL פותחה על ידי חברת סיליקון גרפיקס (Silicon Graphics Inc.) בשנת 1992 והיא פופולרית בתעשיית משחקי הווידאו שם היא מתחרה בפלטפורמות של חברת מיקרוסופט המשתמשות ב־Direct3D. שימוש נרחב ב־OpenGL ניתן למצוא בסביבות מציאות מדומה, סימולציות מדעיות, הצגת מידע, סימולטורים מדמי טיסה ופיתוח משחקי מחשב.
מבנה
ל-OpenGL יש שתי מטרות עיקריות:
- לעטוף את ממשק המשתמש עם מאיצי 3D שונים, בעזרת ממשק אחיד
- להסתיר את ההבדלים בין פלטפורמות חומרה שונות
הפעולה הבסיסית של OpenGL היא לקבל סוגי משתנים בסיסיים כמו נקודה, שורה, או פוליגון ולהמיר אותם לפיקסלים (רסטריזציה). המרה זאת נעשית בעזרת מכונת המצבים של OpenGL. רוב הפקודות של OpenGL עוסקות בהמרה זאת, או על ידי שליחת משתנים למכונת המצבים להמרה או בשליטה בקוניפגורציה של עיבוד הנתונים במכונת המצבים. לפני הופעת OpenGL 2.0 כל שלב של מכונת המצבים ביצע פעולה אחת והיו לו אופציות קונפיגורציה מוגבלות. בOpenGL 2.0 יש יותר אופציות שניתנות לתכנות בעזרת GLSL.
ל-OpenGL הייתה השפעה על מאיצי 3D, בכך שהיא עודדה הוספת פיצ'רים שכיום נחשבים לנורמה בתחום.
תיאור קצר של התהליך במכונת המצבים הוא:
- חישוב של הפונקציות שמתארות משטחים, ועקומות אם צריך
- פעולות על קודקודים, טרנספורצמיות שלהם, הארה שלהם בהתאם לתכונותיהם
- הפיכת הנתונים לפיקסלים (רסטריזציה)
- פעולות על חלקים מהתמונה, כמו עדכון ערכים בהתאם להוראות
- שליחת הנתונים אל תוך אוגר המסגרות
יש מאיצים גרפיים שמספקים פיצ'רים מעבר לרשימה זו, אך הם בדרך כלל הרחבה של הרשימה ולא שינוי רדיקלי שלה.