|

楼主 |
发表于 2006-10-30 11:32:00
|
显示全部楼层
Re:关于directx渲染到纹理的问题
谢谢各位的指点,其实我一共才只有一个pass,shader是最简单的,好像不涉及到多个渲染目标,就像这个样子:
texture sortTexture;
sampler firstSampler:register(s0) = sampler_state
{
Texture = <sortTexture>;
};
matrix worldViewProj : WORLDVIEWPROJECTION;
void vs( in vector inPosition : POSITION, in float2 inTextureCoord : TEXCOORD0, out vector outPosition : POSITION,
out float2 outTextureCoord1 : TEXCOORD0, out float2 outTextureCoord2 : TEXCOORD1 )
{
outPosition = mul(inPosition, worldViewProj);
outTextureCoord1 = inTextureCoord;
outTextureCoord2 = inTextureCoord;
}
float4 ps( in float2 textureCoord1 : TEXCOORD0, in float2 textureCoord2 : TEXCOORD1 ) : COLOR0
{
float4 color1 = tex2D(firstSampler, coord1);
return color1;
}
technique sortTechnique
{
pass p0
{
VertexShader = compile vs_2_0 vs();
PixelShader = compile ps_2_0 ps();
}
}
我上面的代码应该也是按照那个流程来的吧,只是这句话不太理解:"然后下一个用窗口大小的Rectange去Render这个纹理",其实我的主要目的不是去render,而是正确保存shader的输出,render只是我为了验证是否正确保存到那个目标纹理了,我发现好像按照一般地render to texture,加上了shader以后结果不对
我是新手,有些地方写的不对还请指出,我会虚心接受,鞠躬敬礼,表示感谢  |
|