Luzes de objetos virtuais realistas em uma cena

A API Lighting Estimation fornece dados detalhados que permitem imitar várias indicações de iluminação ao renderizar objetos virtuais. O ARCore oferece suporte a três modos de estimativa de luz:

  1. Desativado
  2. Modo de intensidade do ambiente
  3. Modo HDR ambiental

Pré-requisitos

Verifique se você entendeu os conceitos fundamentais de RA e como configurar uma sessão do ARCore antes de continuar.

Ativar estimativa de iluminação

Siga estas etapas para ativar a estimativa de iluminação no seu app.

  1. Configure um projeto da AR Foundation ou um projeto de extensões do ARCore.
  2. Na guia Hierarchy, navegue até XR Session Origin > AR Camera.

  1. No componente AR Camera Manager, selecione Light Estimation.
  2. No menu suspenso Light Estimation, selecione os modos que você quer usar.

Ativar o modo HDR ambiental

O modo HDR ambiental permite as seguintes configurações de estimativa de luz:

Esse modo é ativado automaticamente quando os seguintes critérios são atendidos:

Ativar o modo de intensidade do ambiente

A estimativa básica de luz é ativada automaticamente quando o Modo de intensidade do ambiente é selecionado no componente ARCameraManager.

O modo "Intensidade do ambiente" ativa as seguintes configurações de estimativa de luz:

  • Cor do ambiente
  • Intensidade do ambiente

Usar informações de iluminação na sua cena

Depois de definir as configurações de iluminação corretas, é possível iluminar os objetos virtuais na sua cena como se fossem parte do mundo real.

O componente ARCameraManager pode gerar um evento frameReceived que estima as condições de iluminação dos frames quando essa estimativa está ativada. As informações dos eventos frameReceived são armazenadas em structs ARCameraFrameEventArgs como ARLightEstimationData.

Siga estas etapas para mudar os parâmetros de uma luz no momento da execução.

  1. Crie ou modifique a luz direcional existente na sua cena.
  2. Anexe um novo script à luz direcional.

    // 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. Modifique este novo script para detectar alterações na iluminação. Para ver exemplos de como fazer isso, confira os scripts BasicLightEstimation.cs e HDRLightEstimation.cs do Unity.

Usar sondagens de ambiente no seu cenário

Siga estas etapas para ativar as sondagens de ambiente no seu cenário.

  1. Ative o posicionamento automático no ARSessionOrigin da sua cena.
  2. Adicione um componente AREnvironmentProbeManager ao ARSessionOrigin.