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
.