Danke für den Tip Widi, ich war damit erfolgreich. Das Shadertutorial von Taco Cohen hat mir dabei sehr geholfen.
Hier ist der Code, falls jemand etwas ähnliches braucht:
Shader:
float4 vecSkill41; // skill41 will be used
texture entSkin1; // Color map.
sampler ColorMapSampler = sampler_state // Color map sampler.
{
Texture = <entSkin1>;
AddressU = Clamp;
AddressV = Clamp;
};
texture entSkin2; // Color map.
sampler ColorMapSampler2 = sampler_state // Color map sampler.
{
Texture = <entSkin2>;
AddressU = Clamp;
AddressV = Clamp;
};
float4 DiffusePS( in float2 InTex : TEXCOORD0) : COLOR
{
// Fetch the pixel color from the color map:
float4 Color = tex2D(ColorMapSampler, InTex) * (vecSkill41.x/100); // skin1-strength is changed by skill41
float4 Color2 = tex2D(ColorMapSampler2, InTex) * (1-vecSkill41.x/100); // skin2-strength is changed by skill41
// Calculate final color:
return Color + Color2;
}
technique DiffuseTechnique
{
pass P0
{
PixelShader = compile ps_1_0 DiffusePS();
}
}
Und in der Entity-Funktion benutzt man
my.skill41 = floatv(*Alpha-Wert Skin1 von 0-100*); // skill41 geht in den Shader - Prozentzahl Skin1 (Bsp: skill41 = 35 dann Skin1.alpha = 35; Skin2.alpha = 65;)
MfG