- 127 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 18:58:43 ]
- >>125
静的に決定させる為には、 静的に決定出来なきゃ駄目だよね。 >>125のコードだと、「bool UseTexture」は いつ何時変わる可能性があるので、コンパイラは 決め撃ちすることは出来ない。 方法としては、>>126のプリプロセッサ以外に、 @「static const UseTexture = true;」にする。 Aシェーダの引数で受け取り、passで分岐する。 float4 PS(VS_OUTPUT In, uniform bool UseTexture ) : COLOR { if (UseTexture) { In.Color *= tex2D(DecaleSamp, In.TexDecale); } return In.Color; } technique T { pass P0{ pixelShader = compile PIXELSHADER_TARGET PS( false );} pass P1{ pixelShader = compile PIXELSHADER_TARGET PS( true );} } いづれも、最適化とプリシェーダはONにしておくこと。
|

|