Blender 3D ממתחיל למתקדם/טרנספורמציה בקורדינטות

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
קפיצה לניווט קפיצה לחיפוש


הפרק הקודם:
הנדסת המרחב
טרנספורמציה בקורדינטות
תרגילים
הפרק הבא:
תצוגות אורטוגרפיות



טרנספורמציה בקורדינטות[עריכה]

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

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

אובייקט במיקום המקורי שלו
אובייקט מועתק למיקום חדש

אם אתה פשוט מסובב את האובייקט מסביב בלי להזיז אותו מהמיקום המקורי שלו, זה נקרה סיבוב (rotation)

אובייקט מסובב ב-45 מעלות

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

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

טרנספורמציה קוויות[עריכה]

הסוגים המרכזיים של טרנספורמציית קורדינטות שאנחנו עוסקים בהם כאן נקראים טרנספורמציות קוויות (linear transfomations), כלומר, קווים שהיו ישרים לפני הטרנספורמציה ישארו ישרים אחריה - הם לא יתעקמו. לדוגמא, הסירטוט הבא מדגים שלוש טרנספורמציות קוויות על ריבוע (במרכז): עיוות הורדה (shear), טרנספורמציית עיקום (skew transform), וסיבוב. בנוסף, טרנספורמציה אחת שאינה קווית, בגלל שהיא גורמת לעקימות בקווים שהיו ישרים לפני כן.

LinearTransformations.svg

מספר רב של טרנספורמציות[עריכה]

זה אפשרי לחבר (concatenate) או להרכיב (compose) סדרת טרנספורמציות. התוצאה של הטרנספורמציה יכול לעשות חבורה שלמה של דברים בפעולה אחת, תרגום, סיבוב, עיוות וכו'. לעומת זאת, הסדר של מיקום הרכבת הטרנספורמציות חשוב בגלל - שבכללי, טרנספורמציות לא חילופיות (commutative). לדוגמא: השווה את התוצאה של תזוזה במודל שלנו לאורך ציר Y ואחריה סיבוב על ציר X.

תרגום ואחריו סיבוב

בניגוד לתוצאה של עשיית סיבוב קודם:

סיבוב ולאחריו תרגום

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

היפוך טרנספורמציה[עריכה]

ישנה דרישה למצוא היפוך (inverse) לטרנספורמציה - זה, פעולה הפוכה לטרנספורמציה שהופכת (un-do) את האפקט שהטרנספורמציה עשתה. לדוגמה, סיבוב של 45 מעלות סביב ציר ה-X מוחזרת חזרה לאותו מצב בעזרת סיבוב של 315 מעלות.

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

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

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

וכך תוכלו לתאר למחשב בדיוק על איזה ציר תרצו לסובב!

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

הקרנה[עריכה]

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

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

OrthographicProjection.svg

הדרך השנייה היא הקרנה פרספקטיבית (Perspective Projection), הקוים נמשכים באופן לא מקביל, אבל מצטלבים בנקודה שמייצגת את מיקום העיין של הצופה:

PerspectiveProjection.svg

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

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


הפרק הקודם:
הנדסת המרחב
טרנספורמציה בקורדינטות
תרגילים
הפרק הבא:
תצוגות אורטוגרפיות