Przewodniki dotyczące poszczególnych platform
Android (Kotlin/Java)
Android NDK (C)
Unity (Fundacja AR)
Nierealistyczny mechanizm
Kluczem do tworzenia realistycznych funkcji AR jest odpowiednie oświetlenie. Gdy wirtualny obiekt nie ma cienia lub ma błyszczący materiał, który nie odbija się od otoczenia, użytkownicy mogą wyczuć, że obiekt nie do końca pasuje, nawet jeśli nie potrafią wyjaśnić, dlaczego tak się dzieje. Dzieje się tak, ponieważ ludzie podświadomie dostrzegają wskazówki dotyczące oświetlania obiektów w ich otoczeniu. Lighting Estimation API analizuje dane obrazy pod kątem takich sygnałów i dostarcza szczegółowe informacje o oświetleniu w danej scenie. Następnie możesz wykorzystać te informacje podczas renderowania wirtualnych obiektów, aby oświetlić je w tych samych warunkach co scena, w której się znajdują, co pozwala utrzymać zaangażowanie użytkowników.
Wskazówki oświetleniowe
Interfejs Lighting Estimation API udostępnia szczegółowe dane, które pozwalają naśladować różne wskazówki oświetleniowe podczas renderowania obiektów wirtualnych. Są to cienie, światło otoczenia, cieniowanie, zbędne podświetlenia i odbicia.
Cienie
Cienie często są kierunkowe i informują widzów, skąd pochodzą źródła światła.
Jasność otoczenia
Światło otoczenia to ogólne rozproszone światło, które wpada z otoczenia, dzięki czemu 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.
Zjawiska widma
Światła odbicia to błyszczące powierzchnie, które bezpośrednio odbijają źródło światła. Podświetlenia obiektu zmieniają się w zależności od pozycji widza w danej 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 (silnie odbijające) czy rozproszone (nie odbijające). Na przykład metalowa kula będzie bardzo łuskowa i odzwierciedlała otoczenie, a inna kula pomalowana na matową, matową szarą powierzchnię będzie rozproszona. Większość rzeczywistych obiektów łączy te cechy. Mogą to być np. zniszczona kula do gry w kręgle lub dobrze używana karta kredytowa.
Powierzchnie odbicia wychwytują też kolory z otoczenia otoczenia. Na kolorowanie obiektu bezpośrednio wpływają kolory jego środowiska. Na przykład biała kula w niebieskim pokoju będzie mieć niebieskawy odcień.
Tryb HDR w środowisku środowiskowym
Tryby te składają się z osobnych interfejsów API, które umożliwiają precyzyjne i realistyczne szacowanie oświetlenia kierunkowego, cieni, zbędnych podświetleń i odbić.
Tryb ten korzysta z systemów uczących się, aby w czasie rzeczywistym analizować obrazy z kamery i syntetyzować oświetlenie środowiskowe, 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 rzucać cienie.
Dźwięki sferyczne otoczenia. Reprezentuje pozostałą energię oświetlenia otoczenia w danej 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 zaprojektowane z myślą o stosowaniu ich razem, aby uzyskać jak najbardziej realistyczny efekt.
Główne światło kierunkowe
Główny interfejs API światła kierunkowego oblicza kierunek i intensywność głównego źródła światła sceny. Dzięki tej informacji wirtualne obiekty na scenie mogą pokazywać rozsądnie rozmieszczone odbicia lustrzane, a także rzucać cienie w kierunku zgodnym z innymi widocznymi obiektami.
Aby przekonać się, jak to działa, spójrz na te dwa zdjęcia tej samej wirtualnej rakiety. Na zdjęciu po lewej stronie znajduje się cień pod rakietą, ale jej kierunek nie pasuje do innych cieni w scenie. W rakiecie po prawej cienie są w prawidłowym kierunku. To subtelna, ale ważna różnica, która sprawia, że rakieta jest 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, odbicia świetlne na obiekcie dostosowują swoje położenie w czasie rzeczywistym względem źródła światła.
Tak jak w świecie rzeczywistym, cienie kierunkowe dostosowują też swoją długość i kierunek do położenia głównego źródła światła. Aby zilustrować ten efekt, zobaczmy dwa manekiny: jeden wirtualny, a drugi rzeczywisty. Ten wirtualny jest widoczny po lewej stronie.
Harmonijka sferyczna otoczenia
Oprócz energii światła pochodzącego z głównego światła kierunkowego ARCore zapewnia także sferyczną harmoniczną, która reprezentuje ogólne światło otoczenia dochodzące ze wszystkich kierunków sceny. Wykorzystaj te informacje podczas renderowania, aby dodać subtelne wskazówki, które uwypuklają definicję obiektów wirtualnych.
Spójrzmy na te 2 zdjęcia tego samego modelu rakiety. Rakieta po lewej stronie jest renderowana na podstawie szacunków dotyczących oświetlenia wykrytych przez główny interfejs API do oświetlenia kierunkowego. Rakieta po prawej jest renderowana na podstawie informacji wykrytych przez interfejsy API światła kierunkowego głównego i sferycznej harmonicznej otoczenia. Druga rakieta ma wyraźnie bardziej wizualną definicję i lepiej wtapia się w scenę.
Mapa sześcienna HDR
Użyj mapy sześciennej HDR, aby renderować realistyczne odbicia na wirtualnych obiektach o średniej lub wysokiej połysku, takich jak błyszczące powierzchnie metaliczne. Mapa sześcienna ma też wpływ na cieniowanie i wygląd obiektów. Na przykład materiał zwierciadlanego obiektu w otoczeniu niebieskiego ma odcienie niebieskiego. Obliczenie mapy sześciennej HDR wymaga niewielkiej ilości dodatkowych obliczeń procesora.
To, czy należy użyć mapy sześciennej HDR, zależy od tego, w jaki sposób obiekt odzwierciedla jego otoczenie. Wirtualna rakieta jest metaliczna, dlatego ma silne odbicia lustrzane, które bezpośrednio odzwierciedlają otoczenie. Dlatego korzysta z mapy sześciennej. Z drugiej strony wirtualny obiekt z matowoszarą, matową powierzchnią nie ma w ogóle lustrzanego elementu. Kolor zależy głównie od komponentu rozproszonego i mapa sześcienna nie skorzystaja na nim.
Do wyrenderowania poniższej rakiety wykorzystano wszystkie 3 środowiskowe interfejsy API HDR. Mapa sześcienna HDR włącza odblaskowe wskazówki i dodatkowe podświetlenie, dzięki którym obiekt jest w pełni oświetlony.
Oto ten sam model rakiety w różnym oświetleniu. Wszystkie te sceny zostały wyrenderowane na podstawie informacji z 3 interfejsów API z zastosowaniem cieni kierunkowych.
Tryb intensywności otoczenia
Tryb Intensywności otoczenia określa średnią intensywność pikseli i skalary korekcji kolorów dla danego obrazu. Jest ono opracowane z myślą o przypadkach użycia, w których precyzyjne oświetlenie nie jest kluczowe, np. w przypadku obiektów z prześwietlonym oświetleniem.
Intensywność pikseli
Rejestruje średnią intensywność pikseli w oświetleniu w danej scenie. Możesz zastosować to oświetlenie do całego wirtualnego obiektu.
Kolor
Wykrywanie balansu bieli poszczególnych klatek. Następnie możesz skorygować kolor obiektu wirtualnego, aby płynniej wtopił się w ogólne kolory sceny.
Sondy środowiskowe
Sondy środowiskowe porządkują widoki z kamery w formie tekstur otoczenia, np. map sześciennych. Tekstury te można następnie wykorzystać do realistycznie lekkich wirtualnych obiektów, takich jak metalowa kula, która „odbija” wnętrze, w którym znajduje się urządzenie.