いつもお世話になっております。 現在DXライブラリで自作のシェーダーを使用しています。 ピクセルシェーダーでC++側から設定する値を宣言しようと思ったのですが float a : register( c0 ) ; int b : register( i0 ) ; bool c : register( b0 ) ; 上のうち int b と bool c のシェーダーでコンパイルエラーが発生します。 シェーダーのバージョンは3.0を使用しています。 解決方法は無いでしょうか?
なんと DirectX9 で使用できる シェーダーモデル 2.0 や 3.0 の HLSL では float 型の 定数以外を使用することはできません HLSL には int型や bool型がありますが、内部では全部 float型に置き換えられています なので i0 や b0 は使用できません、int型や bool型でも c0 などの float型の定数を 使用する必要があります アセンブラシェーダーでしか int型や bool型が使用できないので、恐らく殆ど使用されて いないと思います・・・
intやboolは使用できませんでしたか・・・ floatで代用しようと思います、ありがとうございました。