Question

J'ai créé une application simple DirectX qui rend un champ de sommets. Vertex sont rendus comme celui-ci (si on la regarde du haut):

|\|\|\|\|
|\|\|\|\|

Chaque triangle est rendu comme ceci:

1
|\
2 3

Ce qui devrait signifier que le polygone est anti-horaire et ne pas être rendu, mais il est. Quoi qu'il en soit, vu de haut plan est parfait.

Cependant, lorsqu'il est vu d'un autre niveau des polygones sont en quelque sorte transparent et vous pouvez voir la géométrie derrière eux. J'ai mis en évidence quelques-uns du lieu où cela se passe.

Je pense que c'est quelques-uns des problèmes de base, débutant. Qu'est-ce que je rate? Ma description de tramage est tel:

new RasterizerStateDescription
                                {
                                    CullMode = CullMode.Front,
                                    IsAntialiasedLineEnabled = true,
                                    IsMultisampleEnabled = true,
                                    IsDepthClipEnabled = true,
                                    IsFrontCounterclockwise = false,
                                    IsScissorEnabled = true,
                                    DepthBias = 1,
                                    DepthBiasClamp = 1000.0f,
                                    FillMode = FillMode.Wireframe,
                                    SlopeScaledDepthBias = 1.0f
                                };

text alt

Était-ce utile?

La solution 2

Retourné je n'avais pas la profondeur pochoir un buffer. Eh bien.

Autres conseils

est par la conception. FillMode.Wireframe ne tire que les bords de chaque triangle sous forme de lignes. C'est tout.

Faites un premier passage d'un mode de remplissage solide et écrit de profondeur sur et un masque de couleur (RenderTargetWriteMask dans la terminologie D3D11), et une seconde avec le test de profondeur sur (mais la profondeur radie) et le mode wireframe sur. Vous aurez probablement besoin d'un biais de profondeur aussi, car les lignes et les triangles ne sont pas pixellisés de la même façon (et leur z peuvent différer à la position égale de fragments).

BTW, cette technique est connue comme la suppression des lignes cachées. Vous pouvez vérifier cette de présentation pour plus de détails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top