HASTCounter:4639Today:1Yesterday:3Online:8TweetHLSLのコードを分割して記述するAboutシェーダファイル(.Fx)を作製していると、沢山関数を作るようになって、変数も沢山になって、記述量が増えていってしまう事はよくある。regionコードなど書ければまだ1つのファイルに収める気にもなるのだけれど、残念ながら利用できない。所がHLSLはCに近い文法をとることから「include文」を利用してコードを分割して記述する事ができる。※サンプルがXNAベースですがDirectXなどでも共通の話題です。toなにも難しいことはなくて、C言語と同様に、記述する順序にだけ気をつけてinclude文を使うことだけで分割記述することができる。ここのサンプルでは簡単に次の様にしている。単純に、新規追加した際に標準で用意されている関数とパラメータを分割し、実際にEffectとして読み込むファイルにはTechniqueのみ記述される様にしてみた。単純に標準で用意される関数とパラメータを分割して記述。「.h(ヘッダー)ファイル」としている点に注意。1);}【Effect.fx】Techniqueのみを記述している。ここではサンプルのため、二つTechniqueを記述した。先頭行でincludeしている。「technique」として扱うことのできる関数の存在しない「.fx」(Effect)ファイルをincludeしようとするとエラーが起こる。グローバル変数や基本的な関数を、別のファイルまとめて扱うでなどする時にこのエラーが起こり易い。いう場合は「.h」(ヘッダー)ファイルとしてincludeするとエラーを回避する事ができる。この場合は警告が返る。Pipeline.」XNAプロジェクトで次のエラーが起きる場合には、「プロパティ」から「インポーター」を「エフェクトファイル」にすることで解決することができます。使用するインポーターを自動検出できません。このファイル形式を処理するインポーターがありません。プロジェクトでこのファイル形式を処理するインポーターを指定してください。Others基本的にはC言語と同様の挙動をとるので、includeを変な位置に書いて、関数が定義されていないなんてコンパイルエラーを起こさない様に注意すること(後は多重にincludeして重複する変数がでる、など)。includeの文法については2種類あって、それぞれの詳細については公式の方で確認されたい。著作権Administrator。