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

Đảm bảo rằng bạn hiểu rõ 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

Làm theo các bước sau để bật ướ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 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ế độ mà 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 tính ánh sáng sau đây:

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

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 môi trường xung quanh
  • Cường độ môi trường xung quanh

Sử dụng thông tin về á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ể kích hoạt sự kiện frameReceived để ước tính tình trạng ánh sáng của khung hình khi tính năng ước tính ánh sáng đang bật. 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 đè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 công cụ thăm dò môi trường trong cảnh của bạn.

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