2017-09-08 1 views
0

Ich habe eine Menge Kämpfe zu versuchen, Frank Luna Buch für DirectX 11 3D-Programmierung zu folgen, und ich bin derzeit bis Kapitel 7 Abschnitt 2. Ich habe die Schädel-Modell-Datei importiert und ich habe begonnen rendern Sie es. Das Seltsame ist, dass wenn ich es rendere, es scheint, die Rückseiten über den Frontseiten zu rendern. Ich bin mir ziemlich sicher, dass dies der Fall ist. Aber ich stelle diese Frage als Hilfe und Anleitung dar, wo ich vielleicht falsch liege. Ich werde diesen Beitrag mit Einschlüssen meines Codes bearbeiten, wenn es nötig ist, um herauszufinden, wo ich falsch liege, Vielen Dank! (Fotos angebracht)DirectX 11 Rendering-Objekt Inside out

Photo - Facing the Skull, Slightly to the Left

Photo - Above the Skull, Facing Downwards

EDIT: Ich habe einen Haltepunkt in meinem Code-Set für nach dem ersten Aufruf Schleife ziehen und es zeigt keine Gesichter, die hinter den Fronten diejenigen sind, so Das Problem ist in diesem Frame gelöst, aber wenn ich mit dem nächsten Frame fortfahre, fangen die Probleme an.

+0

Sieht dieses Modell gleich aus, wenn Sie seine z-Transformation ändern (verschieben Sie es weiter)? Welchen Wert haben Sie für die nahe Ebene und die ferne Ebene Ihres Frustums angegeben? – Asesh

+0

Es sieht so aus, als hätten Sie beim Konfigurieren der [Rasterizer-Beschreibung] (https://msdn.microsoft.com/en-us/library/windows/desktop/ff476198 (v = vs.85) .aspx) den falschen Culling-Modus festgelegt. – VTT

+0

Ich verwende XMMatrixLookAtLH, sollte ich XMMatrixPerspectiveLH implementieren? – Sharpie

Antwort

0

Ich fand heraus, was meine Trauer verursacht hatte. Ich habe DirectXToolKits SpriteFont und SpriteBatch Klassen verwendet, um die Funktion DrawString zu verwenden, um einen FPS-Zähler in der oberen linken Ecke des Bildschirms anzuzeigen, und es muss mit den ID3D11DeviceContext :: DrawIndexed-Aufrufen herumgespielt haben. Vielen Dank für Ihre Anregungen und Ideen!

+0

Sie sollten auf die [Wiki] (https://github.com/Microsoft/DirectXTK/wiki/SpriteBatch#state-management) für genau welche Staaten '' SpriteBatch'' Sätze. Sie sollten sicherstellen, dass jeder Status festgelegt wird, auf den Sie sich verlassen, und alle "nicht freigegebenen" löschen, die Probleme verursachen. –

+0

Danke für die Eingabe, die ich gerade versuche, an einer Lösung zu arbeiten – Sharpie

0

Diese Art von Problemen sind manchmal mit der Einrichtung der CullMode in der D3D11_RASTERIZER_DESC verbunden. Versuchen Sie, von D3D11_CULL_BACK zu D3D11_CULL_FRONT oder umgekehrt zu wechseln. Werfen Sie auch einen Blick auf die FrontCounterClockwise Option der D3D11_RASTERIZER_DESC.

+0

Blick auf das Bild, ich glaube nicht, es ist wegen Cull-Modus – Asesh

Verwandte Themen