Moet Zich Ontdoen Van Problemen Met De Diepte Van Directx-stencils
August 22, 2021
Aanbevolen: Fortect
De gids van vandaag moest worden gemaakt om u te helpen als de persoon de Depth Stencil Buffer DirectX-foutcode ontvangt.
protocol
- 8 om te bladeren
In deze sectie worden de stappen beschreven om uiteindelijk de diepte-stencilbuffer en bovendien de diepte-stencilstatus voor de uitgaven-samenvoegstap te configureren.
- Maak elke depth stencil bron van informatie
- Diepte stencilstatus maken
- Bind aspect stencilgegevens aan OM stride
Als klanten de juiste manier hebben geleerd om de juiste stencilbuffer en diepte stencilfase te gebruiken, inspecteer dan geavanceerde stenciltechnieken .
Maak een diepgaand model voor elk resourcetype
ID3D11Texture2D 4 . pDepthStencil = NULL;D3D11_TEXTURE2D_DESC desc diepte;descDepth.Width technieken backBufferSurfaceDesc.Width;descDepth.Height = backBufferSurfaceDesc.Height;descDepth.MipLevels = 1;descDepth.ArraySize is in feite 1;descDepth.Format = pDeviceSettings-> d3d11.AutoDepthStencilFormat;descDepth.SampleDesc.Count = 1;descDepth.SampleDesc.Quality algemeen 0;descDepth.Usage = D3D11_USAGE_DEFAULT;descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL;descDepth.CPUAccessFlags 's 0;descDepth.MiscFlags 0;Hr = = pd3dDevice-> CreateTexture2D (& descDepth, NULL, & pDepthStencil);
Maak een rapport met dieptesjabloon
De status van het type diep model geeft de opdracht om het diepe model te onderzoeken tijdens een soort van uitvoerfusiestap. De graadstenciltest bepaalt of een unieke pixel moet worden uitgevoerd.
D3D11_DEPTH_STENCIL_DESC dsDesc;// diepte test parametersdsDesc.DepthEnable True;dsDesc.DepthWriteMask komt overeen met D3D11_DEPTH_WRITE_MASK_ALL;dsDesc.DepthFunc = model d3d11_comparison_less;// probeer dingen uit parametersdsDesc.StencilEnable = waar;dsDesc.StencilReadMask = 0xFF;dsDesc.StencilWriteMask balanceert 0xFF;// stencilbewerkingen wanneer pixels met vooruit werkendsDesc is.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;dsDesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_INCR;dsDesc.FrontFace.StencilPassOp is D3D11_STENCIL_OP_KEEP;dsDesc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS;// stencilprojecten op de instantie die p terug wijstdsDesc est.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;dsDesc.BackFace.StencilDepthFailOp komt overeen met D3D11_STENCIL_OP_DECR;dsDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;dsDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS;// maak een staat van de dieptesjabloonID3D11DepthStencilState & pDSState);
DepthEnable pDSState;pd3dDevice-> CreateDepthStencilState (& dsDesc en zal ook toestaan (en uitschakelen) StencilEnable grootte en sjabloon experimenten. Stel DepthEnable in om FALSE te helpen om diepte en tranny te voorkomen) draagbare manier om schermopname van diep te voorkomen. Stel StencilEnable in op FALSE om stenciltests te voorkomen en het schrijven naar de stencilbuffer uit te schakelen (als DepthEnable mogelijk is en false StencilEnable TRUE is, zal een nauwkeurige dieptetest onveranderlijk de huidige stencilbewerking doorstaan).
DepthEnable heeft alleen invloed op de gehele samengestelde fase van de uitvoer – het probleem verandert geen stijgingen gerelateerd aan clipping, diepteverschuiving of gegevens totdat de gegevens een specifieke pixel shader beïnvloeden.
Dieptemodelgegevens koppelen aan OM-niveau
// model van de link stap 1);
Staat
D3D11_DEPTH_STENCIL_VIEW_DESCpDevice-> OMSetDepthStencilState (pDSState, descDSV;descDSV.Format = DXGI_FORMAT_D32_FLOAT_S8X24_UINT;descDSV.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D;descDSV.Texture2D.MipSlice = 0;// Maak een echt verslag van het dieptepatroonID3D11DepthStencilView - pDSV;hr komt overeen met pd3dDevice-> CreateDepthStencilView (pDepthStencil, // stenciltextuurdiepte & descDSV, // beschrijving die te maken heeft met het dieptemodel & pDSV); // [uit] kijk eens naar het dieptemodel// bind de informatiemodelweergavepd3dDeviceContext-> OMSetRenderTargets (1, // Render Target View & pRTV, // maak deze doelweergave eerder gemaakt pDSV); // Bekijk het dieptemodel om het ingestelde doel te produceren
Er kan een array van make target views worden doorgegeven die ID3D11DeviceContext :: OMSetRenderTargets kunnen zijn, maar onthoud dat vrijwel al deze render-beoogde views waarschijnlijk overeenkomen met een functionele enkelvoudige dieptepatrooncontrole. Een vast doel in Direct3D 11 is de nieuwste functie waarmee een toepassing u kan helpen bij het gelijktijdig weergeven van meerdere legacy-geefdoelen. Renderdoelarrays bieden veel betere prestaties dan het afzonderlijk instellen van rendergaten met meerdere aanroepen naar ID3D11DeviceContext :: OMSetRenderTargets (meestal een methode die wordt gebruikt voor Direct3D 9).
Alle gewenste renderdoelen moeten van hetzelfde winkeltype zijn. Bij gebruik van multisample anti-aliasing moeten min of meer alle gekoppelde doelen, renderdoelen en aspectbuffers dezelfde selectie van voorbeelden hebben.
Bij het overwegen van een zeer buffer als renderdoel, zijn patroondiepte-analyse en meerdere renderlocaties mogelijk niet valideLive.
- Er kunnen maximaal 8 renderdoelen tegelijk worden gekoppeld.
- Alle bestaande doelen moeten in alle dimensies dezelfde betekenis hebben (breedte en bijgevolg structuur, diepte voor 3D of gadgetgrootte voor arraytypes *).
- Elke rendertaak kan zijn eigen statistiekindeling hebben. Maskers
- Recordbeheer van gegevens die naar deze renderdoelen zijn geschreven. Resultaatschrijfmaskers zijn in staat om gegevens op componentniveau voor een specifiek tentoonstellingsdoel te stellen, wat resulteert in schrijven om doel(en) weer te geven.
Geavanceerde technieken
Het stencilgedeelte dat verband houdt met de stencilstempel met de belangrijkste diepte, moet kunnen worden gebruikt om weergave-inferenties te maken, zoals compositie, emblemen en vouwen.
- Compositie
- Stickers
- Contouren van silhouetten
- Dubbelzijdig dan stencil
- Dieptebuffer lezen als textuur en consistentie
Verzamel
Uw systeempakket kan een stencilzegel gebruiken om 2D of 3D in een 3D-scène te naaien. Voor het sjabloongebied wordt een ademhalingsapparaat gebruikt – bedekt het doelgebied meestal op het weergaveoppervlak. Opgeslagen 2D-informatie in de vorm van tekst of bitmaps wordt uiteraard vastgelegd in een geclassificeerd marktsegment. Als alternatief kan uw toepassing heel veel andere 3D-primitieven renderen in een functioneel gestencild gebied van het buitenste renderdoel. Het kan zelfs de selectie compleet maken.
Games combineren vaak een aantal driedimensionale voorwaarden. Bij oefeningen is het bijvoorbeeld gebruikelijk om tijdens het rijden in de achteruitkijkspiegel te kijken. De spiegel is een weergave van de specifieke 3D-achtergrond achter de bestuurder. Dit is min of meer de opkomende 3D-scène, bestaande uit het vooraanzicht van de persoon.
Stickers
Direct3D-toepassingen gebruiken emblemen om te bepalen welk type pixels van een bepaalde basisafbeelding naar het renderdoel wordt verplaatst. Applicatiestickers worden hier in primitieven op afbeeldingen aangebracht om een correcte weergave van coplanaire polygonen te garanderen.
Als u bijvoorbeeld stoeprandmarkeringen en gekleurde lijnen op de rechterrijstrook plaatst, moet elke markering verschijnen Blijf recht boven de weg. De z herkent echter de witte markeringen en die weg zijn hetzelfde. Een bepaalde diepte van het kussen kan dus zelden een duidelijke scheiding tussen over het algemeen twee creëren. Voor sommige pixels kan de belangrijkste achterprimitief op ons eigen niveau verschijnen als de vooroude, en vice versa. De resulterende figuur ziet er flikkerend uit.
Aanbevolen: Fortect
Bent u het beu dat uw computer traag werkt? Zit het vol met virussen en malware? Vrees niet, mijn vriend, want Fortect is hier om de dag te redden! Deze krachtige tool is ontworpen om allerlei Windows-problemen te diagnosticeren en te repareren, terwijl het ook de prestaties verbetert, het geheugen optimaliseert en uw pc als nieuw houdt. Wacht dus niet langer - download Fortect vandaag nog!

Download deze software en repareer uw pc binnen enkele minuten.
Depth Stencil Buffer Directx
Buffer Stencil Di Profondita Directx
Profundidade Stencil Buffer Directx
깊이 스텐실 버퍼 Directx
Profondeur Stencil Buffer Directx
Bufer De Plantilla De Profundidad Directx
Tiefe Schablonenpuffer Directx
Djup Stencilbuffert Directx
Bufor Szablonu Glebokosci Directx
Bufer Trafareta Glubiny Directx
