アットウィキロゴ
そうめんさんが個人的なメモとしてHLSLについて分かったことをつらつらと
勉強しながらなので間違ってることもあるかも
その時は指摘してもらえれば幸いです
  1. HLSLのエントリーポイントはtechnique*(11行目)
    1. C言語でいうmain()関数のようなもの
  2. techniqueの中では パス という括りの中を流れ、途中で 他のパスに行くことはない
    1. パスは複数あってもいい
  3. パスの中には 頂点シェーダ関数 *(14行目)と ピクセルシェーダ関数 *(15行目)の呼び出しがあり、プログラムからパスを選択し描画する
    1. それぞれの関数が複数呼び出された時、 最後に呼び出された物 が適応される
    2. 呼び出される順番は頂点シェーダ関数から
  4. 頂点シェーダ関数には 頂点シェーダ入力セマンティクス というものが一つづつ渡される(なんのこっちゃ
    1. ただし、上のリンクを見てもらえば分かる通り頂点シェーダ入力セマンティクスには沢山の項目があり、全部覚えるのは大変! ということで引数を指定できる素晴らしい機能が
    2. 3行目 (float3 pos : POSITION) の用に( 型名 変数名 : セマンティクス) とすることで引数を選択することができる!便利!
  5. 頂点シェーダ関数は返り値として 頂点シェーダ出力セマンティクス というものを返す
  6. ピクセルシェーダ関数でも同様にピクセルシェーダ入力セマンティクスというものがある
  7. と言うことはピクセルシェーダ出力セマンティクスもあり、ピクセルシェーダ関数が返す色がスクリーンに表示される
何も動作しない最小のプログラム(fx composer2.5 で書き出された空のfxファイル
1:  float4x4 WorldViewProj : WorldViewProjection;
2: 
3:  float4 mainVS(float3 pos : POSITION) : POSITION{
4:	return mul(float4(pos.xyz, 1.0), WorldViewProj);
5:  }
6:
7:  float4 mainPS() : COLOR {
8: 	return float4(1.0, 1.0, 1.0, 1.0);
9:  }
10:
11: technique technique0 {
12:	pass p0 {
13:		CullMode = None;
14:		VertexShader = compile vs_3_0 mainVS();
15:		PixelShader = compile ps_3_0 mainPS();
16:	}
17: }
名前:
コメント:

タグ:

HLSL
最終更新:2011年10月24日 03:49
添付ファイル