שאלה ב-DirectX 8
אני עושה כל מיני נסיונות ב-DX8 ונתקלתי בבעיה שאני לא בטוח מאיפה היא נובעת. אולי עוד מישהו נתקל בתופעה.... בניתי פירמידה מ-6 משולשים (4 לדפנות ו-2 ליצירת ריבוע הבסיס) בראשית הצירים. הצבתי POINT LIGHT מעל הפירמידה עם DIFFUSE לבן. הגדרתי MATERIAL עם DIFFUSE אדום והשתמשתי בו ליצירת המשולש. האפליקציה שלי מאפשרת לי להעלות או להוריד את מיקום האור בעזרת החיצים. כאשר אני מזיז את האור, אני רואה שהשינויים בתאורה על הפירמידה אינם "רציפים", כלומר, לפעמים הפירמידה כולה "נכבית" ולפעמים כולה "נדלקת" בגוון אדום (כאשר אני מזיז את האור)... תופעות מוזרות קורות גם כאשר אני מזיז את האור ימינה ושמאלה. עקרונית, רק צד אחד של הפירמידה אמור להחזיר אור במקרה הזה, לא? עלי לציין ש-BACKFACE CULLING מופעל... עוד נסיון שעשיתי, הוא "להשכיב" הרבה משולשים (שטוחים - לא פירמידות) זה לצד זה רק שיווצר מעין "שטיח". ואז העברתי מעליו את מקור האור. שוב - חלק מהמשולשים נדלקו באדום, חלק בלבן וחלק היו כבויים, אבל כל תזוזה - קטנה ככל שתהיה, תמיד גרמה לשינויים לא רציפים! אז איך מקבלים תאורה נורמלית???? הערה: ע"פ המלצה שראיתי, כל VERTEX מוגדר ע"י XYZ ו-XYZ לנורמל, כלומר: D3DFVF_XYZ | D3DFVF_NORMAL. כמו כן, הנורמלים של כל קודקוד פונים "החוצה" מכל משולש, אבל באותו המישור. לדוגמה: הפינה הימנית של בסיס המשולש היא בעלת נורמל שממשיך ימינה (כאילו ממשיך את קו הבסיס של המשולש). תודה!
אני עושה כל מיני נסיונות ב-DX8 ונתקלתי בבעיה שאני לא בטוח מאיפה היא נובעת. אולי עוד מישהו נתקל בתופעה.... בניתי פירמידה מ-6 משולשים (4 לדפנות ו-2 ליצירת ריבוע הבסיס) בראשית הצירים. הצבתי POINT LIGHT מעל הפירמידה עם DIFFUSE לבן. הגדרתי MATERIAL עם DIFFUSE אדום והשתמשתי בו ליצירת המשולש. האפליקציה שלי מאפשרת לי להעלות או להוריד את מיקום האור בעזרת החיצים. כאשר אני מזיז את האור, אני רואה שהשינויים בתאורה על הפירמידה אינם "רציפים", כלומר, לפעמים הפירמידה כולה "נכבית" ולפעמים כולה "נדלקת" בגוון אדום (כאשר אני מזיז את האור)... תופעות מוזרות קורות גם כאשר אני מזיז את האור ימינה ושמאלה. עקרונית, רק צד אחד של הפירמידה אמור להחזיר אור במקרה הזה, לא? עלי לציין ש-BACKFACE CULLING מופעל... עוד נסיון שעשיתי, הוא "להשכיב" הרבה משולשים (שטוחים - לא פירמידות) זה לצד זה רק שיווצר מעין "שטיח". ואז העברתי מעליו את מקור האור. שוב - חלק מהמשולשים נדלקו באדום, חלק בלבן וחלק היו כבויים, אבל כל תזוזה - קטנה ככל שתהיה, תמיד גרמה לשינויים לא רציפים! אז איך מקבלים תאורה נורמלית???? הערה: ע"פ המלצה שראיתי, כל VERTEX מוגדר ע"י XYZ ו-XYZ לנורמל, כלומר: D3DFVF_XYZ | D3DFVF_NORMAL. כמו כן, הנורמלים של כל קודקוד פונים "החוצה" מכל משולש, אבל באותו המישור. לדוגמה: הפינה הימנית של בסיס המשולש היא בעלת נורמל שממשיך ימינה (כאילו ממשיך את קו הבסיס של המשולש). תודה!