Lighting Estimation API دادههای دقیقی را ارائه میدهد که به شما امکان میدهد در هنگام رندر کردن اشیاء مجازی، نشانههای مختلف نور را تقلید کنید. ARCore از سه حالت تخمین نور پشتیبانی می کند:
- از کار افتاده است
- حالت شدت محیط
- حالت HDR محیطی
پیش نیازها
قبل از ادامه، مطمئن شوید که مفاهیم اساسی AR و نحوه پیکربندی یک جلسه ARCore را درک کرده اید.
تخمین روشنایی را فعال کنید
این مراحل را دنبال کنید تا تخمین نور را در برنامه خود فعال کنید.
- یک پروژه AR Foundation یا پروژه ARCore Extensions راه اندازی کنید.
- در برگه Hierarchy ، به XR Session Origin > AR Camera بروید.
- در قسمت AR Camera Manager ، Light Estimation را انتخاب کنید.
- در منوی کشویی Light Estimation ، حالت(های) مورد نظر خود را انتخاب کنید.
حالت Environmental HDR را فعال کنید
حالت HDR محیطی تنظیمات تخمین نور زیر را فعال می کند:
- جهت نور اصلی
- شدت نور اصلی
- هارمونیک های کروی محیطی
هنگامی که معیارهای زیر برآورده شوند، این حالت به طور خودکار فعال می شود:
- هارمونیک های کروی محیطی، جهت نور اصلی و/یا شدت نور اصلی در حالت تخمین نور ارائه شده توسط مدیر دوربین AR انتخاب می شوند.
- کاوشگرهای محیطی در یک
AREnvironmentProbeManager
فعال هستند - یک پیکربندی دوربین سازگار انتخاب شده است
حالت شدت محیط را فعال کنید
هنگامی که حالت شدت محیط در مؤلفه ARCameraManager
انتخاب می شود، برآورد نور پایه به طور خودکار فعال می شود.
حالت شدت محیط تنظیمات تخمین نور زیر را فعال می کند:
- رنگ محیطی
- شدت محیط
از اطلاعات نور در صحنه خود استفاده کنید
هنگامی که تنظیمات نورپردازی صحیح را به دست آوردید، می توانید اشیاء مجازی در صحنه خود را طوری روشن کنید که گویی بخشی از دنیای واقعی هستند.
مؤلفه ARCameraManager
میتواند یک رویداد frameReceived
را ایجاد کند که شرایط نور فریمها را زمانی که تخمین نور فعال است، تخمین میزند. اطلاعات مربوط به رویدادهای frameReceived
در ساختارهای ARCameraFrameEventArgs
به عنوان ARLightEstimationData
ذخیره می شود.
این مراحل را برای تغییر پارامترهای یک چراغ در زمان اجرا دنبال کنید.
- نور جهت دار موجود در صحنه خود را ایجاد یا تغییر دهید.
یک اسکریپت جدید را به 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
اضافه کنید.