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

API ước tính ánh sáng 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 rằng bạn hiểu các khái niệm cơ bản về AR và cách định cấu hình 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 dự án AR Foundation hoặc dự án Tiện ích ARCore.
  2. Trong thẻ Hierarchy, hãy chuyển đế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 sử dụng.

Bật chế độ Environmental HDR

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

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

Bật chế độ Độ sá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ế độ Độ sáng môi trường xung quanh cho phép các chế độ cài đặt ước tính ánh sáng sau:

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

Sử dụng thông tin ánh sáng trong cảnh

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 đối tượng ả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ể tạo ra một sự kiện frameReceived ước tính điều kiện ánh sáng của khung hình khi bật tính năng ước tính ánh sáng. Thông tin từ các sự kiện frameReceived được lưu trữ trong cấu trúc ARCameraFrameEventArgs dưới dạng ARLightEstimationData.

Hãy làm theo các bước sau để thay đổi các thông số của ánh sáng 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 các thay đổi về ánh sáng. Để biết ví dụ về cách thực hiện việc này, hãy xem các tập lệnh BasicLightEstimation.csHDRLightEstimation.cs của Unity.

Sử dụng đầu dò môi trường trong cảnh

Hãy làm theo các bước sau để bật trình thăm dò môi trường trong cảnh của bạn.

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