10.10.2019

סינון אניסוטרופי: לשם מה זה, על מה הוא משפיע, שימוש מעשי


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

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


תלת ליניארי

אניזוטרופי

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

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

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

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

Shaders מחולקים לשלושה סוגים: קודקוד (Vertex Shader) פועלים עם קואורדינטות, גיאומטרי (Geometry Shader) יכול לעבד לא רק קודקודים בודדים, אלא גם צורות גיאומטריות שלמות, המורכבות ממקסימום של 6 קודקודים, פיקסל (Pixel Shader) עבודה עם בודדים פיקסלים והפרמטרים שלהם.

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

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

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

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

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

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

החלקת עקומות
לפני כניסתו של DirectX 8, אנטי-aliasing במשחקים נעשה באמצעות SuperSampling Anti-Aliasing (SSAA), הידוע גם בשם Full-Scene Anti-Aliasing (FSAA). השימוש בו הוביל לירידה משמעותית בביצועים, ולכן עם שחרורו של DX8 הוא נזנח מיד והוחלף ב-Multisample Anti-Aliasing (MSAA). למרות ש בדרך זונתן תוצאות גרועות יותר, הוא היה הרבה יותר פרודוקטיבי מקודמו. מאז הופיעו אלגוריתמים מתקדמים יותר, כמו CSAA.

AA כבוי AA על

בהתחשב בכך שבמהלך השנים האחרונות, ביצועי כרטיסי המסך עלו בצורה ניכרת, הן AMD והן NVIDIA החזירו תמיכה בטכנולוגיית SSAA למאיצים שלהן. עם זאת, לא ניתן יהיה להשתמש בו אפילו כעת במשחקים מודרניים, מכיוון שמספר הפריימים/שניות יהיה נמוך מאוד. SSAA יהיה יעיל רק בפרויקטים של שנים קודמות, או באלה הנוכחיים, אך עם הגדרות צנועות לפרמטרים גרפיים אחרים. AMD הטמיעה תמיכת SSAA רק עבור משחקי DX9, אך ב-NVIDIA SSAA מתפקד גם במצבי DX10 ו-DX11.

עקרון ההחלקה פשוט מאוד. לפני הצגת המסגרת על המסך, מידע מסוים מחושב לא ברזולוציה מקורית, אלא גדל וכפולה של שניים. ואז התוצאה מצטמצמת לגודל הנדרש, ואז ה"סולם" לאורך קצוות האובייקט הופך פחות בולט. ככל שהתמונה המקורית ומקדם ההחלקה גבוהים יותר (2x, 4x, 8x, 16x, 32x), כך יהיו פחות שלבים בדגמים. MSAA, בניגוד ל-FSAA, מחליקה רק את הקצוות של אובייקטים, מה שחוסך משמעותית משאבי כרטיסים גרפיים, אך טכניקה זו יכולה להשאיר חפצים בתוך מצולעים.

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

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

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

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

כדי שהמשחק ישתמש ב-tesselation, הוא דורש כרטיס גרפי התומך ב-DirectX 11.

סנכרון אנכי

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

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

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

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

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

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

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

לִפְרוֹחַ
לעתים קרובות נעשה שימוש ב-Bloom בשילוב עם HDR, ויש לו גם קרוב משפחה די קרוב ל-Glow, וזו הסיבה ששלוש הטכניקות הללו מתבלבלות לעתים קרובות.

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

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

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

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

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

Screen Space Ambient Occlusion היא גרסה שונה של Ambient Occlusion וגם מדמה תאורה עקיפה והצללה. הופעת SSAO נבעה מהעובדה שברמת הביצועים הנוכחית של GPU, Ambient Occlusion לא ניתן היה להשתמש כדי להציג סצנות בזמן אמת. עבור ביצועים מוגברים ב-SSAO, אתה צריך לשלם באיכות נמוכה יותר, אבל אפילו זה מספיק כדי לשפר את הריאליזם של התמונה.

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

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

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

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

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

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

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

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

השפעת ביצועים

כדי לגלות כיצד הכללת אפשרויות מסוימות משפיעה על הביצועים, השתמשנו במדד המשחקים Heaven DX11 Benchmark 2.5. כל הבדיקות בוצעו במערכת ליבת אינטל 2 Duo e6300, GeForce GTX460 ב-1280×800 פיקסלים (למעט סנכרון אנכי, שבו הרזולוציה הייתה 1680×1050).

