Vật thể ảo chiếu sáng thực tế trong cảnh

Lighting Estimation API cung cấp dữ liệu chi tiết cho phép bạn bắt chước nhiều tín hiệu ánh sáng khi kết xuất các vật thể ảo. ARCore hỗ trợ 3 chế độ ước tính ánh sáng:

  1. Đã tắt
  2. Chế độ cường độ môi trường xung quanh
  3. Chế độ HDR môi trường

Điều kiện tiên quyết

Hãy đảm bảo bạn hiểu rõ các khái niệm cơ bản về AR và cách định cấu hình một phiên ARCore trước khi tiếp tục.

Bật tính năng ước tính ánh sáng

Hãy làm theo các bước sau để bật tính năng ước tính ánh sáng trong ứng dụng của bạn.

  1. Thiết lập một dự án AR Foundation hoặc dự án Tiện ích ARCore.
  2. Trong thẻ Hierarchy, hãy điều hướng đến XR Session Origin > AR Camera.

  1. Trong thành phần AR Camera Manager, hãy chọn Light Estimation.
  2. Trong trình đơn thả xuống Light Estimation, hãy chọn(các) chế độ bạn muốn dùng.

Bật chế độ HDR môi trường

Chế độ HDR môi trường cho phép các cài đặt ước tính ánh sáng sau đây:

Chế độ này tự động bật khi các tiêu chí sau được đáp ứng:

Bật chế độ Cường độ môi trường xung quanh

Tính năng ước tính ánh sáng cơ bản sẽ tự động bật khi bạn chọn chế độ Cường độ môi trường xung quanh trong thành phần ARCameraManager.

Chế độ Cường độ môi trường xung quanh cho phép các chế độ cài đặt ước tính ánh sáng sau đây:

  • Màu xung quanh
  • Cường độ môi trường xung quanh

Sử dụng thông tin về ánh sáng trong cảnh của bạn

Sau khi có được chế độ cài đặt ánh sáng chính xác, bạn có thể chiếu sáng các vật thể ảo trong cảnh của mình như thể chúng là một phần của thế giới thực.

Thành phần ARCameraManager có thể phát ra sự kiện frameReceived giúp ước tính điều kiện ánh sáng của khung hình khi bạn bật tính năng ước tính ánh sáng. Thông tin của các sự kiện frameReceived được lưu trữ trong cấu trúc ARCameraFrameEventArgs dưới dạng ARLightEstimationData.

Làm theo các bước sau để thay đổi thông số của đèn trong thời gian chạy.

  1. Tạo hoặc sửa đổi Ánh sáng định hướng hiện có trong cảnh của bạn.
  2. Đính kèm một tập lệnh mới vào Ánh sáng định hướng.

    // 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.
    }
    
  3. Sửa đổi tập lệnh mới này để phát hiện những thay đổi về ánh sáng. Để biết ví dụ về cách thực hiện việc này, hãy xem tập lệnh BasicLightEstimation.csHDRLightEstimation.cs của Unity.

Sử dụng đầu dò môi trường trong cảnh của bạn

Làm theo các bước sau để bật đầu dò môi trường trong cảnh của bạn.

  1. Bật vị trí tự động trong phần ARSessionOrigin của cảnh.
  2. Thêm thành phần AREnvironmentProbeManager vào ARSessionOrigin.