我在XNA4中有一个效果文件,编译为Shader Model 3。
此行编译精细(在2种颜色之间插值):
return lerp(float4(1,0,0,1),float4(0,0,1,1),pf.x);
将第一种颜色的绿色成分从0更改为0.5:
return lerp(float4(1,0.5,0,1),float4(0,0,1,1),pf.x);
编译失败的结果:
error X6045: When constant registers are read multiple times in a single
instruction, the _abs modifier must either be present on all of the
constants, or none of them.
Google搜索错误代码(编辑:此问题除外)
答案 0 :(得分:1)
根据documentation,传递给lerp()
的所有值应该具有相同的类型和大小,因此可能会有效:
return lerp(float4(1,0.5,0,1),float4(0,0,1,1),float4(pf.x,pf.x,pf.x,pf.x));