עבור לתוכן

מה ההבדל בין הפילטרים ביליניאר טריליניאר ואניסוטרופיק?

Featured Replies

פורסם

חבר'ה

מה ההבדל בין הפילטרים ביליניאר טריליניאר ואניסוטרופיק?

תודה :xyxthumbs:

פורסם

ממש לא נראה לי שמישהו יוכל לענות לך על זה בצורה מקצועית.

אבל בעיקרון ה Aniso היא שיטה חדשה ויעילה הרבה יותר.

פורסם

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

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

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

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

Triliniar Filtering - עובד על אותו עקרון של Biliniar Filtering אולם מוסיף שימוש בMip Mapping.

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

Triliniar Filtering עושה Biliniar Filtering על שני רמות MIP ואז משווה בין שני הצבעים שהוא מקבל כדי לקבוע את הצבע הסופי של הפיקסל.

Anisotropic Filtering - שוב נחזור לשיעורי לשון איסוטרופי - תכונה שבא הנתון איננו תלוי בכוון, כדי לא להכנס למרחבים מטמתטיים מופשטים נתן דוגמה יותר פשוטה. קרינת הרקע הקוסמית היא קרינה איסוטרופית, לא משנה מאיזה כוון תמדדו עוצמת הקרינה תיהיה שווה בכל המדידות(זה כבר סתם לידע כללי - כלומר אפקט דופלר לא משפיע על הקרינה). אנאיסוטרופי, כלומר לא-איסוטרופי, תכונה שבא הנתון משתנה לפי כוונו. משטח אניאוסיטרופי ישתנה כאשר תסובבו אותו סביב ציר הסיבוב של הנורמל הגאומטרי שלו. Aniositropic Scaling - צורה שלפיה אנו משנים את סדר הגודל של משהו בצורה לא אחידה כמו התאמת טקסטורה של 32X32 לתוך מלבן בגודל של 12x24.

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

בMIP mapping יש לנו גם מצב אנאיסוטרופי, nonuniform MIP maps שלפעמים נקראות RIP maps, הן גרסאות אנאיסוטרופיות של טקסטורת האם.

כלומר לטקסטורה של 512x512 יכולה להיות מפת MIP בגודל של 256x128 כלומר MIP level של 0.25 אך עם רזולוציה אנכית כפולה. אבל למפות MIP אניאוסיטרופיות יש חסרון מאוד גדול, כיוון שאלה הן טקסטורות מחושבות מראש הן תקפות רק לזווית צפיה אחת.

סינון אניאוסיטרופי יוצר מפות טקסטורה אניאוסיטרופיות on the fly כפי שאומרים. כאשר דוגמים טקסטורה, דוגמים את הטקסלים סביב המרכז כפי שצריך, אולם לפי תבנית דגימה שמוטת לפי נקודת המבט - הפרספקיבה של הצופה. ע"י AF אנו מקבלים perspective corrected textures, שלאחר מכן נדגמות ע"י Triliniar או Biliniar filtering.

לAFx16 + Triliniar filtering דרוש לדגום 128 טקסלים(על כל פיקסל שיצג על המסך) דגימה טרילניארית מכל מפת מיפ ואז 16 דגימות אניאוסיטרופיות.

בהתחשב שכל כל פיקסל כיום שוקל (32bit(64bit when FP16 HDR is involved וברזולוציה של 1280x1024 יש לנו 1310720 פיקסלים על המסך התהליך עולנו לנו גיגה בייטים על פני גיגה בייטים ברוחב פס זכרון. דגימת AF "אמיתית"(הגרשיים בגלל שהרבה כרטיסים כיום לא עושים דגימה מלאה באמת(כן גם עם כל האופטימיזציות על off), כרטיסים של nVIDIA למשל עושים דגימה בטווח מאוד מצומצם של זוויות, כרטיסים של ATi לא עושים זאת ולכן גם מציגים הרבה פחות shimmering - נצנוץ בטקסטורות, אבל גם להם יש טריקים כדי לחסוך בחישובים. זה אולי מוצדק אבל מה שלא מוצדק שיש כרטיסים ירוקים עדיין לא מצבעים triliniar filtering מלא) דגימה של פריים אחד ב1280x1024 עם AF16+Triliniar תעלה לנו 671Mbyte, ב50fps לשניה התענוג יעלה לנו 33GB/s. אם נקח את הכרטיס עם רוחב פס הזכרונות הגבוהה ביותר כיום 7900GTX שמציג לא פחות מ51.2GByte/s סינון טריליניארי ואניאוסיטרופי x16 מלא ברזולוציה הנ"ל על 50FPS יעלה לנו כ65% מכל רוחב הפס לזכרונות שיש לכרטיס, כיוון שאנו צריכים את רוחב פס הזכרונות לדברים אחרים, כך מבחינת ביצועים נטו זה לא ריאלי להרבה כרטיסים לבצע AF מלא.

פורסם

א-מ-א-ל-ה :eek2: :eek2: :eek2: :eek2: :eek2: :eek2: :eek2: :eek2: :eek2: :eek2:

מטורף.

לאמר "כל הכבוד לך!! אתה מלך!" זה כל כך צנוע.

פורסם

HOLY MOLY

DOGMA רוצה לאמץ אותי ? :/

מאיפה אתה מבין כ"כ הרבה בחומר?מה אתה בונה מנועים גראפים וקיבלת ב 5 יחל מתמטיקה 100?

פורסם

dogma כל הכבוד :yelclap:.

פורסם

לא יאומן כמה ידע יש לבן אדם הזה ::)

תודה רבה וכל הכבוד על הסבלנות לכתוב את כל זה. :xyxthumbs:

פורסם

DOGMA כל הכבוד חיפשתי גם אני תשובות לכמה מהנושאים האלה :xyxthumbs:

תגיד סיימתה כבר את התואר בטכניון ?

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

פורסם

מישהו אמר שאני לומד שמה, זה לא אומר שזה נכון. ::)

פורסם

HOLY MOLY !!! PUT ME IN A SACK AND CALL ME CHARLLY !!

ARE YOU INSANE ?!!

אני לא מאמין שאשכרה ישבת וכתבת לו את כל זה!! מה זה היה ?! עבודת גמר להגשה מועד ב' להנדסת מחשבים שנה שלישית ב MIT ??

כל הכבוד על היוזמה :yelclap: (אני גם לא מאמין שאשכרה קראתי את זה!!)

יש לך קצת בעיות ניסוח פה ושם אבל בגדול הבנתי ..

:xyxthumbs:

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

פורסם

הוא עושה AFx16 אבל הוא סלקיטבי על מה הוא עושה אותו.

פורסם
  • מחבר

בקיצור אניסוטרופיק הכי טוב?

פורסם

OK סליחה

כניראה טעיתי אם מישהוא אחר. :hat:

פורסם

לומד או לא לומד בטכניון הבנאדם משכיל מאוד :xyxthumbs:

ממש הסבר טוב ומפורט למרות שהוא קצת מסובך אבל בקטנה :smile1:

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים