これは、法線マップが色をベクトル値として考えているからで、マイナスを表現するため0.5fを0として扱うためです。テクスチャのデフォルト値は、そのテクスチャごとに違うという事になります。テクスチャがある時はそこから色をもらい、無い時にはそのテクスチャが規定する(ピクセルシェーダが想定する)デフォルトカラーを返す。いう振る舞いをさせるには「テクスチャカラーの取得をシェーダ内関数に置き換える」しか無いかなと思います。color;}ピクセルシェーダ内でテクスチャからサンプリングしたい時に、シェーダ内に直接サンプラコードを書くのではなくて、太文字のように関数を通すようにします。color;}のようにピクセルシェーダが規定する初期値を返す関数に置き換えてしまいます。すればピクセルシェーダ内のサンプリング部分は一切変更しなくて良くなります。初期化のまとめ以上から、初期化については次のようにまとめられます。グローバル変数(一般変数)は宣言時初期化を必ず書いておく。すればコードの置き換えは不要になる。モデル無いでの入力セマンティクスの欠如は、頂点シェーダ(ピクセルシェーダ)内でそのセマンティクスを初期化するコードを最初に挿入する。サンプラを通して色を抽出する部分はシェーダ内関数に置き換えて対処。これで頂点シェーダやピクセルシェーダの本文に殆ど手を加える事無くかなりのモデルバリエーションに対応できます。整理ができました(^-^)。