עבור לתוכן

DooM3 - שחיטת פרה קדושה.

Featured Replies

פורסם

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

קודם כל, בשונה ממונעי OpenGL אחרים שבדרך כלל הכילו מסלולי OpenGL מותאמים לכרטיסים של nVidia, דום מכיל מסלולים סטאנרטיים של ARB(הוועדה שאחראית על פיתוח הOpenGL), אם אני לא טועה הוא מכיל 3 מסולים, ARB0 ARB וARB2. עכשיו הGF6 והFX כמו הR9500 ומעלה, מופנים למסלול הARB2.

מה זה בעצם המסלולים, הOpenGL בעצם מבוסס על הרחבות(סיפריות שמכילות פונקציות שקומפלו מראש) ההרחבות האלה מדמות שיידרים, לייתר דיוק דימו, כיום כבר הOpenGL תומך בשפת שיידרים, כמו Cg וGLSL, בגרסאות ה1.5 בעצרת הרחבה, ובגרסאת ה2.0 בתור סטאנדרט. עכשיו כשאר ARB הוציאה גרסאה חדשה לOpenGL היא הוציא ספריית פונקציות שאותן יצרניות הכרטיסים הגראפים הכניסו לכרטיסים שלה, בנוסף לזה יצרניות הכרטיסים הכניסו גם פונקציות משלהם. עכשיו nVidia בעבר דאגה להכניס הרבה יותר הרחבות לתוך התמיכה שלה בOpenGL מאשר ATi, הדבר הזה אפשר למשחקי OpenGL להשתמש בהרחבות שנוצרו ספציפית לכרטיסים שלה, כאשר הכרטיסים של ATi בדרך כלל רצו תחת הרחבות סטאנדרטיות של ARB. הדבר הזה יצר בעבר יתרון לכרטיסים של nVidia בOpenGL.

אם זה באמת מעניין מישהוא הנה ההרחבות שבהם תומך הX800

GL_ARB_multitexture GL_EXT_texture_env_add GL_EXT_compiled_vertex_array GL_S3_s3tc GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_multisample GL_ARB_occlusion_query GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_transpose_matrix GL_ARB_vertex_blend GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_element_array GL_ATI_envmap_bumpmap GL_ATI_fragment_shader GL_ATI_map_object_buffer GL_ATI_separate_stencil GL_ATI_texture_compression_3dc GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_ATI_texture_mirror_once GL_ATI_vertex_array_object GL_ATI_vertex_attrib_array_object GL_ATI_vertex_streams GL_ATIX_texture_env_combine3 GL_ATIX_texture_env_route GL_ATIX_vertex_shader_output_point_size GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_EXT_texgen_reflection GL_EXT_texture3D GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_vertex_array GL_EXT_vertex_shader GL_HP_occlusion_test GL_NV_texgen_reflection GL_NV_blend_square GL_NV_occlusion_query GL_SGI_color_matrix GL_SGIS_texture_edge_clamp GL_SGIS_texture_border_clamp GL_SGIS_texture_lod GL_SGIS_generate_mipmap GL_SGIS_multitexture GL_SUN_multi_draw_arrays GL_WIN_swap_hint WGL_EXT_extensions_string WGL_EXT_swap_control

והנה ההרחבות שבהם תומך ה6800

GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_imaging GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_shadow GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_transpose_matrix GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_vertex_array GL_HP_occlusion_test GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KTX_buffer_region GL_NV_blend_square GL_NV_centroid_sample GL_NV_copy_depth_to_color GL_NV_depth_clamp GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_texgen_reflection GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_expand_normal GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control

כמו שאתם רואים, ל6800 יש יותר הרחבות ספציפיות של nVidia אבל סה"כ התמיכה בהרחבות סטאנדרטיות היא זהה. כל הרחבות הללו מכילות פונקציות או מאפשריות לקמפל פונקציות חדשות(שיידרים) שישמשו את יוצרי המשחקים.

עכשיו בשל זאת שDooM3 משתמש בפונקציות סטאנרטיות של ARB, ה6800 עם וללא הפונקציות הספציפיות של nVidia יציג אותם ביצועים.