כפי שכבר הוזכר, לסינון אנזוטרופי אין כמעט השפעה על מספר הפריימים. ההבדל בין anisotropy disabled ל- 16x הוא רק 2 פריימים, לכן אנו ממליצים תמיד להגדיר אותו למקסימום.

Anti-aliasing ב-Heaven Benchmark הוריד את ה-fps יותר ממה שציפינו, במיוחד במצב ה-8x הקשה ביותר. עם זאת, מכיוון ש-2x מספיק לשיפור ניכר בתמונה, אנו ממליצים לך לבחור באפשרות זו אם לא נוח לשחק באפשרויות גבוהות יותר.

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

רזולוציה גבוהה יותר נבחרה לסנכרון אנכי כך ש-fps לא מוגבל על ידי קצב הרענון האנכי של המסך. כצפוי, מספר הפריימים לאורך כמעט כל הבדיקה כשהסנכרון מופעל היה בבירור בסביבות 20 או 30 פריימים/שניות. זאת בשל העובדה שהם מוצגים במקביל לרענון המסך, ובקצב רענון של 60 הרץ, ניתן לעשות זאת לא עם כל פולס, אלא רק עם כל שנייה (60/2 = 30 פריימים/שניות) או שלישי (60/3 = 20 פריימים/שניות). כאשר V-Sync הושבת, מספר הפריימים גדל, אך חפצים אופייניים הופיעו על המסך. לחציצה משולשת לא הייתה השפעה חיובית על חלקות הסצנה. אולי זה נובע מהעובדה שבהגדרות מנהל ההתקן של כרטיס המסך אין אפשרות לכפות חציצה, וההשבתה הרגילה מתעלמת על ידי ה-benchmark, והיא עדיין משתמשת בפונקציה הזו.

אם Heaven Benchmark היה משחק, אז בהגדרות מקסימליות (1280×800; AA 8x; AF 16x; Tessellation Extreme) זה היה לא נוח לשחק בו, שכן ברור ש-24 פריימים לא מספיקים לכך. עם אובדן איכות מינימלי (1280×800; AA 2x; AF 16x, Tessellation Normal), ניתן להשיג 45 פריימים לשנייה מקובלים יותר.



מבחני ביצועים:

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

תצורת מחשב:
מעבד: Intel Core 2 Quad Q6600 @ 3200MHz (400x8, 1.3125V)
כרטיס מסך: Palit Nvidia GeForce 8800GT
לוח אם: Asus P5Q PRO TURBO
זיכרון: 2x2048MB DDR2 Corsair XMS2 @ 1066MHz, 5-5-5-15
ספק כוח: Corsair CMPSU-850HXEU 850W
מצנן מעבד: זלמן CNPS9700 LED
מערכת הפעלה: Windows 7 Ultimate x64
גרסת מנהל התקן וידאו: Nvidia 195.62 x64

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

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

אז מה קיבלנו:

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

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

בנוסף, ישנה התאמה ברורה בין מחווני ה-FPS, כאשר משתמשים באותה שיטה נגד זיהוי, עבור AF 8x ו-AF 16x. יחד עם זאת, ההבדל נע בין 1 ל-4 פריימים לשנייה (למעט MSAA 8x, שם ההפרש הוא 11 פריימים לשנייה). זה מצביע על כך ששימוש בסינון פי 16 יכול להיות שימושי מאוד אם אתה צריך לשפר את איכות התמונה ללא פגיעה משמעותית בביצועים.

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

מבחני תמונות:

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

ביליניארי / MSAA 2xTrillinear / MSAA 2xAF 2x / MSAA 2x
AF 2x / CSAA 8xAF 2x / MSAA 8xAF 2x / CSAA 16x
AF 2x / CSAA 16xQAF 8x / MSAA x2AF 8x / CSAA 8x
AF 8x / MSAA 8xAF 8x / CSAA 16xAF 8x / CSAA 16xQ
AF 16x / MSAA 2xAF 16x / CSAA 8xAF 16x / MSAA 8x
AF 16x / CSAA 16xAF 16x / CSAA 16xQBillinear / CSAA 16xQ

