Quelqu'un peut-il recommander un algorithme pour un HLSL Pixel Shader (pour WPF ou Silverlight 3) pour faire un effet pointillé? Voici quelques exemples: http://www.nolinovak.com /, http://sprouls.com/WPF ou Silverlight 3 Pixel Shader pour l'effet Stippling
Répondre
Le document de recherche suivant peut vous aider. EFFICIENT STIPPLE RENDERING by Jens Krüger and Rüdiger Westermann
La réponse est plus proche que vous ne le pensez. Envoyez un e-mail à Hugues Hoppe (http://hhoppe.com) comme il était habitué à texturer la surface. Ses explications et suggestions seront plus impliquées que vous ne le voulez, mais il sait comment. Le pointillage parfait nécessite probablement la «direction» 3D prédominante de la surface à chaque point (gradient?) Qui pourrait être au-delà des capacités de vos restrictions de modèle de shader (rendu à deux passes et cibles de rendu multiples, ou un grand pixel). structure de données de vertex). Une première version naïve traduirait la valeur de l'échelle de gris de chaque pixel en une probabilité que le pixel soit noir ou blanc. Cela vous donnera des points de 1 pixel, ce qui n'est pas ce que vous voulez. Vous pouvez essayer d'utiliser la valeur d'échelle de gris comme dimension d'empilement (Z) dans une texture empilée en 3D où chaque texture (X, Y) est un motif de pointillé homogène à densité homogène, dessiné à la main. Les frontières entre les niveaux d'obscurité sembleront étranges, mais essayez l'échantillonnage linéaire le plus proche sur la dimension d'empilement. Je n'écris pas le code pour vous ... du moins pas gratuitement.
Une idée sur comment cela se traduirait en HLSL? –