עכשיו כן nVidia משתמשת בShaderReplacments בDooM3 אבל זה לא יוצר הבדל גדול במיוחד, המהירות ליבה של הכרטיסים החדשים של ATi גבוהה בהרבה מהכרטיסים התואמים של nVidia ככה שמבחינה של קימפול שיידרים לכרטיסים של ATi יש יתרון ובנוסף לזה שDooM3 רחוק מלהיות משחק עתיר בשיידרים, כל הקטע הזה רחוק מלהיות רלוונטי כאשר מדובר על הפרשים של 15-20% בביצועים.(ללא אופט' מצד ATi)

ההבדלים בביצועים של DooM3 נובעים מהסתגלות הכרטיסים לרינדור הצללים הדינאמיים של DooM3. עכשיו ההבדלים בביצועים נובעים מכמה דברים.

1) כמות דגימות Z/Stencil למחזור שעון.

2) אופט' ופעולות מיוחדות של הZbuffer כמו fast Z ואופט' לStencil Buffer.

3) אופט' לרינדור Shadow Volumes בפרט.

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

Z-buffer: זהו אזור בזכרון שבו נשמרים ערכי Z(עומק) המחשב משתמש בZ-buffer כדי לדעת איזה טקסטורות גלויות לעין ואיזה לא. בשלבים האחרונים של הרינדור המחשב מריץ דגימת עומק לכל פיקסל והטקסטורה עם ערך הZ הגבוה ביותר מרונדרת בסופו של דבר.

Stencil buffer: בעקרון ראיתי המון הגדרות שלו, אבל רובם לא היו הגדרות אלא שימושים שכחים שלו. בצורה הכי פשוטה הStencil Buffer זהו בעצם דף הקשקושים של הכרטיס, הכרטיס יכול לרשום "הערות" על כל פיקסל, על סמך הערות האלה הכרטיס יכול לבצע פעולות בשלב מאוחר יותר.

צללי Shadow Volumes וצללים בDooM3.

הרעיון מאחרי צללים לפי shadow volumes הוא בעקרון מאוד פשוט.

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

image001.gif

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

image002.gif

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

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

התמונה הבאה מראה סצנה שתראה מנקודת מבט כלשהי.

image003.gif

המספרים בקצוות החצים מראים על ערך הstencil אחרי רינדור הshadow volume. כל ערך שגדול מ0 נחשבים למוצללים.

האלגוריתם שעומד מאחורי ערכי הStncil הוא:

1) חשב צל חזיתי(החלק אחרי החפץ המצליל), אם בדיקת הZ עוברת(כלומר החלק שאמור להיות מוצל הוא בעל הZ הגבוהה ביותר) הגדל ערך Stnceil, אם לא אל תעשה כלום.

2) חשב צל אחורי(האזור שלפני החפץ המצליל), אם בבדיקת Z עוברת, הקטן ערך Stencil.(החלק הזה נועד למנוע רינדור של צללים של אמורים להיות שמה)

הבעיה הגדולה עם השיטה הבסיס לרינדור צללי Shadow Volumes שבוססה בשנת 1977!!! היא שכאשר נקודת המבט נמצאת בתוך הצללית, מתחילות המון בעיות. כמו כאשר תנקודת המבט נמצת בתוך צללית, בנקודה מסויימת יכול להווצר מצב שאתה לא תראה כלום, תחשבו על סוונור, אבל סוונור מצל. או למשל כאשר נקודת המבט נמצאת בתוך Shadow Volume ומסתכלת על חפץ אחר שנמצא בתוך Shadow Volume, נוצר בעצם ערך שלילי לערכי Stencil מסויימים, וזה מכשיל את רינדור כל הצל. כדי לתקן זאת על זה ג'ון קארמק הוסיף עוד אלגוריתם שיפצה על כך במקרה שהבדיקת Z נכשלת בשלב הראשון של רינדור הצללית. כל זה אולי מאוד מעניין אבל באמת שלא רלוונטי לעניין. מה שכן רלוונטי זה שהבנתו שצללים וללומטריים, מתבססים על שימוש נרחב בדגימות Stencil וZ לאורך רינדורם. עכשיו, בכל הכרטיסים של nVidia החל מסדרת הFX היחס בין פיקסלים לפעולות Z/Stencil, במחזור שעון הוא 1 ל2. ה6800U/GT עושים 32 :o פעולות Z/Stencil בפעימת שעון, ה6800nu עושה 24. הx800xt עושה 16, הx800pro עושה 12 בלבד.

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

