最近遇到一个很隐晦的bug,我们有个需求需要将人物的动画进行替换,用完后再换回去。发现bug换回原始动画后,人物不见了。跟了很久,原来是我们使用
的引擎在处理动画时没有考虑到动画可能被替换,因此直接让动画修改了模型的一些属性但不能恢复。例如,原始动画具有修改bip01的
translation Z的动画track,而替换动画具有修改bip01的translation
x,y,z的track,当替换动画使用后,人物的bip01的x,y,z都被修改了,所以如果动画切换回原始动画,只有z能被修改,x,y将停留在之前
修改后的值,因此人物看不见了。
因此引擎设计时应该保留人物的初始值,提供一个reset方法,使得切换动画时这些不被改变的值不受影响。
另外一个小问题,发现我们使用的引擎中,所有的属性都用一个字符串标示,在查找时是O(N)的字符串比较,这样效率似乎不好,应该可以改成hash map,当然如果只是loading时的处理倒也无伤大雅
分享到:
相关推荐
关于DirectX 3D图形与动画程序设计,对DirectX 3D编程进行深入剖析。
1)设计并实现了一个基于内存管理的资源管理器。资源管理器负责将各种 游戏资源从磁盘载入到内存,并管理这些资源占用的内存空间。此外,本文实 现了LRU的资源调度策略。 21传统的地形渲染算法着重于如何更快、更真实...
第2版 内容简介:《3D游戏引擎设计:实时计算机图形学的应用方法(第2版)》详细阐述了与3D游戏引擎设计相关的高效解决方案及相应的数据结构和算法,主要包括图形系统、渲染器、场景图、控制器动画、空间排序、细节...
3D游戏引擎编程-3D.Game.Engine.Programming.pdf,作者:Stefan Zerbst & Oliver Duvel,本书是英文版,大小 271 MB,被压缩成两部分分别上传。这是第二部分,第一部分下载地址:...
3D游戏引擎编程-3D.Game.Engine.Programming.pdf,作者:Stefan Zerbst & Oliver Duvel,本书是英文版,大小 271 MB,被压缩成两部分分别上传。这是第一部分,第二部分下载地址:...
CanvasKit-WASM是一个基于WebAssembly的现代化动画引擎,它提供了强大的功能和性能优势,使得在Web端实现复杂的动画效果变得更加容易和高效。这个引擎利用了WebAssembly的高性能特性,可以在浏览器中实现流畅的动画...
3.2 Fly3D引擎体系结构 3.2.1 FlyMath 3.2.2 FlyDirectX 3.2.3 FlyRender 3.2.4 FlyEngine 附录3.1 编写一个插件 第二部分 实时渲染 第4章 实时渲染 4.1 简介 4.2 顶点、像素和贴图 4.2.1 基本的逐像素着色 4.2.2 ...
基于FSM的Unity3D游戏动画系统的设计与实现,陈玲鸿,黄小军,本文给出了基于FSM和Unity3D游戏引擎的动画系统的一种新的解决方案。用FSM技术实现智能管理动画系统,并结合Unity3D游戏开发引擎,通过�
第19章 HLSL像素渲染 1、HLSLPixelColor 演示使用HLSL渲染语言进行GPU编程直接指定像素颜色值、HLSL像素渲染基本步骤。 2、HLSLTexture 演示HLSL渲染语言进行GPU编程实现纹理映射。
1 设计并实现了一个基于内存管理的资源管理器 资源管理器负责将各种 游戏资源从磁盘载入到内存 并管理这些资源占用的内存空间 此外 本文实 现了LRU的资源调度策略 21传统的地形渲染算法着重于如何更快 更真实的...
16 17章没有呢! 第18章 HLSL顶点渲染 1、HLSLTransform 演示使用HLSL渲染语言进行GPU编程实现坐标变换、HLSL顶点渲染的基本步骤。 2、HLSLAmbient 演示使用HLSL渲染语言进行GPU编程实现环境光照计算。...
3D 渲染和动画引擎 该项目是专为在微控制器上使用而设计的实时 3D 渲染和动画引擎。 示范: 作为展示该软件功能的快速方式,这里有一个演示,展示了旋转和纹理 .OBJ 文件的实时渲染: 效果展示: ...
Unity 3D Pro 是一个功能丰富、完全集成的开发引擎,用于创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的综合型创作工具。它具有完整的开包即用的功能,能够创建优质、高性能游戏内容和在多平台上...
Irrlicht引擎是一个用C++书写的高性能实时的3D引擎,可以应用于C++程序或者.NET语言中。通过使用Direct3D(Windows平台),OpenGL 1.2或它自己的软件着色程序,可以实现该引擎的完全跨平台。尽管是开源的,该...
精通DirectX.3D图形与动画程序设计.pdf主要讲DirectX9.0c的开发,通俗易懂,推荐阅读
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。 Unity3D的PC插件安装量达到2 亿...
Cnstu3D简介 Cnstu3Dr是一个多平台轻量级全能三维动画制作软件,提供从建模,动画,材质,渲染,到音频处理,视频剪辑的一系列动画短片制作解决方案。Cnstu3Dr以python为内建脚本,支持yafaray渲染器,同时还内建...
Blender 是一款开源的跨平台全能三维动画制作软件,提供从建模、...Blender 为全世界的媒体工作者和艺术家而设计,可以被用来进行 3D 可视化,同时也可以创作广播和电影级品质的视频,另外内置的实时 3D 游戏引擎,让制
3.2 Fly3D引擎体系结构 3.2.1 FlyMath 3.2.2 FlyDirectX 3.2.3 FlyRender 3.2.4 FlyEngine 附录3.1 编写一个插件 第二部分 实时渲染 第4章 实时渲染 4.1 简介 4.2 顶点、像素和贴图 4.2.1 基本的逐像素着色 4.2.2 ...
unity3d 游戏模型 地牢风格 藏宝箱 带动画 Treasure Chest Set - Animated.zip模型资源uunity3d 游戏模型 地牢风格 藏宝箱 带动画 Treasure Chest Set - Animated.zip模型资源uunity3d 游戏模型 地牢风格 藏宝箱 带...