Lighting Estimation API מספק נתונים מפורטים שמאפשרים לחקות אותות תאורה שונים כשמריצים רינדור של אובייקטים וירטואליים. ב-ARCore יש תמיכה בשלושה מצבי הערכה של תאורה:
דרישות מוקדמות
לפני שממשיכים, חשוב להבין את המושגים הבסיסיים של AR ואת האופן שבו מגדירים סשן ARCore.
הפעלת אומדן התאורה
כדי להפעיל את הערכת התאורה באפליקציה, יש לפעול לפי השלבים הבאים.
- מגדירים פרויקט AR Foundation או פרויקט ARCore Extensions.
- בכרטיסייה Hierarchy, עוברים אל XR Session Origin > AR Camera.
- בקטע של הרכיב AR Camera Manager, בוחרים באפשרות Light Estimation.
- בתפריט הנפתח Light Estimation, בוחרים את המצבים שבהם רוצים להשתמש.
הפעלת מצב HDR בסביבה
מצב HDR סביבתי מאפשר את ההגדרות הבאות של הערכת התאורה:
- כיוון התאורה הראשי
- עוצמת התאורה העיקרית
- Ambient Spherical Harmonics
המצב הזה מופעל באופן אוטומטי אם התנאים הבאים מתקיימים:
- התכונות 'הרמוניקות ספריות סביבתיות', 'כיוון התאורה הראשית' ו/או 'עוצמת התאורה הראשית' נבחרות במצב 'הערכת התאורה' שמסופק על ידי מנהל מצלמת ה-AR.
- סנסורים לסביבה מופעלים ב-
AREnvironmentProbeManager
- נבחרה הגדרת מצלמה תואמת
הפעלת מצב עוצמת אווירה
אומדן אור בסיסי מופעל באופן אוטומטי כשבוחרים באפשרות מצב עוצמת תאורת אווירה ברכיב ARCameraManager
.
במצב 'עוצמת אווירה' מופעל הערכת התאורה לפי ההגדרות הבאות:
- Ambient Color
- עוצמת הסביבה
שימוש בנתוני התאורה בסצנה
אחרי שתגדירו את הגדרות התאורה הנכונות, תוכלו להאיר את האובייקטים הווירטואליים בסצנה כאילו הם חלק מהעולם האמיתי.
הרכיב ARCameraManager
יכול להפעיל אירוע frameReceived
שמעריך את תנאי התאורה של התמונות כשהתכונה 'הערכת התאורה' מופעלת. מידע מאירועים מסוג frameReceived
מאוחסן במבנים מסוג ARCameraFrameEventArgs
בתור ARLightEstimationData
.
כדי לשנות את הפרמטרים של תאורה במהלך זמן הריצה, פועלים לפי השלבים הבאים.
- יוצרים או משנים את תאורת ה-Directional Light הקיימת בסצנה.
מחברים סקריפט חדש ל-Directional Light.
// Sample Lighting Estimation script Light light; void Awake () { light = GetComponent<Light>(); } void OnEnable() { if (cameraManager != null) cameraManager.frameReceived += FrameChanged; } void OnDisable() { if (cameraManager != null) cameraManager.frameReceived -= FrameChanged; } void FrameChanged(ARCameraFrameEventArgs args) { // Modify `light` parameters using ARCameraFrameEventArgs. }
משנים את הסקריפט החדש הזה כדי לזהות שינויים בתאורה. לדוגמאות לכך, אפשר לעיין בסקריפטים
BasicLightEstimation.cs
ו-HDRLightEstimation.cs
של Unity.
שימוש במדדי סביבה בסצנה
כדי להפעיל בדיקות סביבה בסביבה שלכם, יש לבצע את השלבים הבאים.
- מפעילים את המיקום האוטומטי ב
ARSessionOrigin
של הסצנה. - מוסיפים רכיב
AREnvironmentProbeManager
ל-ARSessionOrigin
.