Ich erstelle eine kleine Spielengine in Direct X 11, die großartig läuft, aber mir ist aufgefallen, dass sowohl 3D-Objekte als auch 2D-Objekte beim Rendern sehr rau aussehen. Ich kam vorher von Direct X 9 und dieses Problem gab es dort nicht. Ich habe mich gefragt, wie ich Anti-Aliasing oder eine Art Multi-Sampling richtig aktivieren kann, damit meine Texturen nicht mit gezackten Kanten erscheinen.Direct X 11 gezackte Kanten
swapChainDesc.SampleDesc.Count = 2;
swapChainDesc.SampleDesc.Quality = 0;
depthBufferDesc.SampleDesc.Count = 2;
depthBufferDesc.SampleDesc.Quality = 0;
Dies sind die Zählung und Qualität Kombinationen aber egal, welche Einstellung ist hier kein visueller Unterschied ist oder Direct3D fehl, das Gerät zu erstellen. Meine GPU überschreibt nichts, da die Einstellungen so konzipiert sind, dass sie für jede Anwendung geeignet sind.
Dies schien für die Kanten zu arbeiten, aber meine Textur ist immer noch leicht verzogen. Zum Beispiel ist eine einfache Ringtextur leicht verzerrt und Sie können eine Box darin sehen. Ich habe einen Screenshot, der das Quellbild mit dem vergleicht, was tatsächlich im Spiel wiedergegeben wird. https://www.dropbox.com/s/epkipy37o0b3yq7/comparison.png?dl=0 Könnte es ein anderes Problem geben? Dies geschieht nicht in Direct3D 9 oder anderswo. – user5901143
Es sind viele Staaten in der Pipeline, also könnte es eine ganze Reihe von Gründen geben. Sie haben unterschiedliche Hintergründe in den beiden Bildern, so dass auch Unterschiede beim Mischen entstehen. Machst du irgendwelche [Texelverschiebung] (https://msdn.microsoft.com/en-us/library/windows/desktop/bb205073.aspx#Mapping_Texels_to_Pixels_DX10) in deinen Shadern? –
Für das Quellbild habe ich einen schwarzen Hintergrund mit Gimp hinzugefügt. Aber so soll es aussehen. Ich mache keine Verschiebung, mein Shader macht nur grundlegende Texturierung keine Effekte oder Modifikationen angewendet. – user5901143