Masz pomysł na aplikację, która pokazuje wirtualny mebel w pokoju albo etykiety nad elementami obwodu? Rozszerzona rzeczywistość łączy obraz z kamery z grafiką 3D, zwykle jednak dopiero po spełnieniu warunków dotyczących urządzenia, śledzenia otoczenia i sposobu uruchomienia.

Najpierw wybierz mały problem do rozwiązania
- Zacznij od jednego obiektu, który można umieścić na stole lub podłodze.
- Oddziel grafikę od śledzenia przestrzeni: model 3D nie ustala sam, gdzie znajduje się powierzchnia.
- Dobierz narzędzia do celu: projekt w przeglądarce i aplikacja mobilna mają różne ograniczenia.
- Testuj na teksturowanym otoczeniu, bo jednolita ściana może utrudnić wykrywanie powierzchni.
Obiekt 3D to dopiero połowa efektu
Wyobraź sobie kubek, który ma stać na biurku, gdy poruszasz telefonem. Sam model 3D potrafi go narysować, ale system AR musi jeszcze oszacować położenie kamery i rozpoznać otoczenie, żeby kubek nie przesuwał się po ekranie.
W urządzeniach mobilnych śledzenie ruchu łączy obraz z kamery z danymi czujników. Aplikacja szuka charakterystycznych punktów, ocenia zmianę położenia telefonu, a potem może wykrywać płaszczyzny, takie jak podłoga czy blat. Ten proces określa się jako SLAM, czyli jednoczesne szacowanie położenia i tworzenie mapy otoczenia. Podstawowe pojęcia ARCore opisują też, jak system wykorzystuje punkty charakterystyczne, płaszczyzny, głębię i oświetlenie sceny.
W praktyce cyfrowy element musi dostać pozycję w przestrzeni, skalę i orientację. Jeśli aplikacja umieści go na chybił trafił, użytkownik zobaczy nakładkę, ale nie przekonujący obiekt osadzony w pokoju. Najlepszy pierwszy projekt ma więc jeden cel: poprawnie wykryć powierzchnię i stabilnie ustawić na niej prosty model.
Na start wybierz przeglądarkę albo aplikację mobilną
Można zacząć od kodu albo od silnika 3D, ale wybór zależy od tego, gdzie ma działać efekt. Uważam, że dla osoby uczącej się podstaw programowania rozsądniej jest najpierw zbudować mały prototyp i sprawdzić dostępność funkcji na docelowym urządzeniu, zamiast od razu rozbudowywać scenę.
| Droga | Co daje | Na co uważać |
|---|---|---|
| WebXR | Uruchamianie doświadczeń XR w przeglądarce i łatwe udostępnianie prototypu. | Obsługa zależy od przeglądarki i urządzenia; trzeba przygotować wariant bez AR. |
| AR Foundation | Wspólny przepływ pracy w Unity dla aplikacji na Androida i iOS. | Wymaga skonfigurowania odpowiednich wtyczek i osobnego sprawdzenia funkcji na platformie. |
| ARCore | Natywne funkcje AR dla zgodnych urządzeń z Androidem. | Trzeba uwzględnić zgodność telefonu i dostępność wymaganych usług. |
W przypadku WebXR test zgodności jest częścią logiki aplikacji, a nie dodatkiem na koniec. Strona może sprawdzić, czy przeglądarka udostępnia sesję w trybie immersive-ar, i dopiero wtedy pokazać przycisk uruchamiający AR; do działania API potrzebny jest też bezpieczny kontekst, zwykle HTTPS. Opis cyklu życia WebXR w MDN pokazuje sprawdzanie obsługi przed rozpoczęciem sesji. Dokumentacja zaznacza również, że dostępność WebXR pozostaje ograniczona w części popularnych przeglądarek. Dokumentacja WebXR Device API pomaga ocenić to ograniczenie przed wyborem rozwiązania.
Prosta reguła wyboru: jeśli zależy Ci na łatwym udostępnieniu prototypu, sprawdź WebXR na konkretnych telefonach i przeglądarkach; jeśli projekt ma być aplikacją mobilną i potrzebuje szerszego dostępu do funkcji AR, rozważ AR Foundation albo natywne ARCore. Język Python przyda się do obsługi serwera, analizy danych czy przygotowania zasobów, ale sam w sobie nie zastępuje środowiska odpowiedzialnego za sesję AR i renderowanie 3D.
Dotknięcie ekranu powinno wyznaczyć miejsce obiektu
Użytkownik dotyka ekranu, a aplikacja musi ustalić, w którym miejscu świata ten punkt się znajduje. Do tego służy hit-test, nazywany też raycastem: system prowadzi promień od kamery przez wskazany punkt ekranu i sprawdza, czy przecina wykrytą powierzchnię.
Załóżmy, że pierwsza wersja aplikacji ma wstawić model lampy na stół. Po wykryciu blatu program wykonuje hit-test w miejscu dotknięcia; wynik zawiera pozycję i orientację, które można wykorzystać do utworzenia kotwicy. Kotwica, czyli anchor, pomaga utrzymać model w tym samym miejscu, kiedy system aktualizuje ocenę otoczenia. Dokumentacja testów trafienia ARCore rozróżnia trafienia w płaszczyznę, punkty charakterystyczne, głębię i szybkie rozmieszczanie.
Jeśli urządzenie nie ma jeszcze pewnej mapy sceny, tryb szybkiego rozmieszczania może pokazać obiekt od razu, lecz jego początkowa głębokość i skala są szacowane. Gdy system pozna geometrię otoczenia, pozycja może się skorygować. Do nauki wybierz trafienie w płaszczyznę, jeśli obiekt ma stanąć na podłodze lub stole i precyzja jest ważniejsza niż natychmiastowa reakcja.
Rozpoznawanie ściany nie oznacza, że AR ją widzi
Równa, biała ściana może wydawać się idealnym tłem do testów, ale systemowi śledzenia często brakuje na niej charakterystycznych punktów obrazu. W efekcie płaszczyzna może zostać wykryta późno albo niestabilnie, mimo że dla człowieka jej krawędzie są oczywiste. Opis działania ARCore wskazuje, że gładkie, pozbawione tekstury powierzchnie bywają trudne do rozpoznania.
Przygotuj więc scenę z detalami: połóż na stole książkę, kartkę z nadrukiem albo przedmiot o wyraźnych krawędziach. To nie gwarantuje poprawnego śledzenia, ale daje systemowi więcej wizualnych punktów odniesienia. Warto też rozróżnić wykrywanie płaszczyzny od rozumienia całej sceny: rozpoznanie blatu nie oznacza automatycznie, że aplikacja poprawnie odtworzy kształt każdego przedmiotu.
| Sytuacja | Prawdopodobna przyczyna | Co zrobić |
|---|---|---|
| Obiekt nie pojawia się po dotknięciu | System nie znalazł płaszczyzny ani innego trafienia. | Powoli skieruj kamerę na teksturowaną powierzchnię i spróbuj ponownie. |
| Model przesuwa się po blacie | Pozycja nie jest stabilnie powiązana z przestrzenią. | Użyj kotwicy i sprawdź, czy nie tworzysz wielu kotwic dla bliskich elementów. |
| AR nie uruchamia się w przeglądarce | Urządzenie lub przeglądarka nie obsługuje wymaganej sesji. | Sprawdź wsparcie przed pokazaniem przycisku i udostępnij zwykły podgląd 3D jako alternatywę. |
| Pozycja modelu zmienia się po chwili | System doprecyzowuje mapę otoczenia albo początkowy punkt był tylko szacowany. | Przetestuj stabilne trafienie w płaszczyznę i nie wymagaj natychmiastowej precyzji w trybie szybkiego rozmieszczania. |
Pierwszy prototyp może mieć tylko trzy kroki
Zakres łatwo napompować: animacja, cienie, wiele modeli i interakcje kuszą od początku. Tymczasem prototyp z jedną bryłą szybciej ujawnia, czy problem leży w grafice, śledzeniu czy obsłudze urządzenia.
- Wyświetl podgląd kamery i sprawdź, czy aplikacja poprawnie uzyskuje dostęp do obrazu.
- Wykryj powierzchnię i pokaż użytkownikowi, kiedy system ją rozpoznał.
- Po dotknięciu umieść prosty model, a następnie obserwuj, czy pozostaje stabilny podczas ruchu telefonu.
Jeśli używasz Unity, funkcje wyszukiwania płaszczyzn i kotwic udostępnia AR Foundation przez komponenty takie jak ARPlaneManager i ARAnchorManager. Zestawienie funkcji AR Foundation z ARCore pokazuje, które możliwości są dostępne w podstawowej konfiguracji, a które wymagają rozszerzeń. To przydatne rozróżnienie, bo nazwa „wspierane AR” nie oznacza, że każda funkcja działa identycznie na wszystkich urządzeniach.
Gdybym wybierał ścieżkę dla pierwszego mobilnego prototypu, postawiłbym na Unity z AR Foundation, jeśli aplikacja ma trafić zarówno na Androida, jak i iOS; dla krótkiego eksperymentu udostępnianego przez stronę zacząłbym od WebXR, ale od razu dodałbym zwykły podgląd 3D. Dobry pierwszy wynik to nie efektowna scena, lecz obiekt, który pojawia się w przewidywalnym miejscu i nie znika przy pierwszym ruchu telefonu.
