1

Shader Model 3としてコンパイルされたXNA4のエフェクトファイルがあります。

この行はうまくコンパイルされます (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. 

エラーコードをグーグルで検索しても何も返されません(編集:この質問以外)

4

1 に答える 1

1

ドキュメントによると、渡されるすべての値lerp()は同じ型とサイズでなければならないので、おそらくそれでうまくいくでしょう:

return lerp(float4(1,0.5,0,1),float4(0,0,1,1),float4(pf.x,pf.x,pf.x,pf.x));
于 2012-06-16T08:53:34.990 に答える