请教关于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兼容性的问题啊,我是在两台机器上开发才发现的这个问题,如果都作好了拿到别的机器上用不了,那就糗大了
可是在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
vector diffuse : COLOR0;
};
我没用过vector,hlsl有这个语法?我都是用的floatX
作者: Baesky 发布时间: 2011-11-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28