Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Efekt Microsoft DirectX umożliwia integrację cieniowania wierzchołków i pikseli ze stanem potoku w celu renderowania obiektów. Efekty są kolejnym logicznym krokiem łączenia cieniowań w celu wygenerowania unikatowych warunków renderowania.
Efekty zapewniają również wygodny sposób pisania cieniowania dla różnych wersji sprzętowych. Ponieważ różne karty wideo obsługują różne funkcje, aplikacja może napisać kilka technik, które będą uruchamiane na różnych urządzeniach. W ten sposób, jeśli aplikacja działa na najnowszym i największym sprzęcie, aplikacja może uruchomić najbardziej zaawansowaną technikę efektu. Z drugiej strony mniej zaawansowane techniki efektu mogą być automatycznie wybierane do uruchamiania na mniej kosztownym lub mniej zdolnym sprzęcie.
Efekt może zastąpić przetwarzanie wierzchołków i część przetwarzania pikseli wykonywanego przez potok grafiki. Przykładowy efekt, który używa cieniowania wierzchołka i cieniowania pikseli, znajduje się w przykładzie BasicHLSL. Możesz uzyskać ten przykład i dowiedzieć się więcej na jego temat z zestawu SDK DirectX. Aby uzyskać informacje o zestawie SDK DirectX, zobacz Gdzie jest zestaw SDK DirectX?.
Aby uzyskać więcej informacji na temat efektów, zobacz następujące tematy:
Efekty i potok 3D
Na poniższym diagramie przedstawiono potok.
potoku 3d
Potok przekształca dane wejściowe w piksele wyjściowe, które wypełniają bufor ramki. Dane wejściowe pochodzą z obiektów składających się z wierzchołków w przestrzeni obiektu lub powierzchni o wyższej kolejności utworzonych na podstawie poprawek N, poprawek prostokątnych i poprawek trójkątów. Po tessellated danych wejściowych potok wykonuje przetwarzanie wierzchołków, przetwarzanie pierwotne i przetwarzanie pikseli przed wygenerowaniem końcowych kolorów pikseli.
Przetwarzanie wierzchołków i pikseli może być wykonywane przez potok funkcji stałych lub można zaimplementować za pomocą programowalnych cieniowania. Tessellation, pierwotne przetwarzanie danych i dane wyjściowe danych wejściowych są kontrolowane przez stan potoku. Wszystko to można zintegrować z efektem. Efekt ustawia stan, który kontroluje sposób działania potoku. Efekty zarządzają programowalnymi cieniowaniami, a także stałym stanem funkcji.
Efekty mogą zapisywać i przywracać stan, pozostawiając urządzenie w tym samym stanie co przed uruchomieniem efektu. Typy stanów, którymi może zarządzać efekt, to:
- Stan cieniowania. Obejmuje to tworzenie i usuwanie cieniowania, ustawianie stałych cieniowania, ustawianie stanu cieniowania i renderowanie za pomocą cieniowania.
- Stan tekstury i próbkatora. Obejmuje to określanie plików tekstur, inicjowanie etapów tekstury, tworzenie obiektów sampler i ustawianie stanu próbkatora.
- Inny stan potoku. Obejmuje to stany służące do ustawiania przekształceń, oświetlenia, materiałów i opcji renderowania. Mogą to być zmienne globalne lub lokalne. Zmienne mogą być ustawiane przez sam efekt lub przez aplikację.
Efekty zawierają wiele opcji renderowania nazywanych technikami. Każda technika hermetyzuje zmienne globalne, stan potoku, teksturę i stan próbkatora oraz stan cieniowania. Pojedynczy styl jest implementowany w przebiegu renderowania. Co najmniej jeden przebieg może być hermetyzowany w technice. Wszystkie przebiegi i techniki można zweryfikować, aby sprawdzić, czy kod efektu zostanie uruchomiony na urządzeniu sprzętowym.
Efekty zapisu i przywracania stanu
Efekty zarządzają stanem. W tym miejscu bardzo szeroko używany jest stan wyrazu, ponieważ zawiera on wszelkiego rodzaju informacje, które potok musi określać warunki renderowania. Obejmuje to prawie wszystkie obszary funkcjonalne potoku.
Opcje renderowania są kontrolowane przez techniki i przechodzi. Aplikacja renderuje efekt, ustawiając jedną aktywną technikę i renderując co najmniej jeden przebieg. Wszystkie renderowanie w efekcie odbywa się w ramach zgodnej pary Begin i End wywołań. Po wywołaniu Begin zostanie utworzony blok stanu, a stan urządzenia zostanie zapisany (chyba że określono inaczej). Gdy technika renderuje przebiegi określone przez aplikację do renderowania, end jest wywoływana w celu zakończenia aktywnej techniki. System efektu reaguje automatycznie, przywracając stan potoku przechwycony w bloku stanu (chyba że zdecydujesz się wyłączyć tę funkcję zapisywania i przywracania).
Podczas programowania sekwencji renderowania wielokrotnego przekazywania, z których każda wymaga własnej konfiguracji stanu, efekty mogą zmniejszyć utrzymanie wymagane do śledzenia zmian stanu. Aby wyświetlić więcej informacji na temat stanów, które można zapisać i przywrócić przez efekty, zobacz Effect States (Direct3D 9).
Efekty mogą współdzielić parametry
Parametry efektu to wszystkie zmienne niestatyczne zadeklarowane w efekcie. Może to obejmować zmienne globalne i adnotacje. Parametry efektu mogą być współdzielone między różnymi efektami, deklarując parametry za pomocą wspólnego słowa kluczowego, a następnie tworząc efekt z pulą efektów.
Sklonowane efekty używają tej samej puli efektu co efekt, z którego są klonowane. Klonowanie efektu sprawia, że dokładna kopia efektu, w tym zmienne globalne, techniki, przekazywanie i adnotacje.
Tematy pokrewne
-
Przewodnik programowania dla Direct3D 9