Przewodniki dotyczące poszczególnych platform
Android (Kotlin/Java)
Android NDK (C)
Unity (Fundacja AR)
Unreal Engine
Kluczem do tworzenia realistycznych funkcji AR jest odpowiednie oświetlenie. Jeśli wirtualny obiekt nie ma cienia lub ma błyszczący materiał, który nie odbija otoczenia, użytkownicy mogą zauważyć, że coś jest nie tak, nawet jeśli nie są w stanie wyjaśnić, dlaczego. Dzieje się tak, ponieważ ludzie podświadomie dostrzegają wskazówki dotyczące oświetlania obiektów w ich otoczeniu. Interfejs Lighting Estimation API analizuje dane obrazy pod kątem takich wskazówek, dostarczając szczegółowych informacji o oświetleniu sceny. Następnie możesz użyć tych informacji podczas renderowania obiektów wirtualnych, aby oświetlić je w tych samych warunkach co sceny, w których się znajdują, co pozwoli Ci utrzymać zainteresowanie użytkowników.
Wskazówki oświetleniowe
Interfejs API szacowania oświetlenia udostępnia szczegółowe dane, które umożliwiają symulowanie różnych wskazówek oświetlenia podczas renderowania obiektów wirtualnych. Są to cienie, światło otoczenia, cieniowanie, odbicia światła i odbicia.
Cienie
Cienie są często kierunkowe i pokazują widzom, skąd pochodzą źródła światła.
Jasność otoczenia
Jasność otoczenia to ogólne światło rozproszone, które dociera z otoczenia, dzięki czemu wszystko jest widoczne.
Cieniowanie
Shading 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 w stosunku do widza i odległości od źródła światła.
Wyróżnienia odbicia
Punktowe odbicia to błyszczące fragmenty powierzchni, które odbijają światło bezpośrednio od źródł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 połyskliwa i odbywać będzie odbicia otoczenia, podczas gdy kula pomalowana na matową szarość będzie rozpraszać światło. Większość rzeczywistych obiektów ma kombinację tych właściwości – pomyśl o porysowanej kuli do kręgli lub często używanej karcie kredytowej.
Odbijające powierzchnie również odzwierciedlają kolory otoczenia. Kolor obiektu może być bezpośrednio zależny od koloru otoczenia. Na przykład biała piłka w niebieskim pokoju będzie miała niebieskawy odcień.
Tryb HDR dla otoczenia
Tryby te składają się z osobnych interfejsów API, które umożliwiają precyzyjne i realistyczne oszacowanie oświetlenia kierunkowego, cieni, zbędnych podświetleń i odbić.
Tryb HDR środowiskowy korzysta z systemów uczących się, aby analizować obrazy z kamery w czasie rzeczywistym i syntezować oświetlenie środowiskowe, co umożliwia realistyczne renderowanie obiektów wirtualnych.
Ten tryb oszacowania oświetlenia zapewnia:
Główne światło kierunkowe. Reprezentuje główne źródło światła. Może służyć do tworzenia cieni.
Ambient Spherical Harmonics. Reprezentuje pozostałą energię światła otoczenia w scenie.
Cubemapa HDR. Można go używać 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 tak, aby działać razem i osiągać jak najbardziej realistyczny efekt.
Główne światło kierunkowe
Interfejs API głównego światła kierunkowego oblicza kierunek i natężenie głównego źródła światła w scenie. 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 zobaczyć, jak to działa, spójrz na te 2 obrazy tej samej wirtualnej rakiety. Na obrazie po lewej stronie widać cień pod rakietą, ale jego kierunek nie pasuje do innych cieni na zdjęciu. W rakiecie po prawej stronie cień wskazuje w właściwym kierunku. To subtelna, ale ważna różnica, która sprawia, że rakieta jest lepiej 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, punkt odbicia światła na obiekcie dostosowuje swoją pozycję w czasie rzeczywistym w stosunku do ź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, weź pod uwagę te 2 manekiny – jeden wirtualny, a drugi prawdziwy. Manekin po lewej stronie jest wirtualny.
Harmoniki sferyczne 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. Użyj tych informacji podczas renderowania, aby dodać subtelne wskazówki, które pomogą w określeniu definicji obiektów wirtualnych.
Spójrzmy na te 2 zdjęcia tego samego modelu rakiety. Rakieta po lewej stronie jest renderowana przy użyciu informacji o szacowaniu oświetlenia wykrytym przez główny interfejs API ś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. Druga rakieta jest wyraźnie lepiej widoczna i lepiej wkomponowuje się w tło.
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ł obiektu odbijającego światło otoczonego niebieskim otoczeniem będzie odbijać niebieskie odcienie. Obliczenie HDR cubemap wymaga niewielkiej ilości dodatkowego przetwarzania przez procesor.
To, czy należy użyć mapy HDR, zależy od tego, jak obiekt odbija otoczenie. Wirtualna rakieta jest metalowa, więc ma silny komponent odbicia, który bezpośrednio odzwierciedla otoczenie. Dzięki temu korzysta z mapy sześciennej. Z drugiej strony obiekt wirtualny wykonany z matowego materiału w szarym kolorze nie ma w ogóle komponentu odbłysku. Kolor zależy głównie od komponentu rozproszonego i mapa sześcienna nie skorzystaja na nim.
Do renderowania rakiety poniżej użyto wszystkich 3 interfejsów API Environmental HDR. Cubemapa HDR umożliwia wskazówki dotyczące odbić i dalsze podświetlanie, które sprawiają, że obiekt jest w pełni widoczny w scenie.
Oto ten sam model rakiety w różnych warunkach oświetleniowych. Wszystkie te sceny zostały wyrenderowane na podstawie informacji z 3 interfejsów API z zastosowaniem cieni kierunkowych.
Tryb intensywności otoczenia
Tryb natężenia otoczenia określa średnią natężenie pikseli i skali korekty kolorów dla danego obrazu. Jest to ogólne ustawienie przeznaczone do zastosowań, w których precyzyjne oświetlenie nie jest kluczowe, np. obiekty z wbudowanym oświetleniem.
Intensywność piksela
rejestruje średnią intensywność pikseli oświetlenia w scenie; Możesz zastosować to oświetlenie do całego wirtualnego obiektu.
Kolor
Wykrywanie balansu bieli poszczególnych klatek. Następnie możesz skorygować kolory wirtualnego obiektu, aby lepiej wkomponował się w kolorystykę sceny.
Sondy środowiskowe
Sondy środowiskowe porządkują widoki z kamery 360 stopni w tekstury środowiska, takie jak mapy sześcienne. Tekstur tych można następnie używać do realistycznego oświetlenia wirtualnych obiektów, takich jak wirtualna metalowa kula, która „odbija” pomieszczenie, w którym się znajduje.