גרפיקה ממוחשבת

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
Merge-arrows-3.svg מתקיים דיון בו מוצע לאחד ערך זה עם הערך Computer-generated Imagery.
אם אין התנגדויות, ניתן לאחד את הערכים שבוע לאחר הצבת התבנית.
תמונת מסך של תוכנת בלנדר לעיצוב תלת ממד

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

לתחום יישומים רבים ובהם תכנון בעזרת מחשב, אנימציה ממוחשבת, מציאות מדומה, משחקי מחשב ובתעשיית הקולנוע.

שיטות ייצוג נפוצות[עריכת קוד מקור | עריכה]

השיטות הנפוצות לייצוג התוכן החזותי מתחלקות לייצוג על ידי תמונת מפת סיביות וייצוג בצורה ווקטורית-גאומטרית. האופן הראשון נפוץ יותר לייצוג דו ממדי והשני גם לדו ממדי וגם לייצוג תוכן חזותי תלת ממדי. ייצוג ווקטורי מבוסס על גאומטריה אנליטית ובו הדיוק אינו מוגבל על ידי התמונה הסופית אלא אך ורק על ידי יכולתו של המחשב לייצג ולחשב בנקודה צפה. בייצוג זה מקובל הייצוג הפרמטרי. על ידי פרמטר אחד, לדוגמה, ניתן לתאר עקום (במישור, במרחב ואף בממדים גבוהים יותר). וע"י שני פרמטרים משטח. גוף במרחב ניתן להגדיר על ידי אוסף משטחים התוחמים אותו באופן מושלם כך שמוגדר מתמטית לכל נקודה במרחב אם היא נמצאת בתוך הגוף, מחוצה לו, או על פני המשטחים התוחמים אותו, כלומר על פני הגבול שלו.

מייצוג דיגיטאלי לתצוגה חזותית[עריכת קוד מקור | עריכה]

אחד הנושאים בהם המימוש נמצא בהתקדמות אינטנסיבית ומתמדת הוא יכולת המחשב להביא ייצוג דיגיטאלי של גופים וצורות לידי תצוגה חזותית ב"זמן אמיתי". המטרה הטיפוסית היא לאפשר למשתמש/ת לחזות בזירה (scene) תלת ממדית המאוחסנת במחשב בצורה דיגיטאלית, תוך כדי השתנות אינטראקטיבית של הזירה ו/או נקודת המבט של הצופה. הדרישות משתנות בהתאם לשימוש. לדוגמה: להצגת חלק מכני שתוכנן באמצעות מחשב חשובה יכולת הפירוט הגאומטרית. לתצוגה תוך כדי משחק מחשב חשובה הטקסטורה של החומר והתאורה המאפשרת דימוי מדויק ככל שניתן של המראה במציאות. אך באופן כללי ניתן לומר שהתצוגה צריכה להיות "חלקה" ו"אמיתית" (Realistic). תצוגה "חלקה" היא תצוגה עם קצב רענון גבוה, כלומר כל שינוי של הזירה ו/או של נקודת המבט של הצופה צריכה להיות מוצגת בשבריר השנייה. קצב רענון של 50 או 60 שינויים (frames) בשנייה הוא באיכות קולנועית עד כדי כך שהתצוגה נראית חלקה לגמרי.

ייצוג גופים תלת ממדים[עריכת קוד מקור | עריכה]

ייצוג באמצעות פוליגונים של אובייקט. באמצעות אלגוריתמים של עידון ניתן לקבל משטחים חלקים ומציאותיים יותר.

כיוון שמראה אובייקט נקבע בעיקר על פי חלקו החיצוני שיטה מקובלת לייצוג אובייקטים היא באמצעות ייצוג גבולות (Boundary representation; B-rep). משטחים דו ממדיים יכולים לשמש היטב לייצוג אובייקטים שונים, אבל קיימים אובייקטים שאינם יריעה שלא ניתן לייצגם כך. מקובל לייצג את המשטחים באמצעות קירובים דיסקרטיים, כדוגמת מודל מצולעים (Polygonal mesh).

ניתן לבצע עידון של המודלים המצולעים באמצעות חלוקות חוזרות ונשנות של המשטחים (Subdivision surface) ולקבל משטחים חלקים יותר, למשל באמצעות אלגוריתמים כמו קטמול-קלרק.

שיטה נוספת המאפשרת ייצוג אובייקטים היא ייצוג הרכבות גאומטריות (Constructive Solid Geometry). בשיטה זו מיוצגים אובייקטים מורכבים באמצעות אובייקטים פשוטים ופעולות בוליאניות ביניהם (איחוד, חיתוך והפרש).

ה"ספריה" הסטנדרטית והכרטיס הגראפי[עריכת קוד מקור | עריכה]

למימוש יכולת זו פותחה חומרה ייעודית המכונה כרטיס גרפי. על מנת ליצור אחידות והפשטה פותחו ממשקי "ספריה" סטנדרטיים כמו OpenGL הפתוחה או Direct 3D של חברת מיקרוסופט. רוב האפליקציות המממשות תצוגה תלת ממדית אינטראקטיבית משתמשות באחד משני ממשקים אלו. באמצעותם מעבירה התוכנה האפליקטיבית לחומרה את המידע הנדרש לתצוגה כמו אפיון מקורות האור ומיקומם, מיקום ה"צופה" בסצנה, הגאומטריה של הסצנה, הטקסטורות ועוד. התוכנה האפליקטיבית מעבירה זאת בצורה סטנדרטית ללא תלות בסוג החומרה או יכולותיה, ובאמצעות פקודות כוללניות יחסית.