עכשיו הGF6/FX כמו כל GF אחר, בודק quadים(קבצות של 4 פיקסלים 2x2) לבדיקת ראות. תכפילו את זה במספר הצ"ע של ה6800GT למשל ותקבל 64 למחזור שעון, זה אולי נראה הרבה אבל זה מה שעשה ה9700 כל הזמן הזה. הX800 לעומת הFX/GF6 עושה hierarchical Z בהתחלה הכרטיס בודק קבוצות של 8x8 פיקסלים, ואחריהם מפצל אותם לקבוצות קטנות יותר של 4X4 ולאחר מזה הוא בודק קוואדים פשוטים 2x2. הדבר הזה אולי נראה מגושם וארוך יותר אבל זה מאפשר לו לעבד 256 :o פיקסלים במחזור שעון. בעקרון, לכרטיסי הRadeon יש Early-Z-Occlusion(בדיקה של איזה פיקסל יראה בסוף על המסך) הרבה יותר טוב. אבל בDooM3 זה לא עובד, הבדיקה של DooM3 מכירה רק בQuadים, והנזק נהיה עוד יותר גרוע כאשר מפעילים AA, ה6800 ממשיך להפיל quadים ללא תלות בפיקסלים הנוספים שצריך לדגום בשל הAA, ואליו הx800 דוגם גם אותם. עכשיו, הבאפרים ב6800 מסודרים בצורה היררכית, כאשר הכתיבה לבאפר הראשון היא מהירה בצורה משמעותית(משהו כמו פי 6) מלשאר הבאפרים. בהתחשב שDooM3 משתמש בZ מוקדם, וכותב את הZ-buffer ראשון, זה לא מפתיע(שוב הכפפה שמתאימה בול...).

עכשיו בכל משחק הכרטיסים עושים כמות כלשהי של עבודה "בלתי נראת", מקרים שבאם הפיקסלים מצויירים מחדש אחד על הגבי השני, באותו PASS. סתם לידע כללי, יחס הoverdraw במשחקים הוא בדרך כלל פי 2 ממה שצריך, כלומר שהכרטיס מעבד פי2 יותר פיקסלים ממה שהוא צריך תכלס. בגלל שבDooM3 ערכי הZ כבר מוכנים, לפני הcolor pass. רוב הפיקסלים הלא רלוונטיים מועפים.

לכן כאשר Early-Z-Occlusion מופעל, הכרטיס שימיין את הפיקסלים הנראים הכי מהר יהיה "המנצח". וכאן ה6800 מתאים בול, לצורת דגימת הZ המוזרה של DooM3(קוואדים בלבד, וZbuffer מרונדר מראש). תוסיפו לזה ניצול טוב יותר של הROP בDooM, הcolor pass בDooM3 לוקח פחות מחזורי שעון ב6800. והיח' ROP השניה לכל צ"ע שפעילה רק כאשר AA מופעל מנוצלת הרבה יותר טוב במשחק הזה תחת ה6800 בשל זאת שהוא מתעלם מהפיקסלים הנוספים בדגימת הZ.

עכשיו אז מה יוצא לנו ביינתיים, ה6800 עושה יותר דגימות Z/stencil לפעימת שעון, דבר שאידיאלי לDooM3, וגם הEarly-Z-Occlusion שלו נראה כאילו הוא נבנה במיוחד לDooM3 או ההפיך.

ואם זה לא מספיק לכם קבלו נא במחיאות כפיים סוערות :yelclap:, את אחד מהפונקציות הכי לא שימושיות, כמובן חוץ מבDooM3 ו3Dmark03. הUltraShadow. וכל זה ביחד עםאופט' כמו tow sided stencil. יוצר green mean dooming machine

הUltraShadow I/II מאפשר לעשות Clipping(ניפוי מראש) של האלמנטים הלא רלוונטיים כאשר מרנדרים Shadowvloumes. הUS מתבסס על טכנ' בשם Vertex clipping שפותחה ע"י 3Dfx בימיה האחרונים.(מעניין איך היא הגיע לנבידיה :nixweiss::lol:)

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

