使用HLSL在VS2012上进行编译时:未定义float4

时间:2013-02-02 14:17:29

标签: c++ directx hlsl

我刚刚开始学习DirectX和hlsl的一些基础知识。我正在关注一本书中的例子。我对以下基本着色器有疑问:

float4 VS_Main( float4 pos:POSITION):SV_POSITION
{
return pos;
}

情报说float4是一个未定义的标识符。据我所知,这应该是HLSL中用于定义四维向量的标准类型,但我无法获得足够的信息,而且本书也无济于事。我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

我认为VS2012上的Intellisense不支持HLSL关键字;你可以忽略它无法解决float4的事实。另见:VS2010 - HLSL Intellisense?(有些答案确实提到了VS2012)。

答案 1 :(得分:0)

C ++编译器不编译HLSL。 HLSL应该以资源的形式使用,然后应该在运行时加载。一个canot只需创建一个.cpp文件,并期望HLSL代码编译为C ++。