我有一个真正简单的子板:
float4 PixelShaderFunction(float2 uv : TEXCOORD0) : COLOR0
{
return float4(0, 1, 0, 1);
}
technique Technique1
{
pass Pass1
{
PixelShader = compile ps_3_0 PixelShaderFunction();
}
}
I have a texture:
Vector4[] textureData = new Vector4[width * height];
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
textureData[y * width + x] = new Vector4(1, 0, 0, 1);
}
}
myTexture = new Texture2D(GraphicsDevice, width, height, false, SurfaceFormat.Vector4);
myTexture.SetData(textureData);
我引用这一法典:
spriteBatch.Begin(SpriteSortMode.Texture,
BlendState.Additive,
SamplerState.PointWrap,
DepthStencilState.DepthRead,
RasterizerState.CullNone);
myEffect.CurrentTechnique.Passes[0].Apply();
spriteBatch.Draw(myTexture, new Rectangle(0, 0, width, height), Color.White);
spriteBatch.End();
我本来会看到,通过在粉碎板上打上“Apply()”号,随后的间谍riteBatch.Draw()号电话本会通过我的粉碎机发出我的训ex。 由于粉碎机的功能始终如一地回归浮(0、1、0和1),我预计结果会成为一个绿色广场,但会带来红树,就像粉碎机没有触及它一样。
我失踪了什么?