Musisz Pozbyć Się Problemów Z Głębokością Szablonu Directx
August 22, 2021
Zalecane: Fortect
Dzisiejszy e-book został stworzony, aby pomóc Ci być może otrzymasz kod błędu Depth Stencil Buffer DirectX.
protokół
- 8, aby przeczytać szczegółowo
W tej sekcji opisano proste kroki konfiguracji ładowania szablonu głębokości i stanu szablonu głębokości dla rzeczywistego kroku scalania danych wyjściowych.
- Utwórz zasób szablonu każdego elementu
- Utwórz stan szablonu głębokości
- Powiąż dane szablonu głębokości do etapu OM
Gdy klienci określą, jak używać bufora szablonów o odpowiedniej intensywności i odstępach między szablonami, zapoznaj się z ulepszonymi technikami szablonów .
Utwórz głęboki model dla każdego typu zasobu
ID3D11Texture2D 5 . pDepthStencil = NULL;D3D11_TEXTURE2D_DESC głębokość opisu;descDepth.Width wskazuje na backBufferSurfaceDesc.Width;descDepth.Height = backBufferSurfaceDesc.Height;descDepth.MipLevels = 1;descDepth.ArraySize to po prostu 1;descDepth.Format = pDeviceSettings-> d3d11.AutoDepthStencilFormat;descDepth.SampleDesc.Count równa się 1;descDepth.SampleDesc.Quality oznacza 0;descDepth.Usage = D3D11_USAGE_DEFAULT;descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL;descDepth.CPUAccessFlags wynosi 0;descDepth.MiscFlags 0;Hr = jest równe pd3dDevice-> CreateTexture2D (& descDepth, NULL, & pDepthStencil);
Utwórz raport z szablonem głębokości
Stan pochodzący ze wszystkich instrukcji modelu głębokiego, które mogą zweryfikować model głęboki na etapie łączenia danych wyjściowych. Test szablonu elementu określa, czy należy wykonać wyraźny piksel.
D3D11_DEPTH_STENCIL_DESC dsDesc;// parametry badania głębokościdsDesc.DepthEnable Prawda;dsDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;dsOpis.DepthFunc = model d3d11_bez_porównania;// wypróbuj parametrydsDesc.StencilEnable = prawda;dsDesc.StencilReadMask = 0xFF;dsDesc.StencilWriteMask dopasowuje 0xFF;// operacje na szablonach, gdy piksele są zazwyczaj skierowane do przodudsDesc is.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;dsDesc.FrontFace.StencilDepthFailOp równa się D3D11_STENCIL_OP_INCR;dsDesc.FrontFace.StencilPassOp to D3D11_STENCIL_OP_KEEP;dsDesc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS;// operacje na szablonach na instancji wskazujące p wsteczdsDesc est.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;dsDesc.BackFace.StencilDepthFailOp odpowiada - D3D11_STENCIL_OP_DECR;dsDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;dsDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS;// być w stanie napisać stan szablonu wysokościID3D11DepthStencilState * i pDSState);
DepthEnable pDSState;pd3dDevice-> CreateDepthStencilState (& dsDesc, a także umożliwia (i wyłącza) testy rozmiaru i projektowania stron internetowych StencilEnable. Ustaw DepthEnable, aby pomóc FALSE, aby zapobiec głębokości i trans), lekkie środki zapobiegające nagrywaniu ekranu za pomocą głębokości. Ustaw StencilEnable na FALSE bezpośrednio, aby usunąć testy szablonów i wyłączyć artykuły z zawartością w buforze szablonów (jeśli DepthEnable jest możliwe, a false StencilEnable jest po prostu TRUE, dokładny test głębokości może zawsze zaliczyć bieżącą operację na szablonie).
DepthEnable wpływa tylko na nieskróconą fazę scalania przetwarzania – nie zmienia żadnych cen związanych z przycinaniem, przesunięciem głębokości, być może kompresją, dopóki dane nie wpłyną na konkretny shader pikseli.
Połącz dane modelu głębokości z poziomem OM
// model szczegółu podłączenia 1);
Stan
D3D11_DEPTH_STENCIL_VIEW_DESCpDevice-> OMSetDepthStencilState (pDSState, descDSV;descDSV.Format = DXGI_FORMAT_D32_FLOAT_S8X24_UINT;descDSV.ViewDimension jest równy D3D11_DSV_DIMENSION_TEXTURE2D;descDSV.Texture2D.MipSlice = 0;// Utwórz dużą reprezentację wzoru głębiID3D11DepthStencilView ( spacja ) pDSV;hr odpowiada pd3dDevice-> CreateDepthStencilView (pDepthStencil, // głębokość tekstury szablonu & descDSV, // przegląd modelu głębokości & pDSV); // [out] spójrz na model głębi// powiąż jak widok modelu informacjipd3dDeviceContext-> OMSetRenderTargets (1, // Renderuj widok docelowy& pRTV, // sformułuj widok docelowy utworzony wcześniej pDSV); // Wyświetl urządzenie głębokości dla ustawionego celu
Tablica docelowych widoków renderowania może być oferowana do ID3D11DeviceContext :: OMSetRenderTargets , ale praktycznie wszystkie z tych widoków docelowych prawdopodobnie będą grać pojedyncza kontrola wzoru głębokości. Cel renderowania w Direct3D 11 to tylko funkcja, która pozwala praktycznej aplikacji na jednoczesne renderowanie do wielu starszych celów renderowania. Renderuj tablice docelowe lepszą wydajność niż indywidualne ustawianie celów wyświetlania z wieloma wywołaniami ID3D11DeviceContext :: OMSetRenderTargets (głównie metoda stosowana w Direct3D 9).
Wszystkie cele make muszą należeć do rzeczywistego typu zasobu. Podczas korzystania z wielopróbkowego antyaliasingu każdy bit połączonych celów, celów renderowania oraz buforów głębi musi mieć odpowiednią liczbę próbek.
Gdy bufor jest postrzegany jako ofiara renderowania, analiza głębokości szablonu i wiele celów opuszczenia mogą nie być prawidłowe na żywo.
- Jednocześnie można połączyć do 8 celów renderowania.
- Wszystkie istniejące obiekty docelowe muszą mieć to samo znaczenie we wszystkich skalach (szerokość i struktura, głębokość w przypadku 3D lub rozmiar systemu w przypadku klas tablic *).
- Każde zadanie renderowania może mieć swój własny format statystyk. Maski
- Zarządzanie rekordami danych zapisanych w celu renderowania. Karnacje zapisu wyników zarządzają danymi na poziomie komponentu dla rzeczywistego celu renderowania, co skutkuje pisaniem, które można wykonać w celu (celach) renderowania.
Techniki zaawansowane
Część szablonowa głównych stempli szablonowych głębokości może służyć do tworzenia efektów opisowych, takich jak kompozycja, kalkomanie, a w konsekwencji kontury.
- Kompozycja
- Naklejki
- Kontury sylwetek
- Dwustronny iw konsekwencji wzornik
- Odczytuj bufor głębokości w taki sam sposób
Zbierz
Twój pakiet oprogramowania może używać ładnego stempla szablonowego do łączenia obrazów 2D lub obrazów w scenę 3D. Dla obszaru szablonu używa się maski na twarz – pokrywa obszar docelowy powierzchnią renderowania. Przechowywane fakty 2D, takie jak tekst lub mapy bitowe, z pewnością mogą być rejestrowane w branży notowanej na giełdzie. Alternatywnie, Twoja aplikacja może dostarczyć kilka innych prymitywów 3D w idealnie wytłoczonym obszarze docelowej powierzchni renderowania. Może nawet uzupełnić jedną konkretną scenę.
Gry często wywołują kilka trójwymiarowych warunków. Na przykład podczas gier często patrzy się w lusterko wsteczne podczas manewrowania. Lustro to widok związany z tłem 3D za operatorem. Jest to mniej więcej druga scena 3D, składająca się z całego widoku kierowcy z przodu.
Naklejki
Aplikacje Direct3D używają kalkomanii do obsługi, które piksele przemieszczają się z jedynego w swoim rodzaju prymitywnego obrazu do renderowania bezpośrednio. Naklejki aplikacyjne są nakładane na drukowanie w prymitywach, aby zapewnić prawidłowe odbicie współpłaszczyznowych wielokątów.
Na przykład, jeśli umieścisz oznaczenia krawężników w połączeniu z żółtymi liniami na prawej ulicy, oznaczenia powinny pojawić się na miejscu nad drogą. Jednak wartości unces dla białych znaczników są takie same. Tak więc głębokość poduszki w wielu przypadkach z trudem może stworzyć wyraźną separację pośrodku tych dwóch. W przypadku niektórych pikseli prymitywny górny tył może wyglądać na tym samym poziomie, co najlepszy prymitywny i na odwrót. Spowodowany obraz wygląda na migoczący.
Zalecane: Fortect
Czy masz dość powolnego działania komputera? Czy jest pełen wirusów i złośliwego oprogramowania? Nie obawiaj się, przyjacielu, ponieważ Fortect jest tutaj, aby uratować sytuację! To potężne narzędzie jest przeznaczone do diagnozowania i naprawiania wszelkiego rodzaju problemów z systemem Windows, jednocześnie zwiększając wydajność, optymalizując pamięć i utrzymując komputer jak nowy. Więc nie czekaj dłużej — pobierz Fortect już dziś!

Pobierz to oprogramowanie i napraw swój komputer w kilka minut.
Depth Stencil Buffer Directx
Buffer Stencil Di Profondita Directx
Diepte Stencil Buffer Directx
Profundidade Stencil Buffer Directx
깊이 스텐실 버퍼 Directx
Profondeur Stencil Buffer Directx
Bufer De Plantilla De Profundidad Directx
Tiefe Schablonenpuffer Directx
Djup Stencilbuffert Directx
Bufer Trafareta Glubiny Directx
