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

למבינים מזה שיידרים ואיך זה ניראה על המסך?


musari

Recommended Posts

Shade זה צל... שיידר זה פשוט אפקט גרפי שיוצר אור וצל בתלת מימד.

לNVIDIA יש היום בכרטיסי המסך Pixel Shader 3 לעומת 2.1 אצל ATI, יכול להיות שזה נותן לכרטיסים של יתרון מסוים אבל זה תלוי גם בHL2 ואם הוא משתמש בהם.

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

קישור לתוכן
שתף באתרים אחרים

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

אתר מרכזי שמתעסק בנושא אפשר למצוא פה - http://www.shadertech.com/

ודוגמאות עם כמה סקרינשוטס פה - http://www.typhoonlabs.com/

קישור לתוכן
שתף באתרים אחרים

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

אתר מרכזי שמתעסק בנושא אפשר למצוא פה - http://www.shadertech.com/

ודוגמאות עם כמה סקרינשוטס פה - http://www.typhoonlabs.com/

הסבר נחמד, אך יש כמה אי דיוקים.

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

השיידרים הם תוכנות שכיום נכתבות בשני שפות עיקריות, HLSL וGLSL. לזה שאמר שזה מתוכנת באסמבלר, מתי בפעם האחרונה נגעת בזה? כבר בSDK של אמצע-סוף DX8 היה CLLים, כמו CG.

התכונות האלו מחליפות את התהליכים המקובעים במשחק, Vertex shaders מחליפים את תהליך הTransformation and lighting, והPixel Shader את תהליך הMultitexture של הDX6/7, טוב הם לא מחליפים בדיוק, הם מוסיפים. שני התהליכים החדשים הם שלבים מקבילים לשלבים הישנים, ויש בחירה במה להשתמש. לא תמיד צריך VS, לפעמים גם TNL מספיק.

עכשיו אי דיוק נוסף קל בהסבר שמעלי, המחשב לא מעביר מידע בצורת פיקסלים לכרטיס, על הכרטיס ליצור את הפיקסלים מהמידע שהוא קיבל, טקסטורות הן חלק מהמידע הגאומטרי שבא עם הקודקודים. ואחרי שהוא עובר סינון Z, כדי לנפות כמה שיותר פיקסלים שלא יוצגו בשלב הסופי, כלומר על המסך. המידע נכנס לפיקסל פייפ ליין, ששמה נקבע צבעם הסופי של כל הפיקסלים שלא נופו, shaders כמו שאמרו מעלי פקסלים מסויימים, בצורה אחרת, ונותנים להם בעצם מן תבנית של התנהגות. לאחר מכן המידע עובר עוד 3 שלבים(fog blending, alfa, z,stencil test) ואז הוא מעובר לframe buffer ומוצג על המסך.

בכרטיס מתקדמים יותר שתומכים בDX9, יש אפשרות לעשות LOOP למידע ולהריצו פעמיים ויותר(פעמיים בGF6, אין ספור בR3XX ומעלה) כדי ליצור למשל אפקטים של עיוות חום, או עיוות התמונה מאחורי זכוכית מגדלת למשל. או בשביל דברים אחרים כמו Temporal AA של הR420 או פעולות בעזרת הF-brffer(לא frame) בR3XX ומעלה. בעיקר כיוון שיש מידע שנצבר בשלושת השלבים האחרים אחרי עיבוד הפיקסלים הראשוני שזקוקים לו כדי לבצע פעולות אלו.

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...