כפי שאתה יכול לראות, פשוט אין הבדל מיוחד בשילובים ה"גבוהים" של AF 8x / MSAA 8x (CSAA 8x). אבל יחד עם זאת, יש להיט ביצועים בולט, במיוחד כאשר משתמשים ב-Coverage Sampling AntiAliasing.

מסקנות:

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

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

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

מאת Stormcss


בועט בכעס ברגליים

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

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

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

האם יהיה המשך? אולי בגלל שהמחלוקת על סינון ה- briline שהתגלה לאחרונה בכרטיסי Radeon 9600 ו- X800 לא נרגעת. יש לתת קרדיט ל-ATi על כך שאיכות התמונה של הכרטיסים אינה נפגעת מבחינה ויזואלית עקב סינון זה. לפחות אין לנו דוגמאות להיפך. בעוד סינון בריליין מתבטא תחת שנוצר באופן מלאכותי תנאי מעבדה. יחד עם זאת, ATi אינו מאפשר סינון תלת-לינארי מלא עבור הכרטיסים שהוזכרו, בין אם זה אדפטיבי או לא. בשל הסינון החדש, ערכי הביצועים בבדיקות אינם מראים את מלוא הפוטנציאל של ה-X800, שכן ערכי ה-FPS מתקבלים לאחר אופטימיזציה, שקשה להעריך את השפעתם על המהירות. והמילה "סתגלנית" משאירה טעם לוואי מר. ATi לא סיפקה לנו מידע על מנגנון הנהג והצהירה פעמים רבות שהכרטיס מספק סינון תלת-לינארי מלא. רק עם הגילוי הנ"ל הודתה ATi שהסינון עבר אופטימיזציה. נקווה שבמקומות אחרים אין דרייבר "סתגלנות" כזה.

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

כל יצרן מחליט בעצמו מהי רמת איכות התמונה שהוא יספק כסטנדרט. עם זאת, היצרנים צריכים לתעד את האופטימיזציות שבהן הם משתמשים, במיוחד אם הם מוסתרים ממדדים ידועים, כמו בדוגמה האחרונה של ATi. הפתרון ברור: אפשר לבטל אופטימיזציות! אז הצרכן יוכל להחליט בעצמו מה יותר חשוב לו – יותר FPS או איכות טובה יותר. אתה גם לא יכול לסמוך על מיקרוסופט כבורר. מבחני WHQL אינם מגדירים הרבה דברים, וניתן לעקוף אותם בקלות: האם אתה יודע את משמעות המילה "אדפטיבי"?

אופטימיזציות סינון ידועות כיום
ATi nVidia
תלת ליניארי
אופטימיזציה
R9600
X800
GF FX5xxx
(GF 6xxx)*
אופטימיזציה בזווית
סינון אניסוטרופי
R9xxx
X800
GF 6xxx
הסתגלות
סינון אניסוטרופי
R9xxx
X800
GF FX5xxx
GF 6xxx
אופטימיזציה של שלב R9xxx
X800
GF FX5xxx
אופטימיזציה של LOD R9xxx
X800(?)

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

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

מה זה?

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

על אצבעות

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

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

צבע אמצעי

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

סינון ליניארי

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

מיפוי mip

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

סינון ביליניארי

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

סינון תלת ליניארי

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

סינון אניסוטרופי

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

כרטיסי מסך מתאימים

מצב הסינון האניזוטרופי אפשרי במתאמי וידאו מותאמים אישית מאז 1999, החל מכרטיסי Riva TNT ו-Voodoo הידועים. התצורות העליונות של כרטיסים אלה התמודדו היטב עם עיבוד גרפיקה תלת-לינארית ואף הוציאו מחווני FPS נסבלים באמצעות סינון אנזוטרופי x2. הספרה האחרונה מציינת את איכות הסינון, אשר, בתורה, תלויה במספר הטקסלים המשמשים בחישוב הצבע הסופי של הפיקסל על המסך, במקרה זה, נעשה שימוש ב-8. בנוסף, בחישובים , נעשה שימוש באזור הלכידה של טקסלים אלה המתאים לזווית הראייה, ולא במעגל, כמו באלגוריתמים ליניאריים קודם לכן. כרטיסי מסך מודרניים מסוגלים לעבד סינון אנזוטרופי ברמת x16, כלומר שימוש ב-128 טקסלים כדי לחשב את צבע הפיקסלים הסופי. זה מבטיח שיפור משמעותי בעיבוד מרקמים רחוקים מנקודת המבט, כמו גם עומס רציני, אבל הדור האחרון של מתאמים גרפיים מצוידים בכמות מספקת של זיכרון RAM ומעבדי ריבוי ליבות כדי להתמודד עם המשימה הזו.

