首页 > 代码库 > Directx10 龙书笔记- 第7章课后题 实现火焰动画
Directx10 龙书笔记- 第7章课后题 实现火焰动画
火焰的图片我是没找到,找到了几张雷电的,就在d3dcoder.net 的directx10那本书代码下载的Bolt Animations for Chapter 9 里面
里面很多张图片,由于c++也是初学,一时来不及弄字符串拼接的函数。 只能定义很多个帧bmp 然后一个一个载入了
具体代码是建立在那个"crate" 例子工程, 就是那个木箱子的代码基础上。
添加的代码如下:
ID3D10ShaderResourceView* mDiffusePic[9];我定义了一个能装9张图片的shaderview
然后开始从文件载入
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"BoltAnim/Bolt001.bmp", 0, 0, &mDiffusePic[0], 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"BoltAnim/Bolt002.bmp", 0, 0, &mDiffusePic[1], 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"BoltAnim/Bolt003.bmp", 0, 0, &mDiffusePic[2], 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"BoltAnim/Bolt004.bmp", 0, 0, &mDiffusePic[3], 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"BoltAnim/Bolt005.bmp", 0, 0, &mDiffusePic[4], 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"BoltAnim/Bolt006.bmp", 0, 0, &mDiffusePic[5], 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"BoltAnim/Bolt007.bmp", 0, 0, &mDiffusePic[6], 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"BoltAnim/Bolt008.bmp", 0, 0, &mDiffusePic[7], 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"BoltAnim/Bolt009.bmp", 0, 0, &mDiffusePic[8], 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"BoltAnim/Bolt001.bmp", 0, 0, &mDiffuseMapRV, 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"WoodCrate01.dds", 0, 0, &mDiffuseMapRV1, 0 )); HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice, L"defaultspec.dds", 0, 0, &mSpecMapRV, 0 ));
如果你知道如果将BoltAnim/Bolt00+i+.bmp这种拼接成函数的参数请告诉我,因为这样就可以调用那几十张图片了,没必要我这样麻烦的复制9次。
当所有东西存好在mDiffusePic里面过后,就是开始绘制了。
最开始那个木箱盒子是绘制的固定的一个纹理贴图 mDiffuseMapRV
这里我们改用刚定义的mDiffusePic. 而且是在drawScene函数里面 每隔一定的时间换一张图片
这样快速的就形成了帧动画了。
// Every quarter second, generate a random wave. static float t_base = 0.0f; static int flag=0; if( (mTimer.getGameTime() - t_base) >= 0.15f ) { t_base += 0.15f; mfxDiffuseMapVar->SetResource(mDiffusePic[(flag++)%9]); }
主要就是以上这个函数了。
由于是我的读书笔记,所以没有全部工程的源码给出。只是方便同在学习这本书的童鞋查缺补漏。 以上都是核心的需要注意的代码了。
Directx10 龙书笔记- 第7章课后题 实现火焰动画
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。