首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

请问关于shader兼容性的有关问题

2012-04-18 
请教关于shader兼容性的问题小弟初学shader,现在使用的是HLSL语言,写了一个更改纹理亮度的pixel shader,问

请教关于shader兼容性的问题
小弟初学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兼容性的问题啊,我是在两台机器上开发才发现的这个问题,如果都作好了拿到别的机器上用不了,那就糗大了



[解决办法]
编译时把着色器版本改为2.0试试。
[解决办法]
你的140支持4.0吧。。。没理由3.0不行

热点排行