Przewodniki dotyczące konkretnych platform
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine

Kluczowym elementem tworzenia realistycznych wrażeń AR jest odpowiednie oświetlenie. Gdy wirtualny obiekt nie ma cienia lub jest wykonany z błyszczącego materiału, który nie odbija otoczenia, użytkownicy mogą wyczuć, że obiekt nie pasuje do otoczenia, nawet jeśli nie potrafią tego wyjaśnić. Dzieje się tak, ponieważ ludzie podświadomie odbierają sygnały dotyczące oświetlenia obiektów w otoczeniu. Interfejs Lighting Estimation API analizuje podane obrazy pod kątem takich sygnałów i dostarcza szczegółowych informacji o oświetleniu w scenie. Możesz następnie użyć tych informacji podczas renderowania wirtualnych obiektów, aby oświetlić je w tych samych warunkach co scena, w której się znajdują, co pozwoli użytkownikom zachować orientację i zaangażowanie.
Sygnały oświetlenia
Interfejs Lighting Estimation API udostępnia szczegółowe dane, które pozwalają naśladować różne sygnały oświetlenia podczas renderowania wirtualnych obiektów. Są to cienie, jasność otoczenia, cieniowanie, odbicia lustrzane i refleksy.
Cienie
Cienie są często kierunkowe i informują widzów o tym, skąd pochodzą źródła światła.
Jasność otoczenia
Jasność otoczenia to ogólne rozproszone światło, które dociera z otoczenia i sprawia, że wszystko jest widoczne.
Cieniowanie
Cieniowanie to intensywność światła. Na przykład różne części tego samego obiektu mogą mieć różne poziomy cieniowania w tej samej scenie, w zależności od kąta względem widza i odległości od źródła światła.
Odbicia lustrzane
Odbicia lustrzane to błyszczące fragmenty powierzchni, które bezpośrednio odbijają źródło światła. Odbicia na obiekcie zmieniają się w zależności od pozycji widza w scenie.
Odczucia
Światło odbija się od powierzchni w różny sposób w zależności od tego, czy powierzchnia ma właściwości odbicia lustrzanego (wysoko odblaskowe) czy rozproszonego (nieodblaskowe). Na przykład metalowa kula będzie silnie odblaskowa i będzie odbijać otoczenie, a inna kula pomalowana na matowy szary kolor będzie rozproszona. Większość obiektów w rzeczywistym świecie ma połączenie tych właściwości – pomyśl o zarysowanej kuli do kręgli lub o dobrze używanej karcie kredytowej.
Powierzchnie odblaskowe odbijają też kolory z otoczenia. Kolor obiektu może być bezpośrednio zależny od koloru otoczenia. Na przykład biała kula w niebieskim pokoju będzie miała niebieskawy odcień.
Tryb środowiskowy HDR
Te tryby składają się z osobnych interfejsów API, które umożliwiają szczegółowe i realistyczne szacowanie oświetlenia kierunkowego, cieni, odbić lustrzanych i refleksów.
Tryb środowiskowy HDR wykorzystuje uczenie maszynowe do analizowania obrazów z kamery w czasie rzeczywistym i syntezowania oświetlenia otoczenia, aby umożliwić realistyczne renderowanie wirtualnych obiektów.
Ten tryb szacowania oświetlenia zapewnia:
Główne światło kierunkowe. Reprezentuje główne źródło światła. Może służyć do rzucania cieni.
Harmoniczne sferyczne otoczenia. Reprezentuje pozostałą energię jasności otoczenia w scenie.
Mapa sześcienna HDR. Może służyć do renderowania odbić w błyszczących metalowych obiektach.
Możesz używać tych interfejsów API w różnych kombinacjach, ale są one przeznaczone do używania razem, aby uzyskać najbardziej realistyczny efekt.
Główne światło kierunkowe
Interfejs API głównego światła kierunkowego oblicza kierunek i intensywność głównego źródła światła w scenie. Te informacje pozwalają wirtualnym obiektom w scenie wyświetlać odbicia lustrzane w odpowiednich miejscach i rzucać cienie w kierunku zgodnym z innymi widocznymi obiektami rzeczywistymi.
Aby zobaczyć, jak to działa, przyjrzyj się tym 2 obrazom tej samej wirtualnej rakiety. Na obrazie po lewej stronie pod rakietą znajduje się cień, ale jego kierunek nie pasuje do innych cieni w scenie. W przypadku rakiety po prawej stronie cień jest skierowany w prawidłowym kierunku. Jest to subtelna, ale ważna różnica, która sprawia, że rakieta jest bardziej osadzona w scenie, ponieważ kierunek i intensywność cienia lepiej pasują do innych cieni w scenie.

