DirectXとhlslの基本を学び始めたところです。私は本の例に従っています。次の基本的なシェーダーに問題があります。
float4 VS_Main( float4 pos:POSITION):SV_POSITION
{
return pos;
}
インテリジェンスによると、float4は未定義の識別子です。私の知る限り、これは4次元ベクトルを定義するためにHLSLで使用される標準タイプであるはずですが、十分な情報を得ることができず、本も役に立ちません。ここで何が欠けていますか?
VS2012のIntellisenseはHLSLキーワードをサポートしていないと思います。解決できないという事実を無視するだけで大丈夫ですfloat4
。参照:VS2010-HLSL Intellisense?(いくつかの回答はVS2012に言及しています)。
C++ コンパイラは HLSL をコンパイルしません。HLSL はリソースの形で使用され、実行時にロードされることになっています。単純に.cpp
ファイルを作成して、HLSL コードが C++ としてコンパイルされることを期待することはできません。