OpenGL
OpenGL (Open Graphics Library) הוא ממשק תכנות יישומים ליצירת תוכנות שמייצרות גרפיקה תלת־ממדית ממוחשבת (וגם דו-ממדית). הממשק מורכב מיותר מ־250 קריאות פונקציות שונות שיכולות לשמש לציור של סצנות תלת-ממדיות מורכבות מצורות פשוטות (פרימיטיבים). OpenGL פותחה במקור על ידי חברת סיליקון גרפיקס (.Silicon Graphics Inc) בשנת 1992, אך כיום המשך הפיתוח הוא בידי Khronos Group. OpenGL פופולרית בתעשיית משחקי המחשב, שם המתחרה העיקרית היא Direct3D המפותחת על ידי חברת מיקרוסופט. שימוש נרחב ב־OpenGL ניתן למצוא בסביבות מציאות מדומה, סימולציות מדעיות, הצגת מידע, סימולטורים, מדמי טיסה ופיתוח משחקי מחשב. מבנהל-OpenGL שתי מטרות עיקריות:
הפעולה הבסיסית של OpenGL היא לקבל סוגי משתנים בסיסיים כמו נקודה, שורה, או פוליגון ולהמיר אותם לפיקסלים (רסטריזציה). המרה זאת נעשית בעזרת מכונת המצבים של OpenGL. רוב הפקודות של OpenGL עוסקות בהמרה זאת, או על ידי שליחת משתנים למכונת המצבים להמרה או בשליטה בתצורה של עיבוד הנתונים במכונת המצבים. לפני הופעת OpenGL 2.0 כל שלב של מכונת המצבים ביצע פעולה אחת והיו לו אפשרויות תצורה מוגבלות. ב-OpenGL 2.0 יש יותר אפשרויות הניתנות לתכנות בעזרת GLSL. דוגמאות לקריאות לפונקציות ב-openGL (שליחת משתנים למכונת המצבים):
glbegin(GL_TRIANGLES); //other modes: GL_POINTS, GL_LINES, GL_QUADS, GL_POLYGON
glVertex3f(x-coordinate, y-coordinate, z-coordinate); //first vertex
glVertex3f(x-coordinate, y-coordinate, z-coordinate); //second vertex
glVertex3f(x-coordinate, y-coordinate, z-coordinate); //third vertex
glEnd();
glLightfv(GL_LIGHT0, GL_DIFFUSE, {R,G,B});
glLightfv(GL_LIGHT0, GL_POSITION, light position);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING); //enable the lighting
glEnable(GL_DEPTH_TEST); //enable depth test
glDepthFunc(<comparison func>); //comparison functions: GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, and GL_ALWAYS
ל-OpenGL הייתה השפעה על מאיצי גרפיקת תלת-ממד, בכך שהיא עודדה הוספת תכונות שכיום נחשבות לנורמה בתחום. תיאור קצר של התהליך במכונת המצבים הוא:
יש מאיצים גרפיים שמספקים תכונות מעבר לרשימה זו, אך הם בדרך כלל הרחבה של הרשימה ולא שינוי מהפכני שלה. ראו גםקישורים חיצוניים
|