SOURCE מנוע גרפי - שאלה נובית

tals56

New member
SOURCE מנוע גרפי - שאלה נובית

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

Fantasy WRC

New member
סורס נבנה ע"י חברת VALVE ולא

ע"י 2 חברות, זה מנוע גרפי אחד. יש סורס לשחקנים שאוהבים לפתח מודים למשחק HL2 ואפשר להשיג אותו ר אם ברשותך עותק חוקי ואז תוכל להוריד אותו דרך STREAM. ויש סורס בצורת קוד שמוכרים לחברות אחרות שבונים משחק(או כל חברה אחרת וגם אפילו צבא) שרוכשים רישון שימוש מלא בקוד... יש פה איזה בנאדם שמבין בזה, אולי הוא יענה לך על שאלה הרבה יותר טוב ממני... כי יש מצב שאני טועה ובגדול.. בכל מקרה, לינק ל SOURCE.. http://www.valvesoftware.com/sourcelicense דרך אגב, ראיתי וידאו הדגמה של SOURCE במשחק של HL2.. פשוט מדהים....
 

tals56

New member
אבל רגע מה מנוע גרפי עושה?

הוא כאילו זה שקובע את הגרפיקה?
 

DadleFish

New member
בוא נגדיר את זה ככה

כמו שכבר ענו לך, HL2 מתבסס על SOURCE. דום 3 לא מתבסס על SOURCE אלא על מנוע שפותח על ידי id, החברה שפיתחה את SOURCE - זה מנוע אחר. שניהם שונים מהמנוע של FARCRY (שנקרא CRYENGINE) והמנוע של UNREAL (שנקרא UNREAL ENGINE). התפקיד המרכזי של המנוע (ויש לו עוד הרבה) הוא לצייר את התמונה על המסך. עכשיו, אם תחשוב קצת, תבין שככל שיש יותר פרטים על המסך, כך המנוע מתאמץ יותר והדרישות שלו מהחומרה גבוהות יותר. לכן יש גבול מסוים של גרפיקה שאי אפשר לעבור בכל שלב נתון, כאשר הרמה המקסימלית מוכתבת על ידי החומרה הטובה ביותר שיש בשוק. בפועל, מנועים לא מכוונים לרמה הכי טובה שיש בשוק, כי אם הם יעשו את זה יהיה להם שוק מאוד מאוד קטן. עכשיו קצת יותר טכני, קח לדוגמה דמות של חייל למשל, שמורכבת מ-5000 משולשים (כל אובייקט תלת מימדי שאתה רואה במשחק מורכב ממשולשים). בוא נגיד שהחומרה שלך יכולה להציג מקסימום 3 מיליון משולשים בשניה אחת. משחקים נורמליים רצים ב-60 FRAMES PER SECOND, ולכן יש לך בערך 50,000 משולשים ל-FRAME בודד. בוא נגיד שיש לך 4 דמויות כאלו של חיילים, ותוסיף לזה כל מיני אפקטים סביבתיים - מהר מאוד אתה מחסל את הכמות המקסימלית שיש לך להציג. עכשיו קח את החייל הזה ושים אותו 200 מטרים מהמצלמה. זה אומר שהוא יהיה די קטן. אין טעם להציג 5000 משולשים בשבילו, כי הוא תופס בס"הכ 500 פיקסלים, ולכן זה בזבוז זמן לצייר שוב ושוב את המשולשים האלו. פה למשל נכנס משהו שנקרא LEVEL OF DETAIL. מנועים משובחים יודעים לעשות LOD בצורה איכותית, ככה שבעיקרון יוצגו פחות משולשים (ואז תוכל לשים גם 50 חיילים בתנאי שהם רחוקים). או למשל בריכה. בלי להיכנס לטכניקה, כדי לצייר בריכה עם השתקפות ועם שבירת אור וכו', אתה צריך בערך 10 מעברים על התמונה - כלומר, לצייר את המסך 10 פעמים! אם היו לך 50,000 משולשים שיכולת לצייר, עכשיו נותרו 5,000. כמובן שמה שייפגע הוא לא מספר המשולשים. מה שייפגע הוא ה-FPS. אתה יכול לצייר 6,000,000 מצוירים אם בא לך (תיאורטית לפחות), אבל ה-FPS שלך יירד ל-0.5 במקום 60 - שזה כבר לא משחק, זו תוכנה מעצבנת. לסיכום, ככל שהמנוע הגרפי טוב יותר, כך עולה היכולת להציג תמונה יותר איכותית. ואם אתה חושב שאין הבדל בין SOURCE לבין הדור הקודם, לך לאתר של REVIEWS של משחקים (כמו GAMESPOT) ותעמיד תמונה של HALF LIFE מול תמונה של HALF LIFE 2 ונראה אם תגיד את זה עדיין
 