השפעה על FPS

היתרונות ברורים, אבל כמה יעלה לשחקנים סינון אנזוטרופי? ההשפעה על הביצועים של מתאמי וידאו למשחקים עם מילוי רציני, שיצאו לאחר 2010, היא קטנה מאוד, מה שאושר על ידי בדיקות של מומחים בלתי תלויים במספר משחקים פופולריים. סינון מרקם אנזוטרופי ב-x16 בכרטיסי תקציב מראה ירידה אינדיקטור כולל FPS ב-5-10%, ולאחר מכן עקב רכיבים פחות יעילים של המתאם הגרפי. נאמנות כזו של חומרה מודרנית למחשוב עתיר משאבים מדברת על הדאגה הבלתי פוסקת של היצרנים לנו, גיימרים צנועים. בהחלט ייתכן שהמעבר לרמות הבאות של איכות האניזוטרופיה לא רחוק, אם רק מפתחי המשחקים לא יאכזבו אותנו.

כמובן, לא רק סינון אנזוטרופי מעורב בשיפור איכות התמונה. אם להפעיל את זה או לא זה תלוי בנגן, אבל הבעלים המאושרים של הדגמים האחרונים מ-Nvidia או AMD (ATI) לא צריכים אפילו לחשוב על הנושא הזה - הגדרת סינון אניזוטרופי לרמה המקסימלית לא תשפיע על הביצועים ותוסיף ריאליזם לנופים ומיקומים עצומים. מְעַטִים המצב קשה יותרבעלי פתרונות גרפיקה משולבים של אינטל, שכן במקרה זה הרבה תלוי באיכויות זיכרון ה-RAM של המחשב, תדר השעון והנפח שלו.

אפשרויות ואופטימיזציה

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

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

מבט אל העתיד

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

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

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

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

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

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

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

לשקול שיטות שונותסינון מרקם והווריאציות שלהם.

השכן הכי קרוב

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

סינון ביליניארי (בילינארי)

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

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

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

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

מיפוי mip

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

המונח mipmap מקורו במילה הלטינית multum in parvo, כלומר הרבה במעט. כאשר נעשה שימוש בטכנולוגיה זו, בנוסף לתמונת הטקסטורה, מאוחסן בזיכרון של המאיץ הגרפי סט של עותקים מופחתים של המרקם, כאשר כל עותק חדש בגודל חצי מהקודם בדיוק. הָהֵן. עבור מרקם של 256x256, מאוחסנות בנוסף תמונות של 128x128, 64x64 וכו', עד 1x1.

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


איור 9רמות mipmap

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

סינון אניסוטרופי

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

השוואת מסננים

התוצאה היא כדלקמן: כדי לדכא חפצי כינוי טקסטורה, מספר שיטות סינון נתמכות על ידי החומרה, הנבדלות באיכותן ובמהירותן. שיטת הסינון הפשוטה ביותר היא שיטת השכן הקרובה (שאינה עוסקת למעשה בחפצים, אלא פשוט ממלאת את הפיקסלים). כיום, לרוב נעשה שימוש בסינון בילינארי יחד עם מיפוי mip או סינון תלת ליניארי. IN לָאַחֲרוֹנָה GPUs החלו לתמוך במצב הסינון האיכותי ביותר - סינון אנזוטרופי.

מיפוי מהמורות

מיפוי בליטות הוא סוג של אפקטים מיוחדים גרפיים שנועדו לתת רושם של משטחים "גסים" או גבשושיים. לאחרונה, השימוש ב-bump mapping הפך כמעט לסטנדרט עבור יישומי משחקים.

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

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

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

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

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

מיפוי בליטות מחושב מראש

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

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

מיפוי בליטות בליטות

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

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

מיפוי בליטות פיקסל

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

טכנולוגיה זו נתמכת בחומרה החל מכרטיסי מסך ברמת GeForce2.

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