👁️ Pole widzenia — wzrok NPC
Wielokąt widoczności NPC w grze skradankowej metodą rzucania cienia. Promienie trafiają w narożniki przeszkód, są sortowane kątowo i wyznaczają dokładny obszar widzialny. Dodawaj prostokątne przeszkody, reguluj kąt i zasięg FOV, przeciągaj NPC.
👁️ Pole widzenia — widoczność NPC
Interaktywna symulacja pola widzenia wykorzystująca rzucanie cienia. Umieszczaj przeszkody w scenie, reguluj kąt stożka FOV i zasięg widzenia, a wielokąt widoczności przeliczy się w czasie rzeczywistym.
🔬 Co pokazuje
Algorytmy rzucania cienia obliczają wielokąt widoczności, śledząc promienie od pozycji NPC i przycinając je na krawędziach przeszkód. Rezultatem jest precyzyjne FOV, które poprawnie obsługuje częściową okluzję, narożniki i nakładające się przeszkody.
🎮 Jak korzystać
Przeciągnij NPC po scenie. Kliknij, by umieścić lub usunąć przeszkody. Reguluj suwak kąta FOV (30°–360°) oraz zasięg. Wielokąt widoczności aktualizuje się natychmiast — jasne obszary są widoczne, ciemne są ukryte.
💡 Czy wiesz, że?
Algorytmy pola widzenia są fundamentalne w grach skradankowych (Metal Gear Solid, Hitman). Wiele roguelike'ów używa rekurencyjnego wariantu rzucania cienia, który przetwarza siatkę oktant po oktancie dla maksymalnej wydajności.
O rzucaniu cienia w polu widzenia
Ta symulacja pokazuje, jak NPC z gry skradankowej dokładnie ustala, co może zobaczyć. Z pozycji NPC rzucane są promienie w kierunku każdego istotnego narożnika przeszkody oraz wzdłuż krawędzi stożka widzenia, znajdując najbliższe przecięcie każdego promienia z krawędzią prostokąta lub ścianą graniczną za pomocą parametrycznego wzoru promień-odcinek. Połączenie uporządkowanych punktów trafienia tworzy precyzyjny wielokąt widoczności, który respektuje okluzję.
🔬 Co pokazuje
Suwak Kąta ustawia stożek FOV od 20° do 360°, suwak Zasięgu ogranicza widzenie do 60–500 px, a prędkość NPC kontroluje tempo automatycznej rotacji. Przesuwasz zielonego NPC, ustawiasz kierunek klikając, i rysujesz lub przeciągasz szare bloki jako ściany; pomarańczowy cel zmienia kolor na czerwony, gdy znajdzie się wewnątrz wielokąta.
🎮 Jak korzystać
Kliknij dowolne miejsce na płótnie, by przesunąć tam NPC. Reguluj Kąt FOV, Zasięg i prędkość suwakami. Wielokąt widoczności aktualizuje się na bieżąco — jasne obszary są widoczne, ciemne są ukryte pod cieniem przeszkód.
💡 Czy wiesz, że?
Ta sama koncepcja wielokąta widoczności napędza dynamiczne oświetlenie 2D, mgłę wojny w grach strategicznych oraz rekurencyjne rzucanie cienia używane przez wiele roguelike'ów do stopniowego odsłaniania lochu w miarę eksploracji.
Najczęściej zadawane pytania
Co pokazuje ta symulacja?
Modeluje pole widzenia postaci niezależnej (NPC) w scenie 2D. Zielony NPC widzi stożek widzenia, a jasnozielony wielokąt zaznacza dokładnie, które obszary są widoczne. Szare bloki rzucają cienie, które ukrywają części sceny, a pomarańczowy cel zostaje oznaczony, gdy NPC może go zobaczyć.
Czym jest rzucanie cienia (shadow casting)?
Rzucanie cienia oblicza wielokąt widoczności, śledząc promienie od obserwatora na zewnątrz i zatrzymując każdy promień na pierwszej napotkanej przeszkodzie. Granica między obszarami oświetlonymi a nieoświetlonymi tworzy krawędzie wielokąta. Tutaj NPC jest źródłem światła lub okiem, a bloki blokują promienie, tworząc ciemne, ukryte obszary za sobą.
Jak powstaje wielokąt widoczności?
Kod zbiera kąt do każdego narożnika przeszkody i ściany, który leży wewnątrz stożka FOV, a także wachlarz promieni granicznych wzdłuż krawędzi stożka. Każdy kąt jest rzucany jako promień, przycinany do najbliższego trafienia lub maksymalnego zasięgu, a otrzymane punkty są sortowane według kąta i łączone w wypełniony wielokąt rozchodzący się od NPC.
Co robią suwaki Kąta i Zasięgu?
Suwak Kąta ustawia szerokość stożka widzenia, od wąskich 20° aż po pełny okrąg 360°. Suwak Zasięgu ustawia, jak daleko widzi NPC, między 60 a 500 pikseli; promienie są ograniczane do tej odległości nawet tam, gdzie nic ich nie blokuje, więc wielokąt nigdy jej nie przekracza.
Co kontroluje suwak prędkości NPC?
Gdy nie wchodzisz w interakcję, NPC powoli się obraca, dzięki czemu możesz obserwować, jak jego stożek zamiata scenę. Suwak prędkości, od 0 do 3, skaluje tempo tej automatycznej rotacji. Ustawienie go na 0 zatrzymuje kierunek patrzenia. Kliknięcie płótna, przeciąganie NPC lub rysowanie bloku wyłącza automatyczną rotację, dzięki czemu możesz celować ręcznie.
Jakie jest kluczowe równanie stojące za rzucaniem promieni?
Każdy promień jest testowany względem każdego odcinka za pomocą przecięcia parametrycznego. Zapisując promień jako początek plus t razy kierunek, a odcinek jako linię, solver oblicza wyznacznik dwóch wektorów kierunku; jeśli jest niezerowy, znajduje t wzdłuż promienia i u wzdłuż odcinka, akceptując trafienie tylko wtedy, gdy t jest dodatnie, a u leży między 0 a 1.
Jak symulacja decyduje, czy cel jest widziany?
Cel jest uznawany za widziany, gdy spełnione są trzy warunki: jego odległość od NPC mieści się w zasięgu, jego namiar leży wewnątrz połowy kąta stożka, a test punkt-w-wielokącie umieszcza go wewnątrz wielokąta widoczności. Ten ostatni test wykorzystuje parzysto-nieparzyste liczenie przecięć promienia, więc blok stojący między NPC a celem poprawnie go zasłania.
Czy to jest fizycznie dokładne?
To wierny 2D model geometryczny linii wzroku, a nie pełna symulacja optyczna. Matematyka promień-odcinek jest dokładna dla użytych przeszkód wielokątnych, więc okluzja, narożniki i nakładające się bloki są obsługiwane poprawnie. Pomija rzeczywiste efekty, takie jak spadek natężenia światła, dyfrakcja i ostrość widzenia peryferyjnego, co jest odpowiednie dla AI w grach, gdzie najważniejsze są wyraźne decyzje o widoczności.
Dlaczego promienie są rzucane w narożniki, a nie pod stałymi kątami?
Wielokąt widoczności zmienia kierunek tylko w narożnikach przeszkód, więc rzucanie promieni w każdy narożnik uchwytuje każdą krawędź sylwetki przy bardzo małej liczbie promieni. Rzucanie pod stałymi, równomiernie rozłożonymi kątami albo pominęłoby cienkie elementy, albo marnowało wysiłek. Po obu stronach każdego narożnika dodawane są niewielkie przesunięcia, dzięki czemu promienie mogą prześlizgnąć się tuż obok krawędzi i odsłonić to, co leży za nią.
Gdzie ta technika jest używana w prawdziwych grach?
Algorytmy pola widzenia i linii wzroku leżą u podstaw gier skradankowych, takich jak Metal Gear Solid i Hitman, gdzie strażnicy muszą reagować tylko na to, co faktycznie widzą. Ten sam pomysł wielokąta widoczności napędza dynamiczne oświetlenie 2D, mgłę wojny w grach strategicznych oraz rekurencyjne rzucanie cienia używane przez wiele roguelike'ów do odsłaniania lochu w miarę eksploracji.
Wielokąt widoczności NPC w grze skradankowej metodą rzucania cienia. Promienie trafiają w narożniki przeszkód, są sortowane kątowo i wyznaczają dokładny obszar widzialny. Dodawaj prostokątne przeszkody, reguluj kąt i zasięg FOV, przeciągaj NPC.
3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install