לדוגמה: להצגת תיבה תדרש התוכנה האפליקטיבית להעביר ל"ספריה" הסטנדרטית את הקורדינטות של 8 הקודקודים, את 12 המשולשים (כל אחד מצביע על 3 קודקודים שונים), את מיקום הצופה (למשל קורדיטות וכיוון מבט) ועוד כמה פרמטרים. ה"ספריה" הסטנדרטית אחראית להציג זאת. היא תפנה לחומרה הייעודית בהתאם לסוגה וליכולתיה ואף תבצע חלק מן החישובים באמצעות מעבד המחשב במקרה שהחומרה הייעודית אינה כוללת האצה לחישובי תלת מימד. העברת מידע זו, הכוללת לעתים מיליוני פוליגונים (בדרך כלל משולשים) וטקסטורות מפורטות, צריכה להעשות בכל השתנות אינטראקטיבית של הזירה ו/או נקודת המבט של הצופה. כלומר עשרות פעמים בשנייה במקרה שדרושה תצוגה חלקה. מסיבה זו כולל הכרטיס הגרפי בדרך כלל זיכרון משלו בו מאוחסנים בחוצצים (buffers) רשימות קודקודים, רשימות משולשים וטקסטורות. התוכנה האפליקטיבית מעבירה לכרטיס, באמצעות ה"ספריה" הסטנדרטית, את הרשימות האלה במבנה סטנדרטי, ואחר כך רק פוקדת על הצגתן בהקשר המתאים.

העיבוד הנעשה על ידי הכרטיס הגרפי לצורך הצגת מידע זה מתחלק ל"עיבוד קודקודים" (vertex processing) ול"עיבוד פיקסלים" (pixel processing). בראשון מומר מידע תלת ממדי לדו ממדי. לדוגמה: קורדינטות הקודקודים הנתונות במרחב (x,y,z) מומרות לקורדינטות מסך כתלות במיקום ה"צופה" ותוך התחשבות בפרמטרים של ההטלה הפרספקטיבית או האורטוגונאלית. בשלב השני, של עיבוד הפיקסלים, "נצבע" האזור במסך, המתאים לדוגמה למשולש מסוים, בצבע המשולש או בטקסטורה שלו. בשלב זה מבוצע גם חישוב ההסתרות (z-buffering) כך שפיקסל המגיע מקרוב "יסתיר" (כלומר יכתב על) פיקסל המגיע מרחוק (סדר הצגת המשולשים לא מבטיח זאת שכן הם יכולים לחצות זה את זה). גם אפקטים מורכבים יותר כמו צל או תנועת מים מתחלקים בדרך כלל לשני שלבים אלו.

כיום נהוג שעיבוד הקודקודים ועיבוד הפיקסלים מתוכנתים אף הם על ידי vertex shader ו pixel shader, בהתאם לשני שלבי העיבוד. תכנות shaders מאפשר ביצוע אפקטים מורכבים שלא מתוכנתים מראש כחלק מהממשק של ה"ספריה" הסטנדרטית.

תוכנות לעריכה גרפית[עריכת קוד מקור | עריכה]

דוגמה ליצירת פנים אנושיות באמצעות גרפיקה ממחושבת
עיבוד גרפי נוסף

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

שימוש בגרפיקה ממוחשבת (ובפרט בגרפיקת תלת ממד) לצורך יצירת אנימציה קרוי אנימציה ממוחשבת. לטכנולוגיה זו שימושים רבים בקולנוע ובטלוויזיה. הסרט הראשון שנעשה כולו באנימציה ממוחשבת הנו צעצוע של סיפור שיצא בשנת 1995. מאז הולכת השיטה ודוחקת את רגלי שיטות האנימציה המסורתיות בקולנוע המסחרי. פרט ליצירת סרטי אנימציה משמשת הטכנולוגיה גם ליצירת פעלולים בסרטים מצולמים. דמויות דמיוניות, כגון גולום בטרילוגית סרטי שר הטבעות מיוצרים באנימציה ממוחשבת ומושתלים לתוך הסרט המצולם. גם פעלולים אחרים כגון פיצוצים והתרסקויות מקובל החל משנות התשעים של המאה העשרים לבצע בשיטות אלה. (לדוגמה, הצונאמי שפוקד את ניו יורק בסרט היום שאחרי מחר).

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

  • לא משתמשים בשיטות ה"כבדות" יותר של הגרפיקה הממוחשבת, כמו למשל חישוב השתקפויות דרך מראות שאינן שטוחות.
  • חלק מהשיטות של הגרפיקה הממוחשבת מיושמות בצורה מקורבת ומהירה יותר (למשל חישובים של אור וצל).
  • מימוש שיטות של גרפיקה ממוחשבת בחומרה על כרטיסי המסך. המימוש בחומרה מהיר יותר מאשר מימוש בתוכנה, ובנוסף קיום מעבד על כרטיס המסך חוסך זמן מהמעבד הראשי.

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

היכולת של הגרפיקה הממוחשבת (ובפרט גרפיקת תלת ממד) לייצר תמונות ריאליסטיות משמשת גם באדריכלות, רפואה ובתחומי תעשייה אחרים.

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

תאוריה[עריכת קוד מקור | עריכה]

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

בעיבוד תמונה הבסיס הוא יצוג של תמונה כאות (סיגנל) דיסקרטי וביצוע מניפולציות שונות הלקוחות מתחום המכונה עיבוד אותות.

היסטוריה[עריכת קוד מקור | עריכה]

פריצת הדרך הראשונה בגרפיקה ממוחשבת הייתה תוכנת המחשב "Sketchpad" שפותחה בשנת 1962.

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

לקריאה נוספת[עריכת קוד מקור | עריכה]

  • דונלד הרן, פאולין בייקר, גרפיקה ממוחשבת חלקים א'-ב', תרגום: אייל ששון, האוניברסיטה הפתוחה, 1993