Rzucanie promieni



Metoda rzucania promieni (ang. Ray-casting)  jest przeciwieństwem metody śledzenia promieni (ang. Ray-tracing). Promienie możemy rzucać w przestrzeni 2D lub 3D.

1. Rzucanie promieni w przestrzeni 2D
Rzucanie promieni w przestrzeni 2D jest najstarszą i najszybszą metodą tworzenia grafiki 3D, która była stosowana w grach komputerowych. Promienie rzucamy na płaskiej mapie składającej się z komórek o jednakowych wymiarach. Poniżej przedstawiona została przykładowa mapa. Czarnym kolorem zaznaczone zostały pełne komórki tworzące ściany sceny. Strzałkami zaznaczone zostały promienie rzucane z pozycji kamery. Liczba promieni jest równa szerokości ekranu i wynosi np. 320.


Po znalezieniu najbliższych przecięć promieni z pełnymi komórkami mapy wyznaczamy odległości tych punktów od kamery. Odpowiednio przeskalowane odległości zostaną użyte do wyznaczenia wysokości pasków rysowanych na ekranie. Im większe są wyznaczone odległości tym wysokości pasków powinny być mniejsze. Im mniejsze są wyznaczone odległości tym wysokości pasków powinny być większe. Paski rysujemy od środka ekranu. Zmieniając pozycję środka rysowanych pasków możemy w prosty sposób symulować obrót kamery w górę lub w dół. Poniżej przedstawiony został obraz, który otrzymamy z przykładowej mapy (po rzuceniu wszystkich promieni z pozycji kamery i po uwzględnieniu korekty przejścia z przestrzeni biegunowej do przestrzeni kartezjańskiej).


2. Rzucanie promieni w przestrzeni 3D
Rzucanie promieni w przestrzeni 3D może być wykorzystane np. do liczenia oświetlenia, wykrywania kolizji lub określania widocznych elementów sceny. Rzucanie promieni wykorzystane do liczenia oświetlenia polega na rzuceniu promieni od punktu (w przestrzeni 3D) do kolejnych źródeł światła i sprawdzeniu czy po drodze promienie trafiają w wielokąty sceny. Punkt, z którego rzucamy promienie może być np. punktem mapy światła.

Autor: Mirosław Kozioł, Komires Sp. z o.o.


Numer artykułu: 4
Wysłany: Sun, Jan 24, 2010 4:15 PM
Ostatnio zmieniony: Sun, Jan 24, 2010 6:16 PM

Adres URL: https://www.komires.net/article.php?id=4