2010-08-07 11 views
0

Est-ce que quelqu'un a utilisé le filtre photo dans Photoshop? Édition> Réglages> Filtre photo ...Photoshop PhotoFilter pixel Math

Il produit une très belle teinte d'image que j'ai été incapable de reproduire avec les modes de fusion. Quelqu'un at-il une idée des maths de pixel derrière ce filtre? - Je peux donc construire un shader basé dessus.

Il semble fondamentalement être une teinte de couleur préservant la luminosité. Possède des variables: Couleur, Quantité et Préserver la luminosité.

Des idées?

+0

Vraisemblablement, il essaie de reproduire l'effet d'un filtre de couleur en face d'une lentille de la caméra? –

+0

Oui, cela apparaît comme ça. J'ai essayé de placer un calque coloré au-dessus de l'image, puis d'ajuster les modes de fusion pour produire un effet similaire, mais ce n'est jamais pareil. Des idées? – Rob

Répondre

1

Filtres (à la lumière) sont multiplicatif, comme dans:

red_filter = (1 , 0 , 0) * color

Je ne pense pas que les modes existent en mélange pour elle, puisque toute superposition transparente avec ce système serait assombrir l'image à certains degré.

+0

Il existe un mode de fusion appelé "Multiplier" qui fonctionne exactement de cette façon. Comme il obscurcit toujours l'image, vous avez besoin d'une autre opération distincte pour restaurer la luminosité. –

+0

Est-ce que quelqu'un sait comment restaurer la luminosité comme le fait Photoshop? –

0

Il est incroyablement simple, mais si quelqu'un veut le code HLSL pour cela:

// Photoshop PhotoFilter style effect. 

// Input filter color. 
float4 FilterColor; 

// Implicit texture sampler. 
sampler TextureSampler : register(s0); 

float4 PhotoFilter(float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0 
{ 
    return tex2D(TextureSampler, texCoord) * FilterColor; 
} 

technique GeneralEffect 
{ 
    pass Pass1 
    { 
     PixelShader = compile ps_2_0 PhotoFilter(); 
    } 

}