עולם תלת מימדי בעזרת ה API החדש של player 10.

שילוב של טכנולוגית FreeSpin3D עם יכולות ה 3D החדשות של player 10. 

הדוגמא נכתבה ב  FB עם FLEX SDK  3.2

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

    

הקרקע והמצלמה מושתתים על ה 3D API של  player 10. ואילו ארבעת העצמים הם קומפוננטת FS3D ל CS4 (שתצא ביוני לקהל הרחב).

למעשה ב player 10 קיבלנו תוספת קטנה ואיכותית  ל API בסיפריות flash.geom ו flash.display.Graphics

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

לדוגמא  Vector3D ו  Matrix3D נותנים לנו חלק גדול מהתשתית המתמטית הדרושה לפיתוחי 3D. אפשר לראות זאת בפונקציה שמסובבת את המטריצה של המצלמה סביבי ציר ה Y בזוית מסויימת.

  
public function RotateWorldY(iAngle:Number):void
{
mMatrix.prependRotation(iAngle,Vector3D.Y_AXIS);
}

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

 

         

iMesh.mShape.graphics.drawTriangles(iMesh.mVertices2D, iMesh.mIndices2, iMesh.mUVTData2
, iMesh.mTriangleCulling);

הפונקציה drawTriangles מקבלת רשימה של Vertices, של הפוליגונים המורכבים מהם ואפילו UV בשביל למנוע את העיוות הפרספקטיבי שהיה מנת חלקינו ב Player 9. כן… גם הסרת פוליגונים שפונים אחורה אפשרית.

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

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

לסיכום :

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

 

כתיבת תגובה

האימייל לא יוצג באתר.

תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>