Skip to main content

Co to jest OpenGL Cień?

Otwarta biblioteka graficzna i reg;(OpenGL ) Shadow jest przybliżeniem wizualnym w trójwymiarowym (3D) OpenGL Scena o tym, jak cień zostałby rzucony w prawdziwym życiu w podobnych warunkach oświetlenia.Cienie to złożona funkcja wizualna do wdrożenia w OpenGL , głównie dlatego, że nie ma wrodzonego wsparcia w rzucaniu cieni w scenie.Zamiast tego istnieje wiele technik, które można wykorzystać do tworzenia cieni z obiektów i geometrii w scenie za pomocą różnych narzędzi, takich jak różne dostępne bufory, shaders, a w niektórych przypadkach rozszerzenia, które dają dostęp do specjalnych funkcji niektórych grafikikarty.W większości przypadków jakość, dokładność i szybkość OpenGL Renderowanie Shadow jest bezpośrednio związane z mocą przetwarzania i pamięcią sprzętu graficznego obecnego w komputerze lub urządzeniu.Niektóre z bardziej popularnych metod wdrażania OpenGL Shadow obejmuje objętości cienia, mapowanie cienia i śledzenie promieni.

Tworzenie aplikacji z OpenGL Wsparcie Shadow wymaga wiedzy matematycznej i głębokiego zrozumienia, w jaki sposób OpenGL Pracuje.OpenGL jest w dużej mierze używany do tworzenia scen 3D, które są dynamiczne i renderowane w czasie rzeczywistym, więc algorytmy używane do tworzenia cieni muszą być nie tylko zoptymalizowane pod kątem prędkości, ale także należy dokładnie zmierzyć pod kątem ich zużycia zasobów i wszelkich zakłóceń, które mogą byćspowodowane w rurociągu graficznym używanym do renderowania.Z tych powodów najbardziej podstawowa metoda tworzenia cienia, zwanego śledzeniem promienia, często jest niepraktyczna dla pełnych scen 3D, ponieważ może to potrwać bardzo dużo czasu.

Śledzenie promieni w zasadzie wynika z wyimaginowanej linii lub promienia, od oglądaniapłaska lub położenie aparatu przez scenę do powierzchni obiektu, a następnie oblicza kolor powierzchni na podstawie położenia jednego lub więcej źródeł światła i innych czynników.Podczas procesu rasteryzacji, gdzie scena 3D jest przyciągana do dwuwymiarowej (2D) powierzchni, aby mogła być wyświetlana, proces śledzenia promieni musi być wykonywany na każdym rysowanym pikselu, a zwłaszcza z teksturami lub innymiWłaściwości powierzchniowe, mogą wymagać oceny tych samych pikseli kilkakrotnie.Oznacza to śledzenie promieni w czasie rzeczywistym, chociaż dokładnie renderowałoby cienie, zwykle nie jest praktyczne.

Inna metoda, którą można zastosować do stworzenia OpenGL Shadow jest znany jako mapowanie cieni.Ta metoda wykorzystuje bufor głębokości lub szablonu do renderowania sceny pod kątem źródła światła jako serii odległości od źródła światła do powierzchni różnych obiektów w scenie.Scena jest następnie renderowana po raz drugi od prawidłowego kąta oglądania, sprawdzając, czy każdy piksel mieści się w określonym zakresie odległości w buforze, co wskazuje, czy piksel jest oświetlony, czy zacieniony.Korzystanie z mapowania cienia może być intensywnie pamięci, a w przypadku scen, które mają więcej niż jedno źródło światła, może obejmować wytwarzanie wielu map pod wieloma kątami.

Objętości cieni są sposobem na stworzenie OpenGL Cień, który jest dokładniejszy niż niektóre inne metody, ale przedstawia własne problemy.Objętość cienia jest zasadniczo niewidocznym kawałkiem geometrii w scenie, która rozszerza się z oświetlonej powierzchni obiektu z dala od źródła światła.Tom ten można sprawdzić z innymi obiektami, aby sprawdzić, czy wpadają one w cień powierzchni, z którego pochodzi objętość.Ta procedura może być bardzo złożona i ostatecznie tworzyć artefakty wizualne po zoptymalizowaniu pod kątem prędkości.