Guias específicos para cada plataforma
Android (Kotlin/Java)
Android NDK (C)
Unity (fundação de RA)
Unreal Engine
Uma parte fundamental da criação de experiências realistas em RA é a iluminação correta. Quando um objeto virtual não tem uma sombra ou tem um material brilhante que não reflete o espaço ao redor, os usuários percebem que o objeto não se encaixa, mesmo que não consigam explicar o motivo. Isso ocorre porque os humanos subconscientemente percebem pistas sobre como os objetos são iluminados no ambiente. A API Lighting Estimation analisa determinadas imagens para essas dicas, fornecendo informações detalhadas sobre a iluminação de uma cena. Você pode usar essas informações ao renderizar objetos virtuais para iluminá-los nas mesmas condições da cena em que eles estão colocados, mantendo os usuários conectados e engajados.
Iluminação
A API Lighting Estimation fornece dados detalhados que permitem imitar vários sinais de iluminação ao renderizar objetos virtuais. Essas dicas são sombras, luz ambiente, sombreamento, destaques especulares e reflexos.
Sombras
As sombras geralmente são direcionais e informam aos espectadores de onde vêm as fontes de luz.
Luz ambiente
A luz ambiente é a luz difusa geral que vem de todo o ambiente, tornando tudo visível.
Sombreamento
Sombreamento é a intensidade da luz. Por exemplo, diferentes partes do mesmo objeto podem ter diferentes níveis de sombreamento na mesma cena, dependendo do ângulo em relação ao espectador e da proximidade de uma fonte de luz.
Destaques especulares
Destaques especulares são os pedaços brilhantes de superfícies que refletem diretamente uma fonte de luz. Os destaques em um objeto mudam em relação à posição de um espectador em uma cena.
Efeitos
A luz reflete das superfícies de maneira diferente, dependendo se a superfície tem propriedades especulares (altamente reflexivas) ou difusas (não reflexivas). Por exemplo, uma bola metálica será altamente especular e refletirá o ambiente, enquanto outra bola pintada de cinza fosco será difusa. A maioria dos objetos do mundo real tem uma combinação dessas propriedades. Pense em uma bola de boliche arranhada ou um cartão de crédito muito usado.
As superfícies reflexivas também captam cores do ambiente. A cor de um objeto pode ser diretamente afetada pela cor do ambiente. Por exemplo, uma bola branca em um ambiente azul vai ter uma tonalidade azulada.
Modo HDR do ambiente
Esses modos consistem em APIs separadas que permitem a estimativa de iluminação granular e realista para iluminação direcional, sombras, destaques especulares e reflexos.
O modo HDR de ambiente usa o aprendizado de máquina para analisar as imagens da câmera em tempo real e sintetizar a iluminação do ambiente para oferecer suporte à renderização realista de objetos virtuais.
Esse modo de estimativa de iluminação fornece:
Luz direcional principal. Representa a fonte de luz principal. Pode ser usado para criar sombras.
Harmônicos esféricos ambientais. Representa a energia de luz ambiente restante na cena.
Um mapa de cubo HDR. Pode ser usado para renderizar reflexos em objetos metálicos brilhantes.
É possível usar essas APIs em diferentes combinações, mas elas foram projetadas para serem usadas juntas para um efeito mais realista.
Luz direcional principal
A API de luz direcional principal calcula a direção e a intensidade da fonte de luz principal da cena. Essas informações permitem que objetos virtuais em sua cena mostrem destaques especulares razoavelmente posicionados e lancem sombras em uma direção consistente com outros objetos reais visíveis.
Para entender como isso funciona, considere estas duas imagens do mesmo foguete virtual. Na imagem à esquerda, há uma sombra embaixo do foguete, mas sua direção não corresponde às outras sombras na cena. No foguete à direita, a sombra aponta na direção correta. É uma diferença sutil, mas importante, e move o foguete na cena porque a direção e intensidade da sombra combinam melhor com outras sombras na cena.
Quando a fonte de luz principal ou um objeto iluminado está em movimento, o destaque especular no objeto ajusta a posição em tempo real em relação à fonte de luz.
As sombras direcionais também ajustam o comprimento e a direção em relação à posição da fonte de luz principal, assim como no mundo real. Para ilustrar esse efeito, considere estes dois manequins, um virtual e outro real. O manequim à esquerda é o virtual.
Harmônicos esféricos ambientais
Além da energia da luz na luz direcional principal, o ARCore fornece harmônicos esféricos, representando a luz ambiente geral que vem de todas as direções da cena. Use essas informações durante a renderização para adicionar dicas sutis que mostram a definição de objetos virtuais.
Considere estas duas imagens do mesmo modelo de foguete. O foguete à esquerda é renderizado usando informações de estimativa de iluminação detectadas pela API principal de luz direcional. O foguete à direita é renderizado usando informações detectadas pelas APIs de luz diretiva principal e de harmônica esférica ambiente. O segundo foguete tem mais definição visual e se mistura melhor à cena.
Cubemap HDR
Use o mapa de cubo HDR para renderizar reflexos realistas em objetos virtuais com brilho médio a alto, como superfícies metálicas brilhantes. O cubemap também afeta o sombreamento e a aparência dos objetos. Por exemplo, o material de um objeto especular cercado por um ambiente azul vai refletir tons azuis. O cálculo do cubemap de HDR exige uma pequena quantidade extra de computação da CPU.
O uso do mapa de cubo HDR depende de como um objeto reflete o ambiente. Como o foguete virtual é metálico, ele tem um componente especular forte que reflete diretamente o ambiente ao redor. Assim, ele se beneficia do cubemap. Por outro lado, um objeto virtual com um material fosco cinza opaco não tem um componente especular. A cor depende principalmente do componente de difusão e não se beneficia de um mapa de cubo.
Todas as três APIs Environmental HDR foram usadas para renderizar o foguete abaixo. O cubemap em HDR permite o uso de sinais reflexivos e destaca ainda mais que funda o objeto completamente na cena.
Este é o mesmo modelo de foguete em ambientes com iluminação diferente. Todas essas cenas foram renderizadas usando informações das três APIs, com sombras direcionais aplicadas.
Modo de intensidade do som ambiente
O modo "Ambient Intensity" determina a intensidade média do pixel e os escalares de correção de cor para uma determinada imagem. É uma configuração grosseira projetada para casos de uso em que a iluminação precisa não é essencial, como objetos com iluminação integrada.
Intensidade do pixel
Captura a intensidade média de pixels da iluminação em uma cena. É possível aplicar essa iluminação a um objeto virtual inteiro.
Cor
Detecta o balanço de branco de cada frame individual. Em seguida, é possível corrigir a cor de um objeto virtual para que ele se integre mais suavemente à coloração geral da cena.
Sondas de ambiente
As sondas de ambiente organizam as visualizações da câmera em 360 graus em texturas de ambiente, como mapas de cubos. Essas texturas podem ser usadas para iluminar objetos virtuais de forma realista, como uma bola de metal virtual que "reflete" o ambiente onde está.