MultiAnim DX9

这个案例比SkinnedMesh多的我觉得只是与骨骼动画更多的接口的认识。

 

MultiAnim主要的知识是:

在D3D中,一个动画控制接口有多个轨道,每个轨道上都独立的控制。我们可以控制轨道是否启用,速度,权重,优先级别。然后同个优先级别的每个轨道的动画会按对应的权重进行混合,最后不同优先级别再度混合。

 

这种独立有条理的结构同时也可以实现一个动画平滑过渡到另一个动画。

 

这些在我上传的d3dx_skinnedmesh.pdf都提及到了,而且系统全面。这里只总结MultiAnim中给我更多的新的知识和体会。

  1. 整个类框架是将骨骼网格存放的CMultiAnim。将控制骨骼的动画信息的ID3DXAnimationController接口包含到CMultiAnimInstance,然后CTiny包含CMultiAnimInstance接口指针,我个人认为将CTiny继承与CMultiAnimInstance非常好,我自己编写的案例就是如此处理的,而且没感觉到有不恰当的地方。
  2. 如果要多个实例,其实就是复制多个ID3DXAnimationController接口,每个接口就相当于一个实例,因为这个接口主要用于保存骨骼动画信息,只要有个骨骼动画信息,我们就能让骨骼运动。
  3. 几乎所有从Get*()接口中获得的指针都需要释放,否则会有内存泄露。
  4. 还有需要再LostDevice时保存动画信息。

其它的很多就是逻辑上的处理,一个动画平滑过渡到另一个动画等等。这些在C++编程中就已经处理过太多次了,就不提了。

时间: 2025-01-29 13:22:55

MultiAnim DX9的相关文章

vc6 0-请教一下安装了DX9,VC6.0不显示函数的问题

问题描述 请教一下安装了DX9,VC6.0不显示函数的问题 请教一下各位大神,我在电脑上安装了DX9 sdk之后,在目录中把include和lib都包含进去了,但是在写的过程中像打"lpD3DDevice->"后没有显示函数的列表,也没有参数提示,这是声明的"LPDIRECT3DDEVICE9"的. 但是声明的"LPDIRECT3DDEVICE"设备后,"lpD3DDevice->"就有函数显示了. 请问一下怎么让

ShadowMap DX9

 ShadowMap基本的思想很简单,首先从聚光灯角度对场景建立并保存场景深度.然后在正常渲染场景中,比较每个渲染点到灯的距离值(或者说到灯的深度值)是否比对应的已经建立在场景深度中的值要大,也就是说要远,如果远证明从当前视点观察的此点在灯角度中看不见,所以该渲染点处于阴影中,否则,不然.   首先分析一下ShadowMap的优劣: 优点: ShadowMap只适合较近距离的阴影投射,由于32位浮点数的精度有限,所以在较远距离下,会将在阴影边界附近出现错误现象.一种是隐隐约约的阴影(即阴影中带有

错误信息-编译DX9程序出现奇怪的错误,请大牛帮忙解决,谢谢

问题描述 编译DX9程序出现奇怪的错误,请大牛帮忙解决,谢谢 1>g:directx 2007included3dx9math.h(787) : error C2143: syntax error : missing ',' before '*' 1>g:directx 2007included3dx9math.h(792) : error C2143: syntax error : missing ',' before '*' 1>g:directx 2007included3dx9m

ParallaxOcclusionMapping( POM ) DX9

ParallaxOcclusionMapping(后面成为POM)是一个不错的高级技术,在我看来它是至今让我印象最深刻的技术.与其说是视差,不如说准确的视线与高度图交点算法.在<Real-time Rendering>中也见过他的前身-ParallaxMapping,但是POM的精确度更高,对于斜视效果也很不错,这将让它在未来的重要技术中占有一席之地.闲话少说,还是重在实质技术.   在DX9的samples中,由ATI提高的POM案例,确实是一个不错的实践机会.看过2006的Dynamic

HDRPipeline DX9

 HDR这个词汇在我看过的书或资料中多次出现,从<Real-time Rendering>到SDK里面的偶尔出现,一直对其是一种莫名的感觉,HDR是什么,High Dynamic Range,范围很广,为什么要HDR呢?因为了更好的画面.这些很浅显的认识让我一直云里雾里.终于在DX9的sample中有这么个简单的HDR教学实例,确实让我了解很多.在网上看到3d本身渲染的未经过HDR处理的图片和经过HDR处理过的图片比较起来,HDR所带来的图片确实让我折服.因为HDR处理后的图片让人感到身临其境

ShadowVolume DX9

 之前写过ShadowVolume,但是那是老版本(DX8)的DXSDK中的sample.而老版本并不是一个很好的解决方案.而DX9中的ShadowVolume还算是比较可取的方案.在这里主要对DX9中的ShadowVolume中的重点难点进行梳理.详细的细节,必须参考sample中的代码.   DX9中的shadowVolume最大的特点是建立了阴影体网格,而不是之前DX8中的动态生成轮廓边集合.建立阴影体网格最大的好处就是通过GPU来分担原来由CPU负责的轮廓边识别.而且由于新的阴影体积总体

DX9.0与opengl2.0的转换

问题描述 用DX9.0及HLSL写的地形渲染算法对应转换为opengl2.0来实现,有没有高手从事过相关方面的开发经验或相关资料,望不吝赐教... 解决方案 解决方案二:求解啊....解决方案三:使用ANGLE,你可以搜索ANGLE项目.

SkinnedMesh DX9

本想学习PRT技术,但是觉得这个技术太高级,而且就中国现在的技术来看,还未到这个程度.但是PRT技术一定要学,一定要掌握,才能不致于落后国际水平太多.这几天学习了一下骨骼动画.以前记得参加齐鲁软件大赛的时候,用Ogre很简单的就实现了骨骼动画.现在终于可以自己在DX基础上亲手完成这个3d游戏中最重要的技术.   骨骼动画中有许多我们需要注意的.简单屡一下骨骼动画中需要知道的基本知识点. 首先我们需要一个骨架.这些骨架中的骨骼有父子关系,有兄弟关系.父关节的运动是会带动子关节的.就像我们的上臂动会

Post Process DX9

这个案例是一个大杂烩,它把很多常用的操作以单独模块的形式进行组装以实现一定的效果.这里面最重要的是所有的这些技术都是后处理技术,也就是在正常渲染完成后对生成的场景帧(或者说纹理,图片)进行加工处理.Post Process与以往案例最大的不同在于将物体的几何信息分别存贮在不同的渲染表面中.这样做的好处,在后处理中仍然能得到需要各种的信息.另外后处理的一个强大之处在于,当场景有多个或多种灯光时,我们不用对物体一一采用各种光照模型,因为很多像素对应的fragment(将要写入这个像素的某个物体小碎片