2010-12-30 8 views
3

il y a une grande page avec du code c pour les modes de fusion dans photoshop. Ce que je veux, c'est utiliser certains de ces modes dans mon application XNA. En particulier, superposition, teinte et saturation. Pensez-vous que ce soit possible avec seulement les fonctions de mélange XNA et de mélange enum ou je vais devoir créer un shader pour ces effets?photoshop mélange mathématiques dans XNA

Voici le lien pour les modes de mélange photoshop mathématiques: http://www.nathanm.com/photoshop-blending-math/

+0

peut-être que vous voulez essayer cette question à http://gamedev.stackexchange.com/ – mauris

Répondre

2

Tout d'abord, here is a question that covers much of the same territory.

Le problème est que l'étape de mélange dans un GPU moderne est encore très limitée et à fonction fixe. Vous avez le choix entre ces fonctions: add, subtract, max, min et a few multipliers. Je suis à peu près sûr que les modes de fusion que vous voulez utiliser ne peuvent pas être implémentés dans ce système. La superposition nécessite un conditionnel qui ne peut probablement pas être contourné, et Hue et Saturation nécessitent une conversion HSV qui ne peut pas être effectuée du tout. Donc, la réponse est - comme vous le dites - de créer un shader qui prend deux textures en entrée et les combine en utilisant votre mode de fusion personnalisé. Si vous voulez appliquer cet effet au-dessus d'une scène entière, vous voudrez utiliser des cibles de rendu pour rendre votre scène à une texture qui peut être utilisée comme entrée dans votre shader.

+0

Très bien, merci pour l'info :) Je vais essayer l'approche shader, même si je ne suis pas très expérimenté en HLSL. – muku