Google jest zaangażowany w promowanie równości rasowej dla społeczności czarnych. Zobacz jak.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Używanie ARCore do oświetlania modeli w scenie

Lighting Estimation API analizuje dany obraz pod kątem dyskretnych wskazówek wizualnych i dostarcza szczegółowych informacji o oświetleniu w danej scenie. Możesz następnie użyć tych informacji podczas renderowania wirtualnych obiektów, aby oświetlić je w takich samych warunkach, jak scena, w której są umieszczone, dzięki czemu obiekty te będą bardziej realistyczne i poprawią wrażenia użytkowników.

Wskazówki i koncepcje dotyczące oświetlenia

Ludzie nieświadomie dostrzegają subtelne wskazówki dotyczące tego, jak przedmioty lub żywe istoty są oświetlane w ich otoczeniu. Kiedy wirtualny obiekt nie ma cienia lub ma błyszczący materiał, który nie odbija otaczającej przestrzeni, użytkownicy mogą wyczuć, że obiekt nie pasuje do konkretnej sceny, nawet jeśli nie potrafią wyjaśnić, dlaczego. Dlatego renderowanie obiektów AR w celu dopasowania oświetlenia do sceny ma kluczowe znaczenie dla wciągających i bardziej realistycznych wrażeń.

Szacowanie oświetlenia wykonuje większość pracy za Ciebie, dostarczając szczegółowe dane, które pozwalają naśladować różne sygnały świetlne podczas renderowania wirtualnych obiektów. Te wskazówki to cienie , światło otoczenia , cieniowanie , zwierciadlane światła i odbicia .

Możemy opisać te wizualne wskazówki w następujący sposób:

  • Światła otoczenia. Światło otoczenia to ogólne rozproszone światło, które dociera z otoczenia i oświetla wszystko.

  • Cienie. Cienie są często kierunkowe i informują widzów, skąd pochodzą źródła światła.

  • Zacienienie. Cieniowanie to intensywność światła w różnych obszarach danego obrazu. 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 jego bliskości do źródła światła.

  • Refleksy. Są to błyszczące fragmenty powierzchni, które odbijają bezpośrednio źródło światła. Podświetlenie obiektu zmienia się w zależności od pozycji widza w scenie.

  • Odbicie. Światło odbija się od powierzchni w różny sposób w zależności od tego, czy powierzchnia ma właściwości zwierciadlane (to znaczy wysoce odblaskowe), czy rozproszone (nie odblaskowe). Na przykład metalowa kula będzie silnie błyszcząca i odbijać swoje otoczenie, podczas gdy inna kula pomalowana na matowo-szary będzie rozproszona. Większość rzeczywistych obiektów ma kombinację tych właściwości - pomyśl o zdartej kuli do kręgli lub dobrze wykorzystanej karcie kredytowej.

    Powierzchnie odblaskowe odbierają również kolory z otoczenia. Na kolorystykę obiektu może mieć bezpośredni wpływ kolorystyka otoczenia. Na przykład biała kula w niebieskim pokoju nabierze niebieskawego odcienia.

Korzystanie z trybów szacowania oświetlenia w celu zwiększenia realizmu

ARCore zapewnia trzy różne tryby szacowania oświetlenia, zapewniające różne poziomy realizmu i wydajność w czasie wykonywania. Użyj LightEstimationMode aby wybrać żądany tryb.

  • Tryby środowiskowe HDR ( EnvironmentalHDRWithReflections i EnvironmentalHDRWithoutReflections ). Te tryby składają się z oddzielnych interfejsów API, które umożliwiają szczegółowe i realistyczne oszacowanie oświetlenia kierunkowego, cieni, zwierciadlanych świateł i odbić.
  • Tryb intensywności otoczenia ( AmbientIntensity ). Tryb ten określa średnią intensywność pikseli i kolor oświetlenia dla danego obrazu. Jest to ustawienie zgrubne przeznaczone do zastosowań, w których precyzyjne oświetlenie nie jest krytyczne, na przykład obiekty, które zapaliły się.

  • Wyłączone ( Disabled ). Wyłącz szacowanie oświetlenia, jeśli dopasowanie oświetlenia obiektu AR i sceny do otoczenia nie jest krytyczne lub gdy wydajność środowiska wykonawczego jest krytyczna.

Gdy oszacowanie oświetlenia jest włączone, tylko istotne zmiany oświetlenia lub położenia urządzenia wyzwalają zaktualizowane efekty.

Środowiskowy tryb HDR

Środowiskowy tryb HDR wykorzystuje uczenie maszynowe do analizowania obrazów z kamery w czasie rzeczywistym i syntezy oświetlenia otoczenia w celu obsługi realistycznego renderowania wirtualnych obiektów.

Ten tryb szacowania oświetlenia zapewnia:

  1. Główne światło kierunkowe . Reprezentuje główne źródło światła. Może służyć do rzucania cieni.
  2. Otoczenia sferyczne harmoniczne . Reprezentuje pozostałą energię światła otoczenia w scenie.
  3. Mapa HDR . Może być używany do renderowania odbić w błyszczących metalowych przedmiotach.

Możesz używać tych interfejsów API w różnych kombinacjach, ale są one zaprojektowane do użytku razem w celu uzyskania najbardziej realistycznego efektu.

