很多朋友说Away3D 的骨骼数限制在32根,确切的说应该是Stage3D 的限制。在 AGAL2.0之前 VC寄存器是128个,每个vc常量寄存器最大只能容纳4位,transform占用一个4*4的矩阵,所以如果把一个transform存进vc里面,需要到4个寄存器才能存得完。这样,一根骨骼占用了4个寄存器。而vc总共是有128个。就算全部128个vc都用于计算骨骼,也只能32根骨骼。该怎么办呢?

  之前在做 《狂P三国》时的解决办法是把transform减缩成一个四元素储存骨骼的旋转,然后一个三维坐标储存骨骼的位移。这样,transform就只需要2个vc寄存器了。128个VC 全部用于骨骼计算可用数就翻了一倍了。可以支持64根骨骼了。但是这样也是有弊端的。在游戏开发中我们基本满足了美术制作需求但是模型想再加效果就基本上不可能了。

比如:给模型加个选中效果边缘光,给模型受光照shader 等等。这时候就直接报错了。因为我们没有足够的寄存器去使用了。

  后来在技术群里和大家交流了一圈后发现,想满足美术和策划的需求。只有一个办法就是对模型进行拆分。以不变应万变,无论多少根骨骼 每32根骨骼进行一次拆分这样骨骼数上不在限制。这样一来骨骼数满足了,还可以实现之前想要的 shader 效果了。

  虽然在AGAL2.0里面 VC已经提高到了 250个。有更大的发挥空间了,但是需要FP14的支持。想了想还是放弃了。就目前这种现状还得做版本兼容得不偿失!

转载于:https://www.cnblogs.com/ch06src/p/3874286.html

Away3d 骨骼动画优化相关推荐

  1. Unity骨骼动画优化

    一:骨骼动画的原理 用Unity做游戏经常会用到3D角色,也就会用到骨骼动画.骨骼动画对性能的影响其实非常大的,在说这个问题之前,先来说说骨骼动画的原理. 我之前做过多种骨骼动画,包括写过2D的骨骼动 ...

  2. 尝试优化骨骼动画计算的意外收获——使用嵌入式汇编对float转int进行优化

    本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/4984530.html 公司引擎目前是使用CPU计算骨骼动画(采用了D3DX提供的函数 ...

  3. 【Away3D代码解读】(五):动画模块及骨骼动画

    动画模块核心存放在away3d.animators包里: Away3D支持下面几种动画格式: VertexAnimator:顶点动画 SkeletonAnimator:骨骼动画 UVAnimator: ...

  4. UNITY 模型与动画优化选项

    UNITY 模型与动画优化选项 1,RIG: Optimze Game Objects,[默认是没勾选的] 效果:将骨骼层级从模型中移除,放到动画控制器中,这样性能提高明显.实测中发现原来瞬间加载5个 ...

  5. 模型的骨骼动画技术讲解

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...

  6. Ogre骨骼动画分析

    http://3dlearn.googlecode.com/files/ogre skeleton animation.pdf 欢迎指出文中错误 1  前言 骨骼蒙皮动画分两步骤进行:根据时间插值更新 ...

  7. WOW技术---2, 骨骼动画

    首先是实现的Demo图 根据wowmodelviewer的源码,把数据导成自己的格式,修改了一些bug, 实现的骨骼动画. 骨骼动画的实现还是一个顶点受最多4根骨骼影响, 然后计算出这个顶点在最多4根 ...

  8. UE4中动画优化与压缩

    动画优化 在虚幻引擎中使用动画压缩是为了减少在游戏中使用动画时骨架动画数据占用的内存量.可以使用多种方法完成动画压缩: 删除关键帧 - 很多动画都具有平滑变化的动作,其中包含可以在没有明显影响动作整体 ...

  9. 动画骨骼【Visual C++】游戏开发五十二 浅墨DirectX教程二十 骨骼动画来袭(一)...

    间时紧张,先记一笔,后续优化与完善. 本系列文章由zhmxy555(毛星云)编写,载转请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/detail ...

最新文章

  1. python写一个通讯录step by step V3.0
  2. B站疯传!拿走不谢!最全面的JAVA面试材料!完整版开放下载,叫我好人!
  3. Python 3.x 引入了函数注释
  4. java类的修改三个方面_Java 编程的动态性,第 6 部分: 利用 Javassist 进行面向方面的更改--转载...
  5. 数据结构之中缀表达式实现计算器
  6. input框自动填充内容背景颜色为黄色解决方法
  7. Eclipse 默认设置的换行长度
  8. c语言编程请输入密码,想程序高手求助--用C语言来编辑一个输入密码的程序
  9. kmeans python sklearn_Python手动实现kmeans聚类和调用sklearn实现
  10. AIOps智能化数据体系的构建及在字节跳动的实践
  11. Composition API的优势
  12. HTML和css页眉制作,静态网页制作(Dreamweaver) 设计和制作网站首页 0203-静态网页制作(Dreamweaver)-设计制作网站首页页眉、导航栏.doc...
  13. 浏览器网页缩放对页面的影响
  14. 笨办法学python 习题46-windows
  15. Openstack的Nova的性能生产测试
  16. 中国股民心理一——情绪决定输赢?性格影响财富?热衷追涨杀跌?
  17. QuadrotorFly-四旋翼无人机动力学仿真环境介绍
  18. ZZULIOJ:1171-1180
  19. JavaEye范凯谈唐骏造假事件
  20. python中如何添加名片_Python的名片

热门文章

  1. HTTP响应头不缓存
  2. kcachegrind安装
  3. ASP.NET重用代码技术 - 代码绑定技术
  4. 只在必要时保存服务器控件视图状态
  5. ASP.net 中的页面继承实现和通用页面的工厂模式的实现
  6. 跨平台PHP调试器设计及使用方法——界面设计和实现
  7. Google Test(GTest)使用方法和源码解析——断言的使用方法和解析
  8. 服务器架设笔记——打通MySQL和Apache
  9. ORL Faces Database介绍
  10. Windows Caffe中MNIST数据格式转换实现