מתכננים לפתח מערכות עם תלת ממד עשיר ומדויק? הכירו את האתגר הגדול בתחום ואת הפתרון החכם שיצרו עבורכם.
בשנים האחרונות דפדפני ה-WEB פיתחו את האפשרות להציג תלת ממד בצורה איכותית באמצעות טכנולוגיה שנקראת WebGL, וכיום הטכנולוגיה נתמכת כיום גם בדפדפנים של ניידים (מאז גרסת Android 5 ו-iOS 8.1). יזמים וארגונים מיהרו לנצל את הטכנולוגיה כדי ליצור יישומי WEB פורצי דרך כגון
tinkercard ליצירת מודלים להדפסה, MapBox להצגת מפות ומבנים בתלת ממד, פתרונות להדמיית דירות וכמובן הרבה משחקים. אבל עם התיאבון באים האתגרים, ואם בדרך כלל מדברים על יתרון לגודל, כאן כבר מדובר על ממד אחר.
האתגר
כאשר רוצים להציג גופים אמיתיים, גדולים ומפורטים על גבי הרשת נוצרת בעיה: כמות המידע העצומה שיש להעביר במקרה זה מאריכה מאוד את זמן ההורדה למחשב וכוח המחשוב שנדרש להצגתם לא היה זמין בכל מחשב, שלא לדבר על מכשירים ניידים.
מהו Point Cloud?
כדי להבין את האתגר שעומד מאחורי העבודה בתלת ממד ברשת עם גופים אמיתיים יש להבין את הרעיון של ענן הנקודות. כאשר סורקים גופים בתלת ממד - בין אם באמצעות רצף של תמונות מזוויות שונות, באמצעות לייזר או כל אמצעי אחר - מקבלים אוסף של נקודות במרחב הנקרא Point Cloud.
כל נקודה ב-Point Cloud מקבלת ערכים של מיקום X, Y ו- Z וכן צבע RGB. כך לדוגמה, אם בוצע רצף של תמונות, תמונות אלה יוזנו לאלגוריתם שינתח אותן על פי נתוני הזווית והמיקום של כל תמונה. כתוצאה מהניתוח ייווצר מאגר הנתונים של Point Cloud, כלומר רשימה ארוכה של נתוני Z, Y ,X וצבע. באופן דומה ניתן לסרוק בשיטה זו מבנים שלמים, רכבים, מטוסים, או כל אובייקט גדול אחר. את אוסף הנקודות הזה תוכנות ואפליקציות מסוגלות לתרגם חזרה לאובייקט וירטואלי שאותו ניתן להציג, להזיז, לסובב ואף לנוע בתוכו.
כמובן, שכאשר מדובר בסריקה של מרחבים או אובייקטים גדולים, נוצר ענן נקודות עצום שלרוב יהיה גדול מכדי להיות מאוחסן על גבי זיכרון של מכשיר טלפון או אפילו מחשב רגיל. כדי להתמודד עם המשימה יש צורך לארגן את הנתונים בשיטה חסכונית מקומית זיכרון, ועל פי סדר מסוים שיאפשר שליפה מהירה, ומעבר לכך גם עריכה שלהם.
הפתרון: Potree
Potree היא ספרייה שפותחה במיוחד כדי להציג ענני נקודות על פי שיטה מתקדמת וחסכונית שכזו, ובמיוחד ב-Web. היתרון הגדול של Potree הוא היכולת להציג בכל רגע נתון למשתמש רק את המידע הרלוונטי עבורו. בכך היא מצמצמת את כמות הנקודות שיש לעבד ואת כוח המחשב הנדרש. למעשה, Potree היא הכלי היחיד כיום להצגת מידע עשיר שכזה ב- WEB באופן יעיל.
ניקח לדוגמה בניין שצולם על ידי רחפן מעשרות זוויות שונות. לממדי ה-X וה-Y ונתון הצבע הרגילים שקיימים עבור כל נקודה בכל תמונה, יתווסף גם נתון של גובה. כעת נוצר לנו ענן נקודות גדול, שאם ננסה להעביר אותו בשלמותו למכשיר הקצה נפגע כנראה בחוויית המשתמש. אך על פי האלגוריתם של Potree, אם נסתכל על מודל הבניין מרחוק יוצג לנו רק המספר המינימלי של נקודות כך שהמודל יראה "חלק" ו"שלם", זאת למרות שהוא לא מכיל את כל הנקודות שנאספו. ככל שנתקרב ונעשה זום, יותר ויותר נקודות ייחשפו לנו אבל רק של האזור אליו אנחנו מסתכלים. החיסכון במשאבים הוא עצום וחווית המשתמש היא חלקה ומהנה.
תלת ממד - עולם אין-סופי של אפשרויות
בין היישומים בהם משתמשים ב-Potree ניתן למנות הצגה של שטח גאוגרפי, כולל היכולת להוסיף קווים ואיורים על גבי השטח הווירטואלי. Potree יכול לשמש כדי להציג מבנים כגון גשרים, מפעלים ומבנים היסטוריים. ניתן גם לייצר שכבות של מידע – לדוגמה, הדמיה של מבנה על גבי תוואי שטח. ניתן להיעזר בספרייה כדי לעבד את המידע ולהציגו במודלים שונים – כגון הצגה של גובה על פי צבעים, לבצע מדידות על בסיס המודל התלת ממדי ולהוריד או להוסיף שכבות של נתונים. היישומים הם אין-סופיים – החל מיישום המאפשר לכוחות ביטחון להתנהל בשטח בלתי מוכר, דרך ארגון מידע ויזואלי לקבלת החלטות בקרב הנהלות ארגונים, מחקר, וכלה באפליקציות למשתמש הפרטי כגון משחקים.
אנחנו רואים יותר ויותר יזמים פונים לעולמות התלת ממד כדי ליצור חוויות משתמש עשירות ופורצות דרך. על אף שהביצועים הטכנולוגיים ועוצמת המחשוב גדלים במהירות, עדיין התלת ממד מייצר אתגרים ייחודיים שדורשים פתרונות מיוחדים ומתוחכמים. אך כפי שאנחנו יודעים, טכנולוגיה היא רק אמצעי, וכאשר יש רעיון טוב שיכול לעשות שינוי בעולם, תמיד יימצא הפתרון הטכנולוגי המתאים. ותלת הממד הוא עולם עצום שרק מחכה ליזמים עם הרעיון הגדול הבא.