Раньше я использовал эффекты hlsl в XNA, но сейчас я пытаюсь использовать их в C ++ с DirectX9, и меня смущают некоторые моменты:
В XNA у вас может быть файл .fx, представленный в обозревателе решений, это тоже так в C ++? Поскольку у меня были некоторые трудности с добавлением файла FX Или вы просто положите все в папку в каталоге проекта. и просто просмотреть его из проводника Windows?
У меня есть следующий код C ++ для загрузки эффекта:
ID3DXEffect* g_pEffect = NULL;<br/>
DWORD dwShaderFlags = 0;<br/>
dwShaderFlags |= D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT;<br/>
dwShaderFlags |= D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT;<br/>
dwShaderFlags |= D3DXSHADER_NO_PRESHADER;<br/>
// Read the D3DX effect file<br/>
WCHAR str[MAX_PATH];<br/>
DXUTFindDXSDKMediaFileCch( str, MAX_PATH, L"BasicHLSL.fx" );<br/>
D3DXCreateEffectFromFile( pd3dDevice, str, NULL, NULL, dwShaderFlags, NULL, &g_pEffect, NULL );
Но типы и функции не распознаются / не обнаруживаются, поэтому я думаю, что мне не хватает #include (в настоящее время у меня есть только d3d9.h)