DirectX11におけるHLSLのセマンティクス「POSITIONT」について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
あみゃ

DirectX11におけるHLSLのセマンティクス「POSITIONT」について

#1

投稿記事 by あみゃ » 5年前

現在、DirectX11での2D描画を目指しています。
以前、DirectX9のときには、以下のように頂点データの使用目的を「POSITIONT」とすることで、頂点シェーダでの処理をスキップすることができました。

コード:

D3DVERTEXELEMENT9 decl[] = {
	{ 0,	0, 					D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITIONT, 0 },
	{ 0,	4 * sizeof(float), 	D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD,  0 },
	D3DDECL_END() 
};
同様の処理をDirectX11で実装したいのですが、
以下のように頂点フォーマットを指定しても、頂点シェーダでの処理がスキップされません。

コード:

D3D11_INPUT_ELEMENT_DESC layout[] = {
	{ "POSITIONT", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0,  0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
	{ "COLOR",     0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 16, D3D11_INPUT_PER_VERTEX_DATA, 0 },
};
DirectX11ではPOSITIONTを用いて頂点シェーダをスキップすることはできなくなったのですか?
また、DirectX11においてラスタライザステージ以前の処理をスキップすることは可能ですか?

“C言語何でも質問掲示板” へ戻る