שאלה בתלת מימד.

מאיה 3

New member
שאלה בתלת מימד.

שלום לכולם. אני בונה אפליקציה קטנה בתלת מימד ונתקעתי בכל מה שקשור להצגה והסתרה של פיאות. מה שאני בונה זה משטח גדול שעליו כל מיני קוביות. לכל קובייה ,וגם למשטח, יש לי את המרחק מראשית הצירים (x,y,z). הצלחתי לסובב את את זה בתלת מימד, אבל אני לא יודעת רק איך אני מסתירה למשל קובייה בקובייה אחרת, או קובייה שמוסתרת על ידי המשטח. הוספתי תמונה להדגמה - קוביה על משטח בתלת מימד. אם אני מסובבת את זה אז הכל מתחרבש לי. איך אני יכולה לבדוק איזו פיאה/משטח לצייר קודם ? (ניסיתי לפי חישוב ערכי ה z אבל זה לא עבד ). תודה !
 

ChipsMan

New member
אממ...

תשמרי "ערך Z" לכל פיקסל בתמונה. תאתחלי את התמונה כך שערכי ה-Z של כל הפיקסלים הם מקסימאליים (תקבעי ערך מיוחד שיהיה "אינסוף"). כל פעם שאת באה לצייר פיקסל בנקודה (x,y) תבדקי האם ערך ה-z של הנקודה (x,y) יותר גדול מערך ה-z של הפיקסל שאת באה לצייר. אם כן, תעדכני את הצבע של הנקודה (x,y). אם לא, תשאירי את הצבע הקודם בנקודה (x,y). לטכניקה הזאת קוראים Z-Buffer. בהצלחה.
 

מאיה 3

New member
יש לי רק את....

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

ZDanielZ

New member
המממ...

רק עם אלו, זה יהיה קשה. איך את מציירת את הפאות שלך? כי בשלב הזה, זה יהיה מצוין להוסיף בדיקת Z-Buffer. כתוספת לזה (אבל לא במקום), ציירי את הפאות מהאחורית לקדמית.
 

ChipsMan

New member
רק עם אילו זה מטורף..

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