עבור לתוכן

Ogre vs OpenGL for 3D graphics. What is better?

Featured Replies

פורסם

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

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

אה, כן, ותצטרך גם את הספר הזה: http://www.amazon.com/Computer-Graphics-Principles-Practice-2nd/dp/0201848406/

פורסם

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

אני לא הייתי ממליץ לאף אחד (במיוחד לאדם שמתוודה שאינו מכיר את התחום) לרדת ישר ל API.

וזאת משלוש סיבות -

א) לוקח הרבה יותר מדי זמן להגיע לתוצאות סבירות.

ב) למה לכתוב קוד שמישוה אחר כבר כתב בשבילך?

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

1) קודם כל OGRE3D הוא מנוע גראפי, לא בהכרח למשחקים הוא יכול לשמש לכל מטרת וזואליזציה שהיא (ראו דמואים באתר - במיוחד את ofusion)

2) OGRE מבוסס הן OpenGL והן Direct3D.

3) OGRE הוא מנוע ברמה מסחרית! (ראו פרוייקטים לדוגמה באתר של OGRE)

4) הכוח של OGRE הוא בקלות השימוש שלו - מדובר במנוע נהדר שנכתב בצורה מאוד אלגנטית ונוח לשימוש ולמידה.

5) בניגוד למה שנאמר OGRE3D לא מגביל אותך בשום צורה שהיא. וגם אם יש לך צורך מאוד מאוד מאוד משונה תמיד ניתן לרדת לרמת ה 3D API.

6)OGRE3D מבוסס על מודל בשם Scene Graph שהיום הוא הסטנדרט בפיתוח גרפיקה תלת מימדית (כן.. אין היום בפרוייקטים מסחריים אף אחד חוץ מאולי כותבי מנועים גראפיים שמתכנתים מעל D3D או OpenGl)

7) עם OGRE אתה כנראה תגיע לתוצאות הרבה יותר מהר מאשר עם D3D.

8 ) עם כל הכבוד - MDX היא טכנולוגיה שכבר ממזמן (שנה) לא cutting edge. אם כבר אז XNA ומעליו AXIOM או Visual3D.Net

9) גם ל OGRE יש binding ל C# בשם MOGRE.

10) לOgre יש קהל משתמשים גדול, דוקומנטציה מפורטת, Tutorials, דוגמאות, וWiki מפורט למדי

11) לסיכום הן OpenGL והן 3D3 הן שפות נמוכות מדי בשביל ללמוד פיתוח 3D או בשביל לפתח משהו נורמאלי.

בתור מי שיצא לו להתנסות ב OGRE ואפילו להגיע לתוצאות די מרשימות אני לא הייתי מהסס להמליץ עליו הן למשתמש המתחיל והן למשתמש יותר מנוסה.

פורסם

אתה צוחק נכון?

:s07:

פורסם

למיטב הבנתי הוא רצה _ללמוד_ גרפיקה ממוחשבת, לא לרוץ ולפתח משהו ישר.

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

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

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

לגבי Ogre3d, באמת אני לא יכול להגיבף מלבד ההערה האחרונה שלך:

11) לסיכום הן OpenGL והן 3D3 הן שפות נמוכות מדי בשביל ללמוד פיתוח 3D או בשביל לפתח משהו נורמאלי.

זה כל כך מגוחך שזה כבר לא מצחיק. אתה עומד מאחורי הטענה הזו? שום דבר נורמלי לא נבנה עם OpenGL ו-D3D היום? אני מציע שאולי תנסח מחדש את זה...

פורסם

עזוב הבן אדם דגנרט.

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

בסה"כ מה שהוא עושה זה מתרגם את הוגה בוגה שלך לפקודות D3D או OpenGL בrender שלו.

AXIOM הוא גלגול שלOger.

Visual3D.net מתיישב על XNA וdotNET2.0 אפילו דורש אותם בשביל עבודה כלשהי עם התוכנה, כל מה שהם עשו זה ליצור GUI עם בילדר וויזואלי פשוט drag 'n'drop לXNA, שום דבר מעבר.

XNA כולה מימוש של MDX ברמה אחת מעבר לC# בלבד, כולמר סביבת עבודה יעודית שלמה.

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

זה כמו להגיד למה ללמוד HTML אם יש פרונט פייג', או למה ללמוד DBA עם יש לי אקסס...

תעשה לי טובה לכל מנוע יש API משלו, עם C# בכלל אפשר להגיד שכל דבר הוא "API" כיוון שגם התוכנה שלך היא ברמת אובייקט שאתה יכול לזמן אותה, או פונקציות שלה AKA using myapp.myfunction.

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

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

פורסם

לגבי Ogre3d, באמת אני לא יכול להגיבף מלבד ההערה האחרונה שלך:

זה כל כך מגוחך שזה כבר לא מצחיק. אתה עומד מאחורי הטענה הזו? שום דבר נורמלי לא נבנה עם OpenGL ו-D3D היום? אני מציע שאולי תנסח מחדש את זה...

זה לחלוטין לא מגוחך -

האם העובדה שהמחשב עובד באסמבלי אומר שמישהו באמת עובד באסמבלי? ממש לא ! היום עובדים בשפות ברמת דור שלישי ומעלה.

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

גם הAPI שלו הוא בדיחה בגלל שהוא אבסטרקטי ברמה מטורפת..

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

.

Ogre3D זה מנוע, אין לו שום תכונה לימודית מעבר ללדעת איך לעבוד איתו.

על אותו משקל לומר שלא ניתן ללמוד מ D3D שום דבר פרט ל API של D3D אבל זה יהיה דבר טיפשי לומר. (הבינו את הרמז)

אתה אומר לי שאני לא יכול ללמוד 3D ממנוע גראפי? מה בנוגע ל:

מיקום אובייקטים בעולם,וורטקסים, shaders, texturing, היררכיה, rigid body collision, מטריצות טרנספורמציה, מטריצות צירים.

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

אני אומר שלא - ניתן לעשות את הכל ברמת אבסטרקטית יותר , מבלי סתם לכתוב קוד overhead, עם יכולות prototyping טובות יותר. ולכן עם יכולת לעסוק בעיקר ולא בכל המסביב.

פורסם

תבדיל בין לימוד לבין עבודה.

לדעת איך להפעיל API של סיבוב זו לא כמו לדעת איך עובדת מטריצת סיבוב ואיך היא נראית.

ללמוד גרפיקה הכוונה בדיוק ללמוד את הבסיס המתמטי: קואורדינטות הומוגניות. קווטרניונים לסיבובים (אם רוצים). bsplines. projection. טרנספורמציות. world space לעומת object space. איך עובד clipping ולמה בכלל צריך אותו?

זה שהמנוע שאתה עובד בו מחזיר לך רשימה של התנגשויות בין אובייקטים לא אומר שאתה יודע collision detection, כמו שהעובדה שאתה יודע לנהוג לא אומרת שאתה מבין מכוניות (שלא נדבר על מנועים).

האם העובדה שהמחשב עובד באסמבלי אומר שמישהו באמת עובד באסמבלי? ממש לא ! היום עובדים בשפות ברמת דור שלישי ומעלה

חוץ מכמובן מי שעובד באסמבלי :)

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

http://www.joelonsoftware.com/articles/LeakyAbstractions.html

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

בכל מקרה, אם שכחת, הנה דוגמא לכמה "דברים נורמלים" שממומשים ב-OpenGL או D3D. אולי שמעת עליהם איפהשהו?

Unreal Engine 3, Doom 3 Engine, Second Life, Maya והרשימה ממשיכה.

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

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

ארכיון

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

דיונים חדשים