rotation למטריצה

אלדד28

New member
לפעמים גמישות לא באה על חשבון

מהירות - כמו שהצעת, template-ים זו דוגמה מצוינת. ברור שאעבוד ישירות עם D3DMATRIX, השאלה המקורית הייתה לגבי סיבוב המטריצה. למשל, לעטוף אותה ב-interface שכולו inline ובאמת פשוט ממיר x ו-y. זה פתרון יפה.
 
לא פותר לך את הבעיה

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

voguemaster

New member
דווקא תוכנות לעיצוב תלת מימדי

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

הרי אנחנו בכל זאת מדברים על כך במשחקים שואפים להגיע ל-FRAME RATES מאוד גובהים, עם FULL SHADING (אני מדבר על VERTEX SHADING או PIXEL SHADING) ב-FULL SCREEN, ואילו תוכנות תלת מימד עדיין רצות ב-WINDOWED MODE, ולא דורשות את הנ"ל. הרבה יותר חשוב בתוכנת תלת מימד שתוכל להוסיף או להוריד טרנספורמציות מ-MESH לדוגמה. אין בהכרח קשר למטריצות D3D של 4X4. איך אתה חושב שמיישמים MODIFIER STACK ב-MAYA או 3DS MAX? ברור ששם חשוב יותר שה-MESH שלך ישנה במהירות בהתאם לטרנספורמציות שאתה כופה עליו.
 

MotiAd

New member
לא מסכים לחלוטין...

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

איתי? לא הבנתי ממה שאתה כותב... ברור לך שיש הבדל משמעותי בביצועים בין מה שאתה מצפה לראות בתוכנות תלת מימד לבין מה שאתה מצפה לראות במשחק עם 100FPS. שים לב שבכל התוכנות שהזכרתי, שמיישמות MODIFIER STACKS, יש איזכור בתיעוד לעניין השימוש ב-STACK: ככל שתוסיף יותר MODIFIERS, כך שלב ה-RENDER יהיה יותר איטי. ולמה? כי בשלב ה-RENDER, עוברים על הרבה מאוד אינפורמציה, ו*כל* האינפורמציה הזו זורמת דרך ה-STACK. וזה לוקח הרבה זמן. תמיד ההמלצה בתוכנות כאלה, היא "לרוקן" את ה-MODIFIER STACK לפני RENDER או לפני פעולה מסיבית אחרת.
 

voguemaster

New member
מצד שני

התוכנות האלו מרנדרות ב-viewports שלהן כמות פוליגונים גבוהה בצורה משמעותית מכל משחק שאי פעם היה קיים (ולדעתי שאי פעם יהיה).
 
איך בכלל הגענו

לדיון הזה, אני לא מבין. הבעיה "בביצועים" שאלדד28 הזכיר קשורה לעניינים של "כן ליישם את המחלקה ב-INLINE" או לא. וכבר הסכמתי ששינויים כאלה יעלו את הביצועים מ-10N ל-9N או משהו כזה. סבבה. אבל אני מדבר על שינויים בסדרי גודל: טרנספורמציה בזמן קבוע, לעומת טרנספורמציה בזמן לא קבוע. כל השאר זה הינדוסים לכאן ולכאן. ברור, שבמקרה הגרוע (הצורך להגשת לכל איבר שעבר טרנפורמציה), כל השיטות תיתנה אותה תוצאה מבחינת יעילות. אבל במקרה הפחות גרוע, כאשר לא צריך לגשת *לכל* המספרים שעברו טרנספורמציה, מרוויחים בביצועים, וזאת כי לא מבצעים טרנספורמציה על איברים שלא נחוצים. לצורך העניין, בתוכנות תלת מימד, אני לא רואה את *כל* הפוליגונים ב-VIEWPORT בד"כ, אבל אם אני *כן* רואה את כולם (=המקרה הגרוע), אז זה יקח קצת זמן להציג את הסצנה. הבה לא נשכח שברמה הנדסית אפשר לשפר תמיד ביצועים גם של העניין הזה, ע"י CACHING של פוליגונים אחרי טרנספורמציה, וכו'. מן הסתם זה מיושם בכל תוכנה שמכבדת את עצמה.
 

Mapisto

New member
אני לא מבין מה זה רביע.

אשמח אם תסביר.
, מפיסטו.
 
עזוב "רביע"

0 = 0 מעלות 1 = 90 מעלות עם כיוון השעון 2 = 180 מעלות עם כיוון השעון 3 = 270 מעלות עם כיוון השעון זוהי משמעות הערכים השונים של ANGLE.
 
למעלה