הנה למשל תמונה של סצנה, עם כל הצלליות בDooM3 כפי שהיא תצתרך להיות מרונדרת דרך כל כרטיס ללא US, כמו הX800.

su1.jpg

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

והנה אותה סצנה, רק שעברה Clipping תודות לUltraShadow.

us2.jpg

עכשיו אם הייתם כרטיס מסך, איזה סצנה הייתם מעדיפים לרנדר ?who`s your dady  :lol:

עכשיו כל המחזורי שעון שאני מקשקש עליהם, נכון שיש איזה מאות מיליונים מהם, אבל במשחקים זה מאוד חשוב. saving the nano sec.

למשל הליבה של הX800pro פועמת בתדירות של 450mhz, או 450 מיליון מחוזרים בשניה. עכשיו נגיד שיש לנו משחק, שברזולוציה של 1024*768. הוא רץ ב100fps. כלומר בשביל כל פריים, הכרטיס שורף 4.5 מיליון פעימות שעון. עכשיו תתארו לעצמכם מצב שבו הכרטיס צריך לעשות פעולת שעון אחת, אחת בלבד נוספת על כל פיקסל. תכפילו את זה במספר הפיקסלים שמרכיבים סצנה ברזולוציה של 1024*768. תקבלו עוד 780~ אלף פ"ש. עכשיו אז במקום 4.5 פ"ש לframe שיתנו לנו 100fps. אנחנו צריכים 5.28 מיליון פ"ש ומזה כבר נקבל 85fps בלבד. וזה רק עוד פעימת שעון אחת! תוסיפו 2, 3, 10, 20 תקבל נפילה עצומה בFPS. אופטימיזציה אחת שמורידה אפילו פעימת שעון אחת מכל פיקסל, משנה המון.

עכשיו זהו, האמת מאחורי DooM3 בצורה הכי שיטחית אבל מעמיקה שאפשר(שאני יכול לקמבן נ3 לפנות בוקר :lol:).

עכשיו תקראו, תפנימו ומקווה שתבינו.

And i don`t wanna here no more about that whole "ati has poor ogl support" crap!!!

פורסם

פששששש יפה בן אדם השקעת..

פורסם

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

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

מה גם שהמשחקים היום הם "מטעם" שנועדו לשכנעה אותנו שהכרטיס שלהם ,הוא הכי טוב , שלא נדבר על דריוורים ופצים וכו'

לפי התרשמותי, אין הבדל גדול בין ספינות הדגל של ATI ו-NVDIA ,אני בטוח שלכל כרטיס יש דברים מסוימים שהוא טוב יותר בהם

אתה בטח לא חושב ,שכרטיסי 6800 הם גרועים, (אני בטוח שאתה חושב ש-X800 מצוינת ), אבל !!!

אם אני אתן לך 1300 ש"ח ,איזה כרטיס תקנה X700-XT או 6600GT ?

ואם אני אתן לך 2500 ש"ח ,איזה כרטיס תקנה X800 PRO או 6800GT ?

פורסם
  • מחבר

והקשר לנושא הוא?

x700 או 6600GT זה קשה לדעת, עוד חצי שנה זה יכול להשתנו לגמרי, אבל כנראה ש6600. בקשר לGT או PRO, ללא ספק PRO.

סדרת הX800 מסתדרת יותר טוב עם עומסים גאומטריים כבדים, ושלא נתחיל לדבר על Vertex Shaders. ההבדלים בינהם רחוקים מלהיות גדולים כיום, והם רק יקטנו ויתהפכו בעתיד. ובנוסף לזה שיש סיכוי שאפשר יהיה לשדרג את הx800pro עם hardmod כמו שעשיתי לשלי, ככה שבכלל אין על מה לדבר.

פורסם

שמע אחי, אתה עושה "שיעורי ערב" בנושא כרטיסי מסך?

אתה יכול להיות בטוח שיש לך אותי... לא משנה איפה ומתי

המשך ככה!

יניב

פורסם

בכבוד רב,

[attachment deleted by admin - 90 dayss]

פורסם

כתבה יפה נתת,קצת ממה שהסברת אני לא מבין כל-כך אבל התוצאה ברורה.

