גרפיקה ממוחשבת: מה ההבדל בין מוצלות קודקוד למצללות פיקסל?


תשובה 1:

צינור גרפיקה

מוצלי קודקוד

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

מפצלי פיקסל

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

הצללת פנג

הצללת פנג

לכל פיקסל;

מודל השתקפות פונג

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

הדרכות OpenGL

vec3 N משתנה; vec3 v משתנה; void main (void) {v = vec3 (gl_ModelViewMatrix * gl_Vertex); N = לנרמל (gl_NormalMatrix * gl_Normal); gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; }
vec3 N משתנה; vec3 v משתנה; void main (void) {vec3 L = לנרמל (gl_LightSource [0] .position.xyz - v); vec3 E = לנרמל (-v); vec3 R = לנרמל (-ההרה (L, N)); // ambient vec4 Iamb = gl_FrontLightProduct [0] .ambient; // diffuse vec4 Idiff = gl_FrontLightProduct [0]. diffuse * max (נקודה (N, L), 0.0); אידיף = מהדק (אידיף, 0.0, 1.0); // vec4 specular Ispec = gl_FrontLightProduct [0]. כוח * ספציפי (מקסימום (נקודה (R, E), 0.0), 0.3 * gl_FrontMaterial.shininess); Ispec = מהדק (Ispec, 0.0, 1.0); // צבע כולל gl_FragColor = gl_FrontLightModelProduct.sceneColor + Iamb + Idiff + Ispec; }

תשובה 2:

מהו שודד קודקוד?

קודקוד שיידר

זכור כי המצללות Tessellation ו- Geometry הן אופציונליות.

כניסות קודקוד שיידר

תכונות

מדים

לקריאה בלבד

עמדות, נורמליות וקואורדינטות uv

את כל

תפוקות קודקוד שיידר

gl_Position

לקריאה בלבד

משתנה / החוצה

תכונות

משתנה / החוצה

מדים

מהו Shader Fragment (aka Pixel Shader)?

מדים

מנגל

תשומות לשיידר שבר

קודקוד

טסלציה

שיידר גיאומטריה

שטוח

משתנה / החוצה

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

תפוקות של שבריר שבר

vec4

Shaders: Theory and Practice, מהדורה שנייה: מייק ביילי, סטיב קנינגהם: 9781568814346: Amazon.com: ספרים


תשובה 3:

מהו שודד קודקוד?

קודקוד שיידר

זכור כי המצללות Tessellation ו- Geometry הן אופציונליות.

כניסות קודקוד שיידר

תכונות

מדים

לקריאה בלבד

עמדות, נורמליות וקואורדינטות uv

את כל

תפוקות קודקוד שיידר

gl_Position

לקריאה בלבד

משתנה / החוצה

תכונות

משתנה / החוצה

מדים

מהו Shader Fragment (aka Pixel Shader)?

מדים

מנגל

תשומות לשיידר שבר

קודקוד

טסלציה

שיידר גיאומטריה

שטוח

משתנה / החוצה

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

תפוקות של שבריר שבר

vec4

Shaders: Theory and Practice, מהדורה שנייה: מייק ביילי, סטיב קנינגהם: 9781568814346: Amazon.com: ספרים