Skonfiguruj żądany tryb środowiskowego HDR w dołączonym prefabrykacie oświetlenia środowiskowego zgodnie z opisem w podręczniku programisty Lighting Estimation Unity :

  • EnvironmentalHDRWithReflections zapewnia szczegółowe i realistyczne oszacowanie oświetlenia, włączając wszystkie trzy komponenty. Ten tryb najlepiej nadaje się do oceny oświetlenia w scenach z silnie odbijającymi lustrzanymi obiektami, które powinny odbijać swoje otoczenie.

  • EnvironmentalHDRWithoutReflections jest tym samym, co EnvironmentalHDRWithReflections , ale nie oblicza cubemapy HDR. Ten tryb najlepiej nadaje się do obiektów z rozproszonymi materiałami, które nie będą odbijać otoczenia, takich jak matowe, matowe obiekty.

Główne światło kierunkowe

Główny interfejs API światła kierunkowego oblicza kierunek ( DirectionalLightRotation ) i intensywność ( DirectionalLightColor ) głównego źródła światła sceny.

Ta informacja pozwala wirtualnym obiektom w twojej scenie pokazać rozsądnie rozmieszczone zwierciadlane światła i rzucać cienie w kierunku zgodnym z innymi widocznymi rzeczywistymi obiektami.

Aby zobaczyć, jak to działa, rozważ dwa obrazy tej samej wirtualnej rakiety. Na obrazku po lewej widać cień pod rakietą, ale jej kierunek nie pasuje do innych cieni na scenie. W rakiecie po prawej stronie cień wskazuje właściwy kierunek. Jest to subtelna, ale ważna różnica, która uziemia rakietę w scenie, ponieważ kierunek i intensywność cienia lepiej pasują do innych cieni w scenie.

Kiedy główne źródło światła lub oświetlony obiekt jest w ruchu, zwierciadlane podświetlenie obiektu dostosowuje swoje położenie w czasie rzeczywistym względem źródła światła.

Kierunkowe cienie również dostosowują swoją długość i kierunek w zależności od położenia głównego źródła światła, tak jak w prawdziwym świecie. Aby zilustrować ten efekt, rozważmy te dwa manekiny, jeden wirtualny, a drugi prawdziwy.

(Manekin po lewej to wirtualny).

Otoczenia sferyczne harmoniczne

Oprócz energii światła w głównym świetle kierunkowym, ARCore zapewnia sferyczne harmoniczne ( AmbientProbe ), reprezentujące całkowite światło otoczenia docierające ze wszystkich kierunków w scenie. Użyj tych informacji podczas renderowania, aby dodać subtelne wskazówki, które uwydatnią definicję obiektów wirtualnych.

Aby zilustrować ten efekt, rozważ dwa obrazy tego samego modelu rakiety. Rakieta po lewej stronie jest renderowana przy użyciu informacji szacunkowych o oświetleniu wykrytych przez główny interfejs API światła kierunkowego. Rakieta po prawej jest renderowana przy użyciu informacji wykrytych zarówno przez API głównego kierunku światła, jak i sferycznych harmonicznych otoczenia. Druga rakieta ma wyraźnie lepszą definicję wizualną i płynniej wtapia się w scenę.

Aby osiągnąć idealne warunki oświetleniowe, użyj opcji EnvironmentalHDRWithReflections aby włączyć również cubemapę HDR.

Mapa HDR

Aby renderować realistyczne odbicia na wirtualnych obiektach o średnim lub wysokim połysku, takich jak błyszczące powierzchnie metaliczne, użyj cubemapy HDR ( ReflectionProbe ).

Cubemap HDR wpływa również na cieniowanie i wygląd obiektów. Na przykład materiał lustrzanego obiektu otoczonego niebieskim otoczeniem będzie odbijał niebieskie odcienie.

Obliczenie cubemapy HDR wymaga niewielkiej ilości dodatkowych obliczeń procesora.

To, czy materiał danej powierzchni jest zwierciadlany, czy rozproszony, decyduje o tym, w jaki sposób odbija swoje otoczenie, a tym samym, czy warto skorzystać z cubemapy HDR. Ponieważ materiał naszej wirtualnej rakiety jest metaliczny, ma ona silny, zwierciadlany komponent, który bezpośrednio odbija otaczające ją środowisko, a tym samym czerpie korzyści z cubemapy. Z drugiej strony wirtualny obiekt z matowo-szarym, matowym materiałem w ogóle nie ma elementu lustrzanego; jego kolor zależy głównie od komponentu rozproszonego i nie skorzystałby z cubemapy.

Wszystkie trzy API środowiskowe HDR zostały użyte do renderowania rakiety poniżej. Cubemap HDR włącza odblaskowe wskazówki i dodatkowo uwydatnia uziemienie obiektu w całej scenie.

Inne przykłady trybu środowiskowego HDR w akcji

Oto ten sam model rakiety w różnym oświetleniu. Wszystkie te sceny zostały wyrenderowane przy użyciu informacji ze wszystkich trzech interfejsów API z zastosowanymi cieniami kierunkowymi.

Tryb intensywności otoczenia

Tryb AmbientIntensity określa średnią intensywność pikseli i skalary korekcji kolorów dla danego obrazu. Jest to ustawienie zgrubne przeznaczone do zastosowań, w których precyzyjne oświetlenie nie jest krytyczne, na przykład obiekty, które zapaliły się.

  • Intensywność pikseli ( PixelIntensity() ). Przechwytuje średnią intensywność pikseli oświetlenia w scenie. Możesz zastosować to oświetlenie do całego wirtualnego obiektu.

  • Kolor ( ColorCorrection() ). Wykrywa balans bieli dla każdej pojedynczej klatki. Następnie możesz poprawić kolorystykę wirtualnego obiektu, aby płynniej zintegrował się z ogólną kolorystyką sceny.

Następne kroki