راهنمای توسعه دهنده Lighting Estimation برای Unity

نحوه استفاده از Lighting Estimation را در برنامه های خود بیاموزید.

پیش نیازها

قبل از ادامه، مطمئن شوید که مفاهیم اساسی AR و نحوه پیکربندی یک جلسه ARCore را درک کرده اید.

علاوه بر این، باید Unity را با ARCore SDK برای Unity 1.10.0 یا جدیدتر نصب و پیکربندی کنید. اگر نه، Unity Quickstart برای Android را ببینید.

برنامه نمونه را بسازید و اجرا کنید

با شروع ARCore SDK برای Unity 1.10، نمونه HelloAR برای Unity دارای HDR محیطی با حالت Reflections ( EnvironmentalHDRWithReflections ) به طور پیش فرض فعال است.

  1. یک پروژه جدید در Unity بر اساس شروع سریع ایجاد کنید.

  2. در Build Settings > Scenes in Build صحنه را از Assets/GoogleARCore/Examples/HelloAR/Scenes/HelloAR.unity کنید.

  3. مطمئن شوید که دستگاه شما به دستگاه شما متصل است و سپس روی Build and Run کلیک کنید. یونیتی پروژه شما را در یک APK اندروید می‌سازد، آن را روی دستگاه نصب می‌کند و راه‌اندازی می‌کند.

    1. مکانی را بیابید که دارای لایه های متنوعی از نور و سایه در یک صحنه باشد.

    2. دستگاه را برای شناسایی هواپیماها برای قرار دادن حرکت دهید. همانطور که دستگاه خود را حرکت می دهید، برنامه به طور خودکار سطوح صاف را تشخیص می دهد و یک شبکه الماس ترسیم می کند.

    3. روی شبکه ضربه بزنید تا یک ربات اندرویدی روی سطح قرار گیرد.

      به نقاط برجسته، سایه ها و نور محیطی که روی مدل رندر شده است توجه کنید.

    4. سعی کنید ربات های اندرویدی جدید را در قسمت های مختلف صحنه اضافه کنید. توجه داشته باشید که چگونه هر مدل به روشی متفاوت با نور مطابقت دارد.

پیکربندی برآورد نور در صحنه شما

می‌توانید Unity را برای انتخاب از بین دو حالت Environmental HDR یا حالت Ambient Intensity پیکربندی کنید. پس از تنظیم حالت برآورد نور، پیش ساخته نور محیطی را به صحنه خود اضافه کنید. این پیش ساخته به طور خودکار تخمین نور ARCore را در صحنه شما اعمال می کند.

  • وقتی حالت تخمین نور روی Environmental HDR (با یا بدون انعکاس) تنظیم شده است، مؤلفه نور محیطی چرخش و رنگ نور جهت، کاوشگر محیط (از طریق RenderSettings.ambientProbe ) و کاوشگر بازتاب (از طریق RenderSettings.customReflection ) را به روز می کند. .

  • هنگامی که حالت تخمین نور روی شدت محیط تنظیم می شود، مولفه Environmental Light ویژگی _GlobalLightEstimation را که در ARCore/DiffuseWithLightEstimation و ARCore/SpecularWithLightEstimation و سایر سایه زن های سفارشی استفاده می شود را تنظیم می کند تا خروجی رنگ نهایی را مطابق با رنگ تصویر دوربین تنظیم کند.

همچنین می توانید تخمین نور را غیرفعال کنید.

برای پیکربندی برآورد روشنایی برای پروژه‌های جدید یا موجود:

  1. یک پروژه Unity موجود را باز کنید.

    در غیر این صورت، یک پروژه Unity جدید ایجاد کنید، سپس یکی از مراحل زیر را انجام دهید:

    • وارد کردن ARCore برای Unity SDK : Assets > Import Package > Custom Package را انتخاب کنید، سپس arcore-unity-sdk*.unitypackage را با فعال بودن همه گزینه ها وارد کنید.

    • ایجاد یک پیکربندی جلسه جدید : Assets > Create > Google ARCore > SessionConfig را انتخاب کنید.

  2. اگر در یک پروژه Unity جدید کار می کنید، پیش ساخته های ARCore را پیکربندی کنید:

    1. از پوشه Project ، پیش ساخته های ARCore Device و Environmental Light را به سلسله مراتب بکشید تا آنها را به عنوان GameObjects اضافه کنید.

    2. پیش ساخته هایی که به تازگی وارد کرده اید از قبل دارای دوربین و چراغ جهت دار هستند. دوربین پیش فرض و GameObjects نور جهت دار پیش فرض را از ریشه همان سلسله مراتب حذف کنید.

      اکنون سلسله مراتب شما باید چیزی شبیه به این باشد:

  3. یک حالت تخمین نور را در پیکربندی جلسه انتخاب کنید:

    1. در سلسله مراتب پروژه خود، روی ARCore Device GameObject کلیک کنید، سپس روی پیکربندی جلسه دوبار کلیک کنید.

    2. در Session configuration Inspector ، روی منوی کشویی Light Estimation Mode کلیک کنید و حالتی را که ترجیح می دهید انتخاب کنید (یا تخمین نور را به طور کلی غیرفعال کنید).

      (پیش‌فرض برای پروژه‌های جدید Environmental HDR With Reflections است.)

  4. سایه زن مناسب با حالت تخمین روشنایی را انتخاب کنید:

    • اگر می‌خواهید از حالت HDR محیطی استفاده کنید، می‌توانید به سادگی از سایه‌زن‌های موبایل داخلی Unity یا استاندارد شیدرها استفاده کنید.

    • اگر می خواهید از حالت Ambient Intensity استفاده کنید، باید از یک سایه زن سفارشی استفاده کنید که عبارت _GlobalLightEstimation را در خروجی رنگ نهایی اعمال می کند تا شی مجازی شما را رندر کند. برای مرجع به سایه زن های ARCore/DiffuseWithLightEstimation و ARCore/SpecularWithLightEstimation مراجعه کنید.

کیفیت سایه را تنظیم کنید

هنگام استفاده از ARCore/TransparentShadow که در ARCore SDK for Unity موجود است، توصیه می‌کنیم با تنظیمات کیفیت زیر شروع کنید:

ویژگی تنظیمات
سایه ها سایه های سخت و نرم
وضوح سایه کیفیت بالا
طرح سایه بستن تناسب
فاصله سایه 20
حالت Shadowmask Distance Shadowmask
افست سایه نزدیک صفحه 0
آبشارهای سایه بدون آبشار