Mapowanie wypukłości

Mapowanie wypukłości (ang. bump mapping) – technika teksturowania, która symuluje niewielkie wypukłości powierzchni, bez ingerencji w geometrię obiektu trójwymiarowego.

Technika polega na użyciu tekstury, która nie jest jednak bezpośrednio wyświetlana, ale powoduje lokalne zakłócenia (obrót) wektora normalnego. Ponieważ każdy model oświetlenia (np. oświetlenie Phonga) w jakiś sposób wiąże kąt pomiędzy promieniem światła a wektorem normalnym, to rezultatem zakłóceń jest pojawienie się na obrazie złudzenia nierówności powierzchni. Efekt ten jest bardzo przekonujący, większość ludzi nie zwraca uwagi na fakt, że brzegi obiektu pozostały „niezakłócone”.

Kula po lewej – bez mapowania wypukłości, po prawej – z mapowaniem; brzegi rysunku kuli nie zostały zniekształcone.

Mapowanie wypukłości zostało zaproponowane w 1978 roku przez Jamesa Blinna i jest stosowane głównie w metodzie śledzenia promieni. Współczesne karty graficzne realizują mapowanie wypukłości w sposób sprzętowy.

Rozwinięciem techniki mapowania wypukłości jest technika mapowania normalnych. Główna różnica pomiędzy tymi technikami, polega na wykorzystaniu mapy RGB, zamiast odcieni szarości. Każda składowa koloru mapy RGB, odpowiada współrzędnym składowej normalnej danego piksela.

2D bump mapping (także fake bump mapping) – uproszczona technika mapowania wypukłości, jej cechą charakterystyczną jest względnie małe obciążenie procesora i możliwość generowania efektu w czasie rzeczywistym nawet na słabszych komputerach. Wyznaczenie piksela w obrazie wynikowym polega na przepisaniu piksela z bitmapy źródła światła (najczęściej jakiś rodzaj flary, ciekawe wizualnie efekty daje także zastosowanie tekstury) spod współrzędnych wyznaczonych na podstawie różnicy wartości pikseli sąsiadujących z obliczanym i przesunięcia środka źródła światła względem bitmapy wejściowej. Modyfikacja tej techniki znalazła także zastosowanie w akceleratorach graficznych nVidia GeForce 2.

Od lewej: oryginalna bitmapa, bitmapa źródła światła, efekt końcowy

Zobacz też edytuj