Widoki tekstur (Direct3D 10)
W wersji Direct3D 10 zasoby tekstur są dostępne z widokiem, który jest mechanizmem interpretacji sprzętowej zasobu w pamięci. Widok umożliwia określonemu etapowi potoku uzyskiwanie dostępu tylko do podźródłach, których potrzebuje, w reprezentacji żądanej przez aplikację.
Widok obsługuje pojęcie zasobu bez typów. Zasób bez typu jest zasobem utworzonym o określonym rozmiarze, ale nie określonym typie danych. Dane są interpretowane dynamicznie, gdy są powiązane z potokiem.
Na poniższej ilustracji przedstawiono przykład powiązania tablicy tekstur 2D z 6 teksturami jako zasób cieniowania przez utworzenie widoku zasobów cieniowania. Zasób jest następnie adresowany jako tablica tekstur. (Uwaga: podźródło nie może być powiązane zarówno jako dane wejściowe, jak i wyjściowe do potoku jednocześnie.
W przypadku używania tablicy tekstur 2D jako obiektu docelowego renderowania zasób może być postrzegany jako tablica tekstur 2D (6 w tym przykładzie) z poziomami mipmap (3 w tym przykładzie).
Utwórz obiekt widoku dla obiektu docelowego renderowania, wywołując polecenie CreateRenderTargetView. Następnie wywołaj metodę OMSetRenderTargets, aby ustawić widok docelowy renderowania na potok. Renderuj do obiektów docelowych renderowania, wywołując metodę Draw i używając indeksu RenderTargetArrayIndex do indeksowania do odpowiedniej tekstury w tablicy. Możesz użyć podźródła (poziomu mipmap, kombinacji indeksu tablicy) do powiązania z dowolną tablicą podźródła. Dlatego można powiązać z drugim poziomem mipmap i zaktualizować tylko ten konkretny poziom mipmap, jeśli chcesz, jak pokazano na poniższej ilustracji.
Różnice między direct3D 9 i Direct3D 10:
- W wersji Direct3D 10 nie można już powiązać zasobu bezpośrednio z potokiem, utworzyć widok zasobu, a następnie ustawić widok na potok. Dzięki temu walidacja i mapowanie w środowisku uruchomieniowym i sterowniku będą wykonywane podczas tworzenia widoku, minimalizując sprawdzanie typów w czasie powiązania.
Tematy pokrewne
-
zasoby (Direct3D 10)