Shader进修心得(1):工欲善其事,必先利其器-FX Composer 2.5
当前位置:以往代写 > C/C++ 教程 >Shader进修心得(1):工欲善其事,必先利其器-FX Composer 2.5
2019-06-13

Shader进修心得(1):工欲善其事,必先利其器-FX Composer 2.5

Shader进修心得(1):工欲善其事,必先利其器-FX Composer 2.5

副标题#e#

以下的教程由乌龟和毛驴的技能小屋原创,转载请注明原始文章出处,并保存这段话,请勿 侵权.

1.1 序言

以前一直以为,进修shader最好是在Visual Studio的情况下举办进修,因为这样不只可以或许学到DirectX和C++的一些利用要领,并且对付 Shader在实际应用时也有长处.功效本日就碰得灰头土脸的.

1.2 碰鼻进程

下面是我的措施段:

ID3DXEffect* g_pEffect = NULL;

3DXCreateEffectFromFile( g_pd3dDevice, "simple.fx", NULL, NULL, dwShaderFlags, NULL, &g_pEffect, NULL );

下面 是我的.fx措施:

float4x4 WorldViewProj : WorldViewProjection;

  float4 mainVS(float3 pos : POSITION) : POSITION{

      return mul(float4(pos.xyz, 1.0), WorldViewProj);

  }

  float4 mainPS() : COLOR {

       return float4(1.0, 1.0, 1.0, 1.0);

  }

  technique technique0 {

     pass p0 {

         CullMode = None;

          VertexShader = compile vs_1_1 mainVS();

         PixelShader = compile ps_1_1 mainPS();

     }

  }


#p#副标题#e#

编译的时候没有提示错误,也可以运行.可是在运行中堕落,没有堕落的信 息.

对付险些没有在VS C++情况下编程的我来说.这长短常抓狂的工作.在网上找了下 代码,把我的措施改了一下,可以看到错误信息了.下面是修改后的措施段

ID3DXBuffer* error_buffer;

    hr = D3DXCreateEffectFromFile( g_pd3dDevice, "simple.fx", NULL, NULL, dwShaderFlags, NULL, &g_pEffect, &error_buffer );

     if (error_buffer)

    {

        MessageBox(NULL, (char *) (error_buffer->GetBufferPointer()), "ERROR", MB_OK);

         error_buffer->Release();

    }

     if(FAILED(hr))

    {

        MessageBox(NULL, "D3DXCreateEffectFromFile() - FAILED", "ERROR", MB_OK);

        return false;

}

下面是堕落的信息:

Shader学习心得(1):工欲善其事,必先利其器-FX Composer 2.5

或许是说此刻PS_1_X的版本不被支持了.于是乎,我想到,假如尚有一些其他的疑难杂症,如 果我想调试shader,假如我想很快的可以或许在修改shader后,把matieral赋值,假如我想利便的建 立View和Projection矩阵.那VS显然是不能胜任的.

花了点时间找了找.利用NVIDIA的 FX Composer 2.5是一个很好的选择.它支持D3D10,并且有一个雷同于3D MAX的窗口,可以拖动 物体,这样也不消很贫苦的去成立View和Projection矩阵.操纵也很利便,比ATI的谁人东西感 觉还好一点.用来进修Shader是很不错的选择(告白啊)

在NVIDIA的网站上可以利便的 下到它

http://developer.download.nvidia.com/tools/Shader_Debugger/FX_Composer2_Sh ader_Debugger_Bundle_2.51.0827.1525.exe

#p#副标题#e#

安装时留意要选择No commercial,这样 就不会被要求输入序列号了.

1.3 成立我们的第一个Shader

选择File-New Project:

Step 1: 选择 Shader学习心得(1):工欲善其事,必先利其器-FX Composer 2.5,当你选择其他 的对象茶壶什么的也可以.也可以选择其他的.x文件,这样在右下角就可以看到一个白色的小 球了

Step 2: 选择 Shader学习心得(1):工欲善其事,必先利其器-FX Composer 2.5,选择HLSL FX. 选择下一步,然后选择Empty,选择finish.这样左上角的Materials框内里就有一个白圆 了.

Step 3: 把白圆拖动到右下角的球上,把特效和物体关联,这个特效文件的运行效 果如下:

Shader学习心得(1):工欲善其事,必先利其器-FX Composer 2.5

是不是 感受到很是的”所见即所得”?

假如你想看看这个shader文件,在白圆上面 按右键,选择edit,显示出的就是.fx文件的源措施,把这个措施复制到vs内里,举办了相关了初 始化和配置参数操纵后,也可以正常了利用了.

Fx Composer 2.5的其他环境你也可以 本身看看安装后的辅佐文件,我这里就不说太多了(其实我也是本日才开始用的,今后有了心得 再逐步写出来 :-D)此后的重点主要放在shader的编写上.

    关键字:

在线提交作业