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

מה זה צינורות עיבוד?


Yaron-Cohen

Recommended Posts

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

:P

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

לא יודע עד כמה זה עוזר אבל:

Pixel Pipelines - The amount of pixel pipelines a graphics card has can have a great impact on the speed of the image rendering. This is all about pixel pushing power. A card with 8 pipelines can process twice as many pixels as a card of the same speed and 4 pipelines.

Textures per pipeline - This only come into effect when multiple textures are needed on the one . Simply put if a multiple texture is needed, then a graphics card with more textures per pipeline will be quicker. On single textured pixels the amount of texture per pipeline will have no effect.

There are more smaller things such as T&L technology anti-aliasing and various other quality increasing and speed increasing technology that different cards have. I wont go into them all here as there are a great many between all the cards on the market.

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

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

כל מי שכתב על וvertex pipelines אלא הם רק שלבים בתהליך הרנדור, וכמות שלהם מאפשרת לVPU להיות מקבילי כדי לפצות על המהירויות הנמוכות שלו יחסית, VPU של 2ns נחשב לאחד מאוד מהיר.

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

הצינור עיבוד מורכב מ3 שלבים עיקרים, הראשון הוא שלב הPrimitive Processing התהליך בעצם לוקח את המידע מהמנוע התלת מימדים, ויוצר ממנו vertices(התרגום הכי קרוב שאפשר זה קודקודים או צורות גאומטריות, מקום גיאומטרי יותר מדוייק למי שלמד קצת מה זה), הvertices האלה הם בדרך כלל משולשים, אבל זה יכול להיות דברים נוספים כמו קווים נקודות ונקודות רפאים(Point sprites) שאיתם דרך אגב מרנדרים כיום את הצמחיה(משהו שהולך להיות מוחלף בקרוב ע"י הvertex instancing אפשר לראות את זה כבר היום בFarCry1.2 תחת מצב הextream geometry), אם תשימו לב AA וAF לא עובד על דשא, עלים וכדומה, כיוון שהכרטיס מסך מתעלם מהם ברוב שלבי הרינדור, מצד אחד זה מאפשר חסכון עצום בכוח חישוב, מצד שני התוצאה דיי מעפנה, טוב סטיתי מהנושא מספיק. כל האובייקטים האלה עוברים לשלב הבא הVertex Processing(עיבוד וורטקס), כאן אני צריך להזכיר שני סוגי pipeline שיש, אחד הוא הfixed function pipeline(מעתה יקרא FFPL) שנתמך ע"י DX7 והשני הוא programable pipeline(מעתה יקרא PSPL) שזה הצינור עיבוד שמכיל shaders.

ההבדל בין שני הpipelines הוא שהFF הוא תהליך עם מספר שלבים קבועים מראש ושאי אפשר לשחק איתם, הVertex Processing זה בעצם שלב הTNL(השלב שמקציב ערכי מיקום, לגופים לטקסטורה ומחשב את הארת הdiffuse והspecular לפי המפות נורמל), ההבדל הוא שבFF יש מספר שלבים מוגדרים מראש, והמידע עובר דרך שלב אחד או יותר, ומשמה לoutput. בPSPL, החישוב vertex הוא שלב אחד, אליו מצד אחד נכנס Arbitrary vertex data מצד שני נכנסים Vertex Shader Constants שזה בעצם השלב החשוב, המתכנת כותב תוכנת וורטקס שנתענת לתוך הVertex Shader והיא בעצם זאת שעושה את אvertex processing.

השלב האחרון הוא שלב הפלט הסופי הPixel Resteriseion(השלב שבו לפי המידע שחושב בשלב הוורטקס מרונדרים כל הפיקסלים במישור התמונה, על רזולוציה של 1024*768 צריך הכרטיס לרנדר קצת פחות מ790 אלף פיקסלים בכל פריים). בFFPL התהליך הזה מבולגן להחריד, זה בעצם תהליך קסקייד(תחשבו על זה כמו על מפולת שלגים או דבר דומה) שנקרא גם texture cascade בעצם מחשב לכל פיקסל את הצבע ואת ערך הalfa שלו ומעביר אותו הלאה, לאחר שכל המידע עובד, הוא מועבר לFrame Buffer ומשמה לBlending Unit וזהו הפלט הסופי. בPSPL כל הגישה כלפי הPixel Resteriseion השתנתה, קודם כל השיפור הממשי הוא לא בעובדה שמערך הקסקייד הוחלף בתכונות שיידר, שמאפשרות לרנדר את הפיקסלים בצורה הרבה יותר יעילה, ולעשות איתם דברים שלא היה אפשר אפילו לדמיין בשיטת הקסקייד. הדבר הכי גדול  שה PS1.0 זה אחידות בתמיכה, שלב ההPixel Resteriseion בצינורות הFFPL לא היה אחיד, ורבים מהכרטיסים תמכו בפרוטוקולים כאלה ואחרים, זה דרש זיהוי מוקדם של החומרה, וניתובה למסלול רינדור מתאים. השיידרים הביאו לAPI של DX מה שATi הביאה לOGL עם הOGL2.0 שהיא פיתחה. אחידות בתמיכה, כיוון שכרטיסים לא יכלו לתמוך בשיידרים בצורה חלקית, זה היה הכל או כלום. הדבר הזה נתן יתרון משמעותי לAPI של D3D במשך השנים, למרות שהפונטציאל ניצול החומרה שלו נמוך מזה של הOGL, אחידות התמיכה שלו גרמה לו להיות הAPI המעודף ע"י המפתחים. אפשר לקוות שעם סיום הפיתוח של הOpenGL2.0 שתומך בשפת שיידרים בתור סנטדרט, ולא בתור שלוחה(extention) המצב הזה יתאזן יותר.

מבולבלים נכון?

אז בואו נסתכל על צינור עיבוד של כרטיס מתקדם DX9/8 שמכיל מסלולי PF וFF.

השלב הראשון primitive pipeline שבעצם עושה תהליך שנקרא High Order Primitive Tesselation ויוצר ממנו VERTEX DATA.

הדבר הזה מעובר לVERTEX PIPELINE שהשלב האחרון שלו הוא הgeometry pipeline(אפשר להגיד בפשטות שזה הוא חלק משלב הT&L) השלב הראשון שזהו שלב מקבילי שמכיל את הTNL ENGINE ואת הVERTEX SHADER, משמה המידע המעובד עובר לשלב הviewport and clipping והמידע הזה מעובר לPIXEL PIPELINE שבו ישנם שני שלבים הראשון שהוא שלב הpixel and texture blending מכיל שני שלבים מקבילים ראשונים שמקבלים את המידע שעובד בשבל הVERTEX שני השלבים הם SHADER וDX6/7 multi texture המידע עובר תהליך שנקרא fog blending, ומשמה לתהליך הסופי והאחרון הResteriseion התהליך מכיל שני שלבים הראשון הו תדיגמה של הstencil ודגימה של ערכי הZ והAlfa, אחרי כל הדרך הארוכה הזאתי המידע נכנס לframe buffer ממנו לblending unit ומוצג על המסך.

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

ארכיון

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

×
  • צור חדש...