ページ 11

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

Posted: 2018年5月31日(木) 19:40
by あみゃ
現在、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においてラスタライザステージ以前の処理をスキップすることは可能ですか?