Gdy główne źródło światła lub oświetlony obiekt jest w ruchu, odbicie lustrzane na obiekcie dostosowuje swoją pozycję w czasie rzeczywistym względem źródła światła.
Cienie kierunkowe również dostosowują swoją długość i kierunek względem pozycji głównego źródła światła, tak jak w rzeczywistym świecie. Aby zilustrować ten efekt, przyjrzyj się tym 2 manekinom – jednemu wirtualnemu, a drugiemu rzeczywistemu. Manekin po lewej stronie jest wirtualny.

Harmoniczne sferyczne otoczenia
Oprócz energii światła w głównym świetle kierunkowym ARCore udostępnia harmoniczne sferyczne, które reprezentują ogólną jasność otoczenia docierającą ze wszystkich kierunków w scenie. Użyj tych informacji podczas renderowania, aby dodać subtelne sygnały, które podkreślają definicję wirtualnych obiektów.
Przyjrzyj się tym 2 obrazom tego samego modelu rakiety. Rakieta po lewej stronie jest renderowana przy użyciu informacji o szacowaniu oświetlenia wykrytych przez interfejs API głównego światła kierunkowego. Rakieta po prawej stronie jest renderowana przy użyciu informacji wykrytych przez interfejsy API głównego światła kierunkowego i harmonicznych sferycznych otoczenia. Druga rakieta ma wyraźnie więcej szczegółów wizualnych i lepiej wtapia się w scenę.

Mapa sześcienna HDR
Użyj mapy sześciennej HDR, aby renderować realistyczne odbicia na wirtualnych obiektach o średnim i wysokim połysku, takich jak błyszczące metalowe powierzchnie. Mapa sześcienna wpływa też na cieniowanie i wygląd obiektów. Na przykład materiał obiektu odblaskowego otoczonego niebieskim środowiskiem będzie odbijał niebieskie odcienie. Obliczanie mapy sześciennej HDR wymaga niewielkiej ilości dodatkowych obliczeń procesora.
To, czy należy używać mapy sześciennej HDR, zależy od tego, jak obiekt odbija otoczenie. Ponieważ wirtualna rakieta jest metalowa, ma silny komponent odblaskowy, który bezpośrednio odbija otoczenie. Dlatego mapa sześcienna jest dla niej korzystna. Z drugiej strony wirtualny obiekt z matowego szarego materiału nie ma w ogóle komponentu odblaskowego. Jego kolor zależy głównie od komponentu rozproszonego i nie będzie korzystać z mapy sześciennej.
Do renderowania rakiety poniżej użyto wszystkich 3 interfejsów API środowiskowego HDR. Mapa sześcienna HDR umożliwia odbicia i dodatkowe podświetlenie, które w pełni osadzają obiekt w scenie.

Oto ten sam model rakiety w różnie oświetlonych środowiskach. Wszystkie te sceny zostały wyrenderowane przy użyciu informacji z 3 interfejsów API z zastosowaniem cieni kierunkowych.

Tryb intensywności otoczenia
Tryb intensywności otoczenia określa średnią intensywność pikseli i skalarne korekty kolorów dla danego obrazu. Jest to ustawienie ogólne przeznaczone do przypadków użycia, w których precyzyjne oświetlenie nie jest krytyczne, np. w przypadku obiektów z wbudowanym oświetleniem.
Intensywność pikseli
Rejestruje średnią intensywność pikseli oświetlenia w scenie. Możesz zastosować to oświetlenie do całego wirtualnego obiektu.
Kolor
Wykrywa balans bieli dla każdej klatki. Możesz następnie skorygować kolor wirtualnego obiektu, aby lepiej pasował do ogólnej kolorystyki sceny.
Sondy środowiskowe
Sondy środowiskowe porządkują widoki z kamery 360 stopni w tekstury środowiska, takie jak mapy sześcienne. Te tekstury można następnie wykorzystać do realistycznego oświetlania wirtualnych obiektów, takich jak wirtualna metalowa kula, która „odbija” pomieszczenie, w którym się znajduje.