Я только начал изучать основы DirectX и HLSL. Я следую за примерами из книги. У меня проблема со следующим базовым шейдером:
float4 VS_Main( float4 pos:POSITION):SV_POSITION
{
return pos;
}
Разведка говорит, что float4 — это неопределенный идентификатор. Насколько я знаю, это должен быть стандартный тип, используемый в HLSL для определения 4-мерного вектора, но я не могу получить достаточно информации об этом, и книга тоже не помогает. Что мне здесь не хватает?
Я не думаю, что Intellisense на VS2012 поддерживает ключевые слова HLSL; ты в порядке, просто игнорируя тот факт, что это не может решить float4
, Смотрите также: VS2010 — HLSL Intellisense? (в некоторых ответах упоминается VS2012).
Компиляторы C ++ не компилируют HLSL. HLSL должен использоваться в виде ресурсов, а затем должен загружаться во время выполнения. Один не может просто создать .cpp
файл и ожидаем, что код HLSL скомпилируется как C ++.