|
|
用C#写的程序.
test.fx文件的部分.东西是看网络上的教程写的......不知道对不对......
--------------------------------------------------------------
float gray;
float4x4 WorldViewProj : WorldViewProjection;
struct VS_OUTPUT
{
float4 Position : POSITION;
float2 TextureUV : TEXCOORD0;
float4 Diffuse : COLOR0;
};
struct VS_INPUT
{
float4 Position : POSITION;
float2 TextureUV : TEXCOORD0;
float4 Diffuse : COLOR0;
};
VS_OUTPUT mainVS(VS_INPUT input)
{
VS_OUTPUT output;
output.Position = mul(input.Position, WorldViewProj);
output.TextureUV = input.TextureUV;
output.Diffuse = input.Diffuse;
return output;
}
struct PS_OUTPUT
{
float4 color : COLOR;
};
PS_OUTPUT mainPS(VS_OUTPUT input)
{
PS_OUTPUT output;
output.color = input.Diffuse;
return output;
}
technique Effect {
pass p0 {
VertexShader = compile vs_3_0 mainVS();
PixelShader = compile ps_3_0 mainPS();
}
}
=========================================================
Effect.FromFile的部分
---------------------------------------------------------
string path = "..\\..\\HLSL\\test.fx";
effect = Effect.FromFile(_Device, path, null, null, ShaderFlags.NotCloneable, null);
effect.Technique = "Effect";
effect.SetValue("gray", 1.0f);
=========================================================
DrawPrimitives的部分
这里...没问题吧......
---------------------------------------------------------
Effect.SetValue("WorldViewProj", worldMatrix * viewMatrix * projMatrix);
Device.SetTexture(0, texture);
Device.RenderState.AlphaBlendEnable = true;
Device.RenderState.SourceBlend = Blend.SourceColor;
Device.RenderState.DestinationBlend = Blend.DestinationColor | Blend.SourceAlpha;
Device.TextureState[0].ColorOperation = TextureOperation.SelectArg1;
Device.TextureState[0].ColorArgument1 = TextureArgument.TextureColor;
Device.SetStreamSource(0, vertexBuffer, 0);
Device.VertexFormat = CustomVertex.PositionColoredTextured.Format;
int p = Effect.Begin(0);
for (int i = 0; i < p; i++)
{
Effect.BeginPass(i);
Device.DrawPrimitives(PrimitiveType.TriangleFan, 0, 2);
Effect.EndPass();
}
Effect.End();
[B]
可以显示出矩形了,但是是一片白色.
为什么纹理贴不上去?
[/B][/COLOR] |
|