Korzystanie z obiektów 3-D w grach i aplikacjach
W tym artykule opisano, jak użyć Visual Studio do przetwarzania 3-zasoby i je uwzględnić w kompilacji.
Po użyciu narzędzia w Visual Studio do utworzenia 3-zasoby, następnym krokiem jest użyć ich w swojej aplikacji.Ale przed korzystania z nich, trwałych musi zostać przekształcone w formacie, który można zapoznać się DirectX.W celu zmiany z zasobami Visual Studio udostępnia dostosowania kompilacji dla każdego rodzaju zasobów, które można go utworzyć.Do zawiera zasoby w kompilacji, wystarczy, że jest skonfigurowania swojego projektu do używania dostosowania kompilacji, dodać zasoby do projektu i skonfigurować zasoby do użycia dostosowywania poprawne kompilacji.Po, który można załadować zasoby do aplikacji i używać ich tworzenia i wypełniania zasoby DirectX, tak jak w innych aplikacji DirectX.
Konfigurowanie projektu
Przed wdrożeniem trwałych 3-w ramach kompilacji, Visual Studio musi wiedzieć o rodzaju zasoby, które chcesz wdrożyć.Visual Studiojuż obsługującemu wielu popularnych typów plików, ale ponieważ niektóre rodzaje aplikacji używane zasoby 3- Visual Studio nie założyć, że projektu utworzy tych typów plików.Możesz stwierdzić, Visual Studio aplikacji używany w tego rodzaju zasoby przy użyciu tworzenie dostosowania— pliki, które powiedz Visual Studio sposobu przetwarzania różnych typów plików w sposób przydatne — są dostarczane dla każdego typu zawartości.Ponieważ dostosowania te są stosowane na zasadzie na projekt, wystarczy, że będzie dodać odpowiednie dostosowania do projektu.
Aby dodać dostosowania kompilacji do projektu
W Eksploratora rozwiązań, otwórz menu skrótów dla projektu, a następnie wybierz tworzenia zależności, tworzenie dostosowania.Programu Visual C++ twórz pliki dostosowania zostanie wyświetlone okno dialogowe.
W obszarze dostępne pliki dostosowywania tworzenia, zaznacz pola wyboru odpowiadające typy zasobów, które chcesz użyć w projekcie, zgodnie z opisem w tej tabeli:
Typ zasobu
Tworzenie dostosowywania nazwy
Tekstury i obrazów
ImageContentTask (.targets, .props)
3-w modelach
MeshContentTask (.targets, .props)
Programów do cieniowania
ShaderGraphContentTask (.targets, .props)
Wybierz OK przycisku.
Zasoby w tym w kompilacji
Teraz, kiedy projekt obsługującemu różne rodzaje 3-zasoby, których chcesz użyć, następnym krokiem jest uzyskuje on pliki, które są 3-zasoby i są rodzajów aktywów.
Aby dodać zasobów do kompilacji
W Eksploratora rozwiązańw projekcie, otwórz menu skrótów środka trwałego, a następnie wybierz właściwości.Zasobów stronę właściwości zostanie wyświetlone okno dialogowe.
Upewnij się, że konfiguracji i platformy właściwości są ustawiane na wartości, które mają zastosowania do zmiany.
W obszarze właściwości konfiguracji, wybierz ogólne, a następnie w siatce właściwości, w obszarze ogólne, ustaw typu elementu właściwość do potoku zawartości odpowiedni typ elementu.Na przykład plik obrazu lub struktury, wybierz potoku zawartości obrazu.
Ważne
Domyślnie Visual Studio przyjęto, że wiele rodzajów pliki obrazów powinny pogrupowane przy użyciu obraz typ, który jest wliczony w elementu Visual Studio.W związku z tym, należy zmienić typu elementu właściwości wszystkich obrazów, który ma zostać przetworzone przez potok zawartości obrazu.Inne rodzaje zawartości potoku pliki źródłowe 3-w modelach i cieniowania visual domyślnego grafiki na prawidłowe typu elementu.
Wybierz OK przycisku.
Poniżej przedstawiono trzy typy elementów zawartości potoku i ich skojarzonego źródła i dane wyjściowe typów plików.
Typ elementu |
Typy plików źródła |
Format pliku wyjściowego |
---|---|---|
Potok zawartości obrazu |
Portable Network Graphics (.png) JPEG (jpg, JPEG, .jpe, .jfif) Rysuj bezpośrednie powierzchnię (.dds) GIF (.gif) Mapy bitowej (bmp, dib) Plik TIFF (.tif, TIFF) Targa (.tga) |
Powierzchnię DirectDraw (.dds) |
Potok zawartości siatki |
Plik wymiany AutoDesk FBX (.fbx) Plik w formacie Collada DAE (DAE) Plik obj. czoła fali (.obj) |
Pliku siatki 3-(.cmo) |
Moduł potoku zawartości |
Wykres Visual cieniowania (.dgsl) |
Moduł skompilowany danych wyjściowych (.cso) |
Konfigurowanie właściwości zawartości potoku zasobów
Można ustawić właściwości potoku zawartości każdego pliku zasobów, aby będzie on kompilowany w określony sposób.
Aby skonfigurować właściwości potoku zawartości
W Eksploratora rozwiązańw projekcie, otwórz menu skrótów dla pliku zasobów, a następnie wybierz właściwości.Zasobów stronę właściwości zostanie wyświetlone okno dialogowe.
Upewnij się, że konfiguracji i platformy właściwości są ustawiane na wartości, które mają zastosowania do zmiany.
W obszarze właściwości konfiguracji, wybierz węzeł potoku zawartości — na przykład obrazu zawartości potoku struktury i obraz zasobów —, a następnie w siatce właściwości równa właściwości odpowiednie wartości.Na przykład aby wygenerować mipmapy dla trwałego struktury w czasie kompilacji, należy ustawić Generowanie Mips właściwości tak.
Wybierz OK przycisku.
Obraz zawartości potoku konfiguracji
Podczas używania narzędzia potoku zawartości obrazu do tworzenia zasobów struktury, możesz kompresowanie struktury na różne sposoby, wskazać, czy poziomy MIP musi zostać wygenerowany w czasie kompilacji i Zmień nazwę pliku wyjściowego.
Właściwość |
Opis |
||
---|---|---|---|
Umożliwia kompresję |
Określa typ kompresji, który służy do pliku wyjściowego. Dostępne opcje to:
Aby uzyskać informacje o kompresji, które są obsługiwane formaty w różnych wersjach programu DirectX, zobacz Przewodnik po programach dla DXGI. |
||
Konwertuj na format wstępnie pomnożone alfa |
Tak do konwertowania obrazu wstępnie pomnożone format alfa w pliku danych wyjściowych. w przeciwnym razie nr.Tylko plik wyjściowy jest zmieniana, obraz źródłowy nie ulega zmianie. |
||
Generowanie Mips |
Tak do generowania pełnego łańcucha MIP w czasie kompilacji i dołączyć go w pliku danych wyjściowych. w przeciwnym razie nr.Jeśli nr, plik źródłowy zawiera już łańcucha mipmap, a następnie plik wyjściowy będzie miał łańcucha MIP; w przeciwnym razie plik wyjściowy będzie mieć żaden łańcuch MIP. |
||
Dane wyjściowe zawartości |
Określa nazwę pliku wyjściowego.
|
Konfiguracja potoku zawartości siatki
Podczas używania narzędzia potoku zawartości siatki do tworzenia zasobów siatki, można zmienić nazwę pliku wyjściowego.
Właściwość |
Opis |
||
---|---|---|---|
Dane wyjściowe zawartości |
Określa nazwę pliku wyjściowego.
|
Moduł zawartości potoku konfiguracji
Podczas używania narzędzia zawartości potoku cieniowania do tworzenia zasobów cieniowania, można zmienić nazwę pliku wyjściowego.
Właściwość |
Opis |
||
---|---|---|---|
Dane wyjściowe zawartości |
Określa nazwę pliku wyjściowego.
|
Trwa ładowanie i korzystanie z zasobów 3-w czasie wykonywania
Przy użyciu obrazów i tekstur
Direct3D udostępnia funkcje służące do tworzenia struktury zasobów.W Direct3D 11 Biblioteka narzędzi D3DX11 oferuje dodatkowe funkcje do tworzenia struktury zasobów i widoki zasobów bezpośrednio z plików obrazu.Aby uzyskać więcej informacji dotyczących sposobu tworzenia zasobu struktury w Direct3D 11, zobacz tekstury.Aby uzyskać więcej informacji o sposobie przy użyciu biblioteki D3DX11 utworzyć zasób struktury lub widok zasobów z pliku obrazu, zobacz jak: zainicjować struktury z plikiem.
Za pomocą modeli 3-w
Direct3D 11 nie zapewnia funkcje do tworzenia zasobów z 3-w modelach.Zamiast tego należy napisać kod, który umożliwia odczytanie pliku 3-w modelu i tworzy indeks i wierzchołków buforów reprezentujących 3-w modelu i wszystkie zasoby, które wymaga modelu — na przykład tekstury lub programów do cieniowania.
Za pomocą programów do cieniowania
Direct3D oferuje funkcje służące do tworzenia zasobów cieniowania i obowiązujące w potoku programowanie grafiki.Aby uzyskać więcej informacji dotyczących sposobu tworzenia zasobu cieniowania w Direct3D i powiąż go do potoku, zobacz Przewodnik po programach dla HLSL.
W potoku programowanie grafiki każdy etap potoku mogą dać następny etap potoku wyników w taki sposób, że może zrozumieć formacie.Ponieważ projektant cieniowania można utworzyć tylko programów do cieniowania pikseli, to oznacza, że jest do aplikacji w celu zapewnienia, że dane, które otrzymuje jest w formacie, który oczekuje, że.Kilka etapów programowanie cieniowania wystąpienia przed programu do cieniowania pikseli i wykonać przekształcenia geometrycznych — programu do cieniowania wierzchołków, moduł kadłuba, moduł domeny i cieniowania geometrii.Etap — programowanie Tesselacja również występuje przed programu do cieniowania pikseli.Niezależnie od tego, który z tych etapów bezpośrednio poprzedzający programu do cieniowania pikseli podaj jego wynik w następującym formacie:
struct PixelShaderInput
{
float4 pos : SV_POSITION;
float4 diffuse : COLOR;
float2 uv : TEXCOORD0;
float3 worldNorm : TEXCOORD1;
float3 worldPos : TEXCOORD2;
float3 toEye : TEXCOORD3;
float4 tangent : TEXCOORD4;
float3 normal : TEXCOORD5;
};
W zależności od węzłów Designer cieniowania, używanych w swojej cieniowania może również należy podać dodatkowe dane w formacie zgodnie z tych definicji:
Texture2D Texture1 : register( t0 );
Texture2D Texture2 : register( t1 );
Texture2D Texture3 : register( t2 );
Texture2D Texture4 : register( t3 );
Texture2D Texture5 : register( t4 );
Texture2D Texture6 : register( t5 );
Texture2D Texture7 : register( t6 );
Texture2D Texture8 : register( t7 );
TextureCube CubeTexture1 : register( t8 );
TextureCube CubeTexture2 : register( t9 );
TextureCube CubeTexture3 : register( t10 );
TextureCube CubeTexture4 : register( t11 );
TextureCube CubeTexture5 : register( t12 );
TextureCube CubeTexture6 : register( t13 );
TextureCube CubeTexture7 : register( t14 );
TextureCube CubeTexture8 : register( t15 );
SamplerState TexSampler : register( s0 );
cbuffer MaterialVars : register (b0)
{
float4 MaterialAmbient;
float4 MaterialDiffuse;
float4 MaterialSpecular;
float4 MaterialEmissive;
float MaterialSpecularPower;
};
cbuffer LightVars : register (b1)
{
float4 AmbientLight;
float4 LightColor[4];
float4 LightAttenuation[4];
float3 LightDirection[4];
float LightSpecularIntensity[4];
uint IsPointLight[4];
uint ActiveLights;
}
cbuffer ObjectVars : register(b2)
{
float4x4 LocalToWorld4x4;
float4x4 LocalToProjected4x4;
float4x4 WorldToLocal4x4;
float4x4 WorldToView4x4;
float4x4 UVTransform4x4;
float3 EyePosition;
};
cbuffer MiscVars : register(b3)
{
float ViewportWidth;
float ViewportHeight;
float Time;
};
Tematy pokrewne
Tytuł |
Opis |
---|---|
Opisuje sposób użycia potoku zawartości obrazu do wyeksportowania struktury, która zawiera wstępnie obliczone mipmapy. |
|
Porady: eksportowanie tekstury wykorzystującej wstępnie przemnożony kanał alfa |
Informacje dotyczące używania potoku zawartości obrazu do wyeksportowania struktury, zawierający wstępnie przemnożone wartości alfa. |
Porady: eksportowanie tekstury do użycia z Direct2D lub aplikacjami JavaScript |
Opisuje sposób użycia potoku zawartości obrazu do wyeksportowania struktury, które mogą być używane w aplikacji Direct2D lub JavaScript. |
Opisuje narzędzia edycji, dostępne w programie Visual Studio do tworzenia i modyfikowania 3-zasoby, które obejmują tekstury i obrazów, 3-w modelach i programów do cieniowania. |
|
Opisuje sposób eksportowania cieniowania w Projektancie cieniowania. |