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.
Aby ułatwić autorom pisania linkowalnych cieniowania pikseli, d2d1effecthelpers.hlsli definiuje zestaw rozszerzeń języka HLSL w postaci metod i makr pomocniczych.
Aby dodać d2d1effecthelpers.hlsli do projektu, dodaj instrukcję #include w pliku HLSL. d2d1effecthelpers.hlsli znajduje się w tej samej lokalizacji co inne nagłówki Direct2D, takie jak d2d1.h; Można odwoływać się do niego ze strony właściwości pliku HLSL, dodając makro $(WindowsSDK_IncludePath) do właściwości Dodatkowe katalogi dołączania. Należy pamiętać, że instrukcja #include musi pochodzić po zdefiniowaniu wszystkich dyrektyw preprocesora, takich D2D_INPUT_COUNT.
#include <d2d1effecthelpers.hlsli>
Funkcja Direct2D nie obsługuje łączenia cieniowania zasobów obliczeniowych ani wierzchołków. Jeśli jednak efekt używa cieniowania wierzchołków i cieniowania pikseli, dane wyjściowe cieniowania pikseli mogą być nadal połączone.
Dyrektywy preprocesora
Dyrektywy preprocesora są wymagane do przekazywania informacji na temat efektu. Obejmuje to liczbę danych wejściowych i typ próbkowania poszczególnych danych wejściowych. Poniższe wartości powinny być zdefiniowane w kodzie cieniowania efektu powyżej odpowiedniego punktu wejścia cieniowania, jeśli ma to zastosowanie.
-
D2D_INPUT_COUNT <N>: deklaruje liczbę danych wejściowych tekstury do efektu. Jeśli efekt ma zmienną liczbę danych wejściowych, ta wartość musi być odpowiednio ograniczona do każdego punktu wejścia cieniowania. Definiowanie tej wartości jest obowiązkowe. -
D2D_INPUT<N>_SIMPLE: deklaruje N-te dane wejściowe, aby używać prostego próbkowania. Jeśli nie zostanie zdefiniowana, nth dane wejściowe są domyślnie złożone. Definiowanie tej wartości jest opcjonalne. -
D2D_INPUT<N>_COMPLEX: deklaruje dane wejściowe Nth do korzystania ze złożonego próbkowania. Jeśli nie zostanie zdefiniowana, nth dane wejściowe są domyślnie złożone. Definiowanie tej wartości jest opcjonalne. -
D2D_REQUIRES_SCENE_POSITION: wskazuje, że funkcja cieniowania wywołuje metody pomocnicze używające wartości położenia sceny (a mianowicie D2DGetScenePosition funkcji pomocnika). Ten parametr powinien być uwzględniony tylko w razie potrzeby, ponieważ tylko jedna funkcja na połączony moduł cieniowania może korzystać z tego parametru. Definiowanie tej wartości jest opcjonalne. -
D2D_CUSTOM_ENTRY: wskazuje, że funkcja cieniowania pikseli korzysta z danych wyjściowych cieniowania wierzchołków niestandardowych, a tym samym zadeklaruje parametry wejściowe. Wszystkie niestandardowe dane wejściowe cieniowania wierzchołków używają złożonego próbkowania i nie mogą korzystać z danych wyjściowych innej funkcji cieniowania (tj. są one dostępne tylko po łączeniu). Definiowanie tej wartości jest opcjonalne.
Na przykład:
#define D2D_INPUT_COUNT 3
#define D2D_INPUT0_SIMPLE
#define D2D_INPUT1_SIMPLE
#define D2D_INPUT2_COMPLEX
#include <d2d1effecthelpers.hlsli>
Funkcje pomocnika
Funkcje pomocnika są używane jako zamiennik niektórych natywnych funkcji wewnętrznych HLSL. W czasie kompilacji te funkcje pomocnicze są ponownie definiowane przez funkcję Direct2D w odpowiedniej wersji w zależności od typu docelowego kompilacji (pełne cieniowanie lub funkcja eksportu).
Funkcje pomocnika:
D2DGetInput
D2DSampleInput
D2DSampleInputAtOffset
D2DSampleInputAtPosition
D2DGetInputCoordinate
D2DGetScenePosition
D2D_PS_ENTRY
Tematy pokrewne