我刚刚开始学习一些 DirectX 和 hlsl 的基础知识。我正在按照书中的示例进行操作。我对以下基本着色器有疑问:
float4 VS_Main( float4 pos:POSITION):SV_POSITION
{
return pos;
}
情报说 float4 是一个未定义的标识符。据我所知,这应该是 HLSL 中用于定义 4 维向量的标准类型,但我无法获得足够的信息,这本书也无济于事。我在这里想念什么?
我认为 VS2012 上的 Intellisense 不支持 HLSL 关键字;你可以忽略它无法解决的事实float4
。另请参阅:VS2010 - HLSL Intellisense?(有些答案确实提到了VS2012)。
C++ 编译器不编译 HLSL。HLSL应该以资源的形式使用,然后应该在运行时加载。不能简单地创建一个.cpp
文件并期望 HLSL 代码编译为 C++。