Question

J'apprends directx 11 et essayer de mettre en place multiéchantillonnage. Pour une raison quelconque chaque tutoriel sur les Internet MultiSampling désactive et ne va jamais sur la façon de l'activer.

Tout d'abord: je l'ai recherché autour et ne peut pas trouver des exemples de la façon d'utiliser CheckMultisampleQualityLevels. Il semble que vous devez créer un dispositif, appelez cette fonction, les niveaux trouver disponibles, puis détruire ce dispositif et de créer une nouvelle avec les paramètres que vous souhaitez. Est-ce la bonne façon de le faire? Ou est-il un moyen de mieux?

En second lieu, comment activer vous multiéchantillonnage? Puisque je ne suis pas sûr de savoir comment faire fonctionner correctement les CheckMultisampleQualityLevels, j'ai essayé de mettre dans certaines valeurs pour DXGI_SWAP_CHAIN_DESC.SampleDesc.Count et DXGI_SWAP_CHAIN_DESC.SampleDesc.Quality (comme 4 et 4) et alors qu'il ne fonctionne, rien ne s'affiche (il fait erreur si je mets des valeurs folles comme 33 et 2). Est-ce besoin d'être mis ailleurs en plus la description de la chaîne d'échange ou ne Shaders interférer avec en quelque sorte (j'ai un shader texture légère et de base mis en place)?

J'ai une GTX 570, donc je sais qu'il peut prendre en charge la plupart des paramètres AA. Je suis cette série de tutoriels, dans le cas où il est de toute aide: http://rastertek.com/tutindex.html

Était-ce utile?

La solution

ID3D11Device :: CheckMultisampleQualityLevels , ce qui vous donne le niveau de qualité pris en charge par l'adaptateur.

2.Tout remplissant le DXGI_SWAP_CHAIN_DESC , réglez le SampleDesc.Count et SampleDesc.Quality.

3.En anticrénelage multi-échantillon est utilisé, tous liés rendre des cibles et des tampons de profondeur doit avoir le même nombre d'échantillons et les niveaux de qualité. ( la structure DXGI_SAMPLE_DESC )

Selon le document msdn sur les D3D11_RASTERIZER_DESC ( structure D3D11_RASTERIZER_DESC ), le niveau de fonctionnalité API 10.1 et supérieur, MultisampleEnable n'a pas d'effet sur les points et triangles en ce qui concerne MSAA et les impacts que la sélection de l'algorithme de ligne de rendu.

Vous devriez consulter la msdn pour plus de détails.

Autres conseils

Vous devriez essayer de définir MultisampleEnable D3D11_RASTERIZER_DESC .

Aussi la qualité mis à 1.

En ce qui concerne CheckmultisampleQuality vous suffit de définir le format de DXGI vous voulez créer. Le nombre d'échantillons que vous voulez. Enfin passer dans un pointeur vers un uint et il retournera le nombre de niveaux de qualité à votre disposition. Si elle retourne 0, alors MultiSampling est pas pris en charge sinon vous savez ce que les niveaux de qualité que vous pouvez définir.

cela m'a aidé:

  • tampons de profondeur doivent avoir le même nombre d'échantillons et les niveaux de qualité
  • depthStencilViewDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DMS;

Merci @Telanor et @ user1253930

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