עבור לתוכן

OpenGL - איך הCOLOR_BUFFER והDEPTH_BUFFER עובדים ?

Featured Replies

פורסם

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

פורסם

בפשטות:

יש z-buffer (או depth buffer) אשר מציין את ה-Z הכי קרוב של כל פיקסל על המסך.

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

פורסם
  • מחבר

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

פורסם

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

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

פורסם

הפיקסל בscreen space שלך הוא דו מיימד.

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

הZbuffer שומר את קורדינטות העומק של כל נקודה בScreen space שלך אחרי הטרנספורמציה.

כאשר יש כתיבה לFrame buffer(מתוך הcolour buffer) מוודאים שהפיקסל שנכתב הוא באמת הפיקסל עם ערך הZ הנמוך ביותר, זה הצורה הבסיסית להשתמש בו.

כמובן שלא בכל pass אתה תמיד רוצה לכתוב ערכים לzbuffer בד"כ כאשר מרנדרים צללים באותו Pass עושים ztest בלבד ומשווים את הערכים לפי stencil buffer בשביל לעשות clipping להקרנות של הצללים. רק אחרי שיש לך את המידע הזה אתה תוכל לרנדר את הסצנה בצורה נרומאלית.

אותו הדבר קורה כאשר משתמשים בתאורה מתקדמת ועוד דברים.

פורסם
  • מחבר
כאשר יש כתיבה לFrame buffer(מתוך הcolour buffer)

לא ממש הבנתי את זה, אני חשבתי שFrame Buffer זה שם כולל לכול הBUFFERS האחרים לא משהו פיזי וקיים.

פורסם

לא ה-Frame buffer זה "החוצץ האחרון" שמה נשמרת התמונה הסופית לפני שהיא נזרקת לDAC או לTDMS ומשמה יוצאת למסך שלך.

הFB הוא הסוף של תהליך הרינדור כולו.

ארכיון

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

דיונים חדשים