+ -
当前位置:首页 → 问答吧 → 请教关于shader兼容性的问题

请教关于shader兼容性的问题

时间:2011-11-28

来源:互联网

小弟初学shader,现在使用的是HLSL语言,写了一个更改纹理亮度的pixel shader,问题是我在AMD HD4850下使用是正常的,
可是在NV 140M下使用显示不了纹理,都是使用的ps3.0。代码如下:

sampler tv_tex1;
float4 tv_blend_color;

struct PS_INPUT {
float2 tex_position : TEXCOORD0;
};

struct PS_OUTPUT {
vector diffuse : COLOR0;
};

PS_OUTPUT main(PS_INPUT input) {
PS_OUTPUT output = (PS_OUTPUT)0;
vector t = tex2D(tv_tex1, input.tex_position);
float3 r = t.rgb + t.rgb * tv_blend_color.a * tv_blend_color.rgb;
output.diffuse.rgb = r;
output.diffuse.a = t.a;
return output;
}

问题1:上面的代码哪里产生的兼容问题,该怎么解决啊
问题2:大家在使用Shader时有没有办法事前就发现shader兼容性的问题啊,我是在两台机器上开发才发现的这个问题,如果都作好了拿到别的机器上用不了,那就糗大了

作者: wuliao311   发布时间: 2011-11-28

struct PS_OUTPUT {
vector diffuse : COLOR0;
};

我没用过vector,hlsl有这个语法?我都是用的floatX

作者: Baesky   发布时间: 2011-11-28

热门下载

更多