Co to jest oświetlenie na piksele?
„Oświetlenie na piksel” to termin używany w grafice komputerowej do wskazania, że scena trójwymiarowa (3D) określi kolor obiektów na podstawie piksel po pikselu zamiast na podstawie wierzchołek po wierzchołku. Zastosowanie oświetlenia na piksel zamiast oświetlenia na wierzchołek zwykle tworzy gotowy obraz lub ramkę, która ma bardziej realistyczny i często ostrzejszy, bardziej zdefiniowany wygląd, szczególnie gdy stosowane jest mapowanie wypukłości. Ogólnie rzecz biorąc, oświetlenie na piksel jest realizowane za pomocą modułów cieniujących piksele, które mogą wykorzystywać wiele sposobów obliczania, w jaki sposób światło w scenie uderza w określony obszar sceny i jaki kolor powinna mieć wynikowa powierzchnia. W aplikacjach 3D, w których ważna jest szybkość renderowania, takich jak animacja dynamiczna, cieniowanie na piksel może nie być praktyczne, ponieważ może wymagać wielokrotnego przejścia przez scenę lub może po prostu potrwać zbyt długo i uniemożliwić osiągnięcie akceptowalnej liczby klatek na sekundę.
Jedną z najczęstszych form zastosowania światła do sceny 3D jest użycie metody znanej jako oświetlenie na wierzchołek. Ta technika pobiera wierzchołki obiektu - punkty, w których stykają się linie obiektu - i określa, jak powinna wyglądać powierzchnia obiektu w tym pojedynczym miejscu. Gdy wszystkie wierzchołki w scenie mają dołączone informacje o oświetleniu, moduł renderujący użyje interpolacji lub innego rodzaju algorytmów do oszacowania wyglądu powierzchni obiektu między wierzchołkami. Generalnie skutkuje to obszarami zależnymi od dużej gęstości wierzchołków w obiekcie w celu uzyskania ostrych efektów świetlnych, takich jak podświetlenie phong, podczas gdy kształt taki jak sześcian z tylko sześcioma wierzchołkami będzie miał szerokie, stopniowane oświetlenie na powierzchni, niezależnie od tekstury i położenia oświetlenia.
Natomiast program może zaimplementować oświetlenie na piksel. Obejmuje to przejście przez każdy piksel w zrasteryzowanej scenie i określenie indywidualnego koloru i oświetlenia dla każdego piksela, niezależnie od jego bliskości do wierzchołka. Rezultatem jest zazwyczaj ostre, dokładne oświetlenie, szczególnie z efektem lustrzanym. Kompromisem dla lepszej jakości obrazu jest dłuższy czas renderowania, ponieważ każdy piksel musi być przetwarzany przez moduł cieniujący piksele, chociaż nie zawsze jest to problem z modelowaniem 3D oraz programami graficznymi i renderującymi, które nie muszą utrzymywać określonej liczby klatek na sekundę.
Dramatyczne efekty oświetlenia na piksel przy prawidłowym zastosowaniu mogą faktycznie poprawić wygląd obiektu, na którym zastosowano skomplikowane mapowanie wypukłości, a drobne szczegóły mogą zostać utracone przy oświetleniu na wierzchołek. Tekstury proceduralne mogą również skorzystać z podejścia oświetlenia na piksel. Ponadto efekty specjalne, takie jak objętości cienia, wymagają użycia oświetlenia na piksel, podobnie jak złożone odbicia światła, układy cząstek, a nawet aureole w niektórych przypadkach.