הבעיה היא שיצאו עוד משחקים מבוססים על המנוע של דום3 כך שהבעיה תמשיך.

פורסם
  • מחבר

לא אמרתי שלא, אבל ATi עובדת על דרכים לשפר את ביצועי הכרטיסים שלה במנוע הזה, הUS זהו דבר שאפשר לסמלץ דרך הוורטקס שיידר, זה מה שהם מנסים כרגע. אני דיי בטוח שאפשר לבטל את הhierarchical Z בדרייברים ספציפית למשחק דרך הAi של הCCC, אבל אני לא יודע כמה זה יהיה יעיל ביחס למה שיש עכשיו. בכל מקרה, כל מה שזה בא להוכיך, שDooM3 זה פשוט משחק שמולבש על הכרטיסים של nVidia בצורה הכי חלקה, והיתרון שלה במשחק, לא נובע מתמיכה טובה יותר בOpenGL. לכן אפשר להיות אופטימיים ולחכות לעדכונים של המשחק, ולדרייברים חדשים. ולקוות שהם יצליחו לסדר את זה, ביינתיים ראיתי מספר דיסקוסים על אופט' חדשות בדרייברים של ATi ככה שאני ביינתיים אופטימי. :)

פורסם

כל הכבוד על ההשקעה!

פורסם

כתבה יפה נתת,קצת ממה שהסברת אני לא מבין כל-כך אבל התוצאה ברורה.

הבעיה היא שיצאו עוד משחקים מבוססים על המנוע של דום3 כך שהבעיה תמשיך.

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

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

אם אני אזכר איפה קראתי את זה אני אתן לינק (נדמה לי שבסקירה של HardOCP על דום 3)

פורסם
  • מחבר

זה נכון בעקרון(היתרון שיש לNV בZ מוקדם, וUS ישארו, אופט לTexture look up, Shader replacments וכו' הן ספציפיות לDooM3), וכבר אמרתי מספר פעמים שחלק מההאופט' האלה הן ספציפיות למשחק. אבל יש סיכוי לא קטן שהן יעברו גם למשחקים הבאים, לפחות לQuake IV. עד כמה האופט' האלה יעברו למשחקים אחרים זה לא ידוע. בקשר לUS בעקרון הUS לא ישאר עוד הרבה זמן בכרטיסים של nVidia כנראה, השאלה היא כמה זמן ישאר המנוע של DooM3 בשטח.

בנוסף לזה DooM3 המנוע תומך בכמה דברים שיש כרגע לכרטיסים של ATi בלבד. למשל DooM3 המנוע תומך גם בOpenGL2.0, אבל המשחק לא משתמש במסלול הזה בשל מחסור בתמיכה בו בכרטיסם של nVidia. המנוע תומך גם בnPaches AKA TruForm אבל שוב גם כאן המשחק לא משתמש באופציה זאת, למרות שאפשר בעקרון להפעילה דרך הקונסולה כמדומני, כמו שהיה עם Quake III והמשחקים שהתבססו עליו. מה שכן קארמק מעוניין בלהכניס 3Dc לQuake4, הוא טוען שזה ישפר בצורה משמעותית את איכות המשחק, ובפטונציאל יכול למנוע את הצורך להשתמש בBumpmaping האינטנסיבי של דום 3. ולשפר את האיכות הוויז'ואלית של המנוע עוד יותר.

פורסם

:o :o :o

כל הכבוד!!!!

החכמתי! :hi:

פורסם

כל הכבוד על ההשקעה באמת מושקע

זו אולי הפעם הראשונה שאני רואה ירידה לעומק הפרטים

כל הכבוד :yelclap:

רק על הכתבה הייתי נותן לך עוד כוכב :yelclap:

:xyxthumbs: :xyxthumbs: :xyxthumbs: :xyxthumbs: :xyxthumbs:

פורסם

באמת כתבה מעמיקה .... הסברת לי המון!

יפה מאוד :xyxthumbs:

תודה !

פורסם

כל הכבוד :yelclap:

כתבה מעולה שמסבירה את הפרטים הקטנים, המשך כך! :xyxthumbs:

ארכיון

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

דיונים חדשים