Native DirectX,基本效果(.fx)工作流程

时间:2012-02-08 16:55:21

标签: c++ visual-studio-2010 directx effect

我之前在XNA中使用过hlsl效果,但现在我尝试在C ++中使用它们与DirectX9并且对某些问题感到困惑:

  1. 在XNA中,您可以在解决方案资源管理器中显示.fx文件,这是如何在C ++中完成的?因为我在添加fx文件时遇到了一些困难。或者你只是将所有内容放在项目目录的文件夹中。并从Windows资源管理器中浏览它?

  2. 我有以下C ++代码来加载效果:

  3. ID3DXEffect* g_pEffect = NULL;
    DWORD dwShaderFlags = 0;
    dwShaderFlags |= D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT;
    dwShaderFlags |= D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT;
    dwShaderFlags |= D3DXSHADER_NO_PRESHADER;
    // Read the D3DX effect file
    WCHAR str[MAX_PATH];
    DXUTFindDXSDKMediaFileCch( str, MAX_PATH, L"BasicHLSL.fx" );
    D3DXCreateEffectFromFile( pd3dDevice, str, NULL, NULL, dwShaderFlags, NULL, &g_pEffect, NULL );

    但是类型和功能没有被识别/找到,所以我想我错过了#include(目前我只有d3d9.h)

1 个答案:

答案 0 :(得分:0)

  1. 从文件创建效果时,只需从工作目录中为其指定文件的相对路径即可。如果您不想要,则无需将其捆绑到您的应用程序中。

  2. 您还必须#include d3dx9.h(并引用相关的d3dx9.lib)。 D3DX正在处理效果处理,3D数学(矢量和矩阵)以及其他一些事情。它们并非绝对需要使用D3D,因此它们保存在一个单独的库中。