tals56

New member
אין הבדל בין HL1 לHL2?

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

someboddy

New member
ההבדל הוא לא בגלל המנוע

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

Fantasy WRC

New member
המשולשים שמה מורכבים אובייקטים

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

Fantasy WRC

New member
אמרתי, בשביל כמה שיותר פוליגונים

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

someboddy

New member
הדבר הכי חשוב במנועי גראפיקה...

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

someboddy

New member
טוב, לאחר ימים של ציפיה, הנה התשובה

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

DadleFish

New member
אתה מדבר על Pixel shaders

אתה מאוד כריזמטי, אבל אני אתקן אותך בכל זאת ברשותך
SHADER, בבסיסו, הוא תוכנית קטנה שרצה איפשהו ב-PIPELINE. ה-PIPELINE הוא תהליך שעובר על הסצינה - לא אכנס לזה לעומק, אבל הרעיון הוא לקחת את כל המידע כמו ורטקסים, טסקטורות, טרנספורמציות ועוד - ולהפוך את זה לתמונה דו מימדית על המסך. ישנם כל מיני שלבים בתהליך, ובשנים האחרונות נכנסו השיידרים בתור "עוד" משהו שאפשר לעשות בדרך בצורה מאוד יעילה ומהירה. היום הכיוון הוא להחליף את כל ה-PIPELINE בתוכניות שיידרים. זה קצת מצחיק כי זה בעצם מחזיר אותנו אחורה לימים שבהם עשינו הכל ידנית - אלא שעכשיו הדברים יתבצעו על הכרטיס הגרפי ולא על המעבד של המחשב. בכל אופן, עולם השיידרים מתחלק לשניים, ובקרוב לשלושה חלקים. כיום יש pixel shaders שעושים את מה ש-someboddy אמר, ויש vertex shader שמטרתם לעשות שינויים של הורטקסים, למטרות אפקטים כמו למשל "עין דג" במצלמה. בעתיד הלא רחוק יהיה סוג חדש של שיידרים, שייקראו Geometry shaders. בנוסף יש רעיון לעשות שיידרים כלליים שישמשו למטרות כלליות, כמו חישובים כאלו ואחרים על הכרטיס הגרפי (שמיום ליום מתקרב להיות "כרטיס משחקים" שיוכל לחשב גם פיזיקה ובינה מלאכותית וכו').
 

tals56

New member
אז תגידו פוליגונים

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

DadleFish

New member
פוליגון זה לא משולש

משולש הוא פוליגון - ההיפך לא נכון.
 

DadleFish

New member
אה, אוקיי,

אז לא הבנתי אותך נכון. הגרפיקה היא פחות או יותר באותה רמה כשמדובר באותה רמה של הפקה. אפשר להשוות בין FAR CRY, DOOM3, HALFLIFE2. אי אפשר להשוות אותם נניח ל-UNREAL TOURNAMENT 2003, ואפילו לא ל-UT2004, שהמנוע שלו נטול שיידרים. ישנן דרכים רבות לייצג אובייקטים תלת מימדיים. אני לא אכנס אליהן כרגע, אבל במהות הבסיסית - כרטיסי המסך שיש כיום מיועדים להצגת משולשים.
 
למעלה