2011-05-12 2 views
0

Je réalise que Direct3D ne supporte pas correctement l'épaisseur de la ligne, et infact sur la plupart des matériels graphiques, les lignes sont en fait juste des rectangles repliés. Au moins, je pensais que c'était le cas, jusqu'à ce que j'essaie d'implémenter réellement l'épaisseur de ligne en rendant des rectangles au lieu de lignes et que je découvre qu'ils ont perdu des détails et ont finalement été invisibles lorsque j'ai fait un zoom arrière; tandis que les types linéaires primitifs semblent toujours avoir une largeur de 1 pixel indépendamment de l'échelle.épaisseur de ligne Direct3D, avec une prise légèrement différente

Je crée une visionneuse AutoCAD, dont les lignes sont une entité assez agrafe, et doivent supporter une épaisseur; mais quel que soit le niveau de zoom, il doit toujours avoir au moins un pixel de large. Quelqu'un peut-il suggérer une stratégie pour atteindre cet objectif? Idéalement, un ajustement des paramètres de rendu par opposition à l'élaboration si elle devrait rendre des lignes au lieu de rectangles?

[Éditer] aurait dû le mentionner; c'est Direct3D 9 dans .Net via SlimDX.

Répondre

0

L'approche la plus simple que je puisse envisager serait de rendre les lignes comme de simples quadrilatères en 2D, et de faire en sorte que le pixel shader écrive une valeur oDepth contenant la profondeur de perspective 3d correcte.

Questions connexes