中文第一计算机图形学社区OpenGPU 版权所有2007-2018

 找回密码
 注册

扫一扫,访问微社区

搜索
查看: 2141|回复: 9

游戏中同屏骨骼动画如何优化(泛谈)

[复制链接]
发表于 2016-7-21 13:54:20 | 显示全部楼层 |阅读模式
各位朋友。mmorpg中同屏大量骨骼动画如何优化呢(骨骼面不能再少了,不能合批,不考虑lod)。
发表于 2016-7-21 14:23:21 | 显示全部楼层
有的是方法,例如用四元数替代矩阵,把骨骼变换(pos/rot/scale) or 矩阵写进texture里,等等
发表于 2016-7-21 19:23:13 | 显示全部楼层
硬蒙么么
 楼主| 发表于 2016-7-22 09:30:46 | 显示全部楼层
jerrywwl 发表于 2016-7-21 14:23
有的是方法,例如用四元数替代矩阵,把骨骼变换(pos/rot/scale) or 矩阵写进texture里,等等 ...

已是四元数作为输入。Gpu蒙皮。
发表于 2016-7-22 10:10:37 | 显示全部楼层
profiling, 看瓶颈在哪里,是CPU,还是GPU。
然后有个skeleton instance的技术。
发表于 2016-7-22 11:50:29 | 显示全部楼层
预计算一下每帧的矩阵保存起来,渲染时直接应用帧动画模式,用空间换时间,试试看。
发表于 2016-12-9 08:36:02 | 显示全部楼层
骨骼动画蒙皮部分完全放在gpu上来做,就我目前参与过的项目来看,我就没见过效率瓶颈在vs上的。骨骼矩阵的计算,可以做跳帧,离镜头远的,两帧只计算一帧这样。也可以共享骨骼动画,这样只计算一份,不过这只适用于像场景里很多树随风飘这样的情况。至于把四元数传入到vs里去做,没试过,感觉上可能可行吧。
发表于 2016-12-9 11:09:07 | 显示全部楼层
人很多...只能想到空间换时间...折腾美工
发表于 2016-12-9 16:38:56 | 显示全部楼层
把所有不同的角色的骨骼相关的矩阵和变换信息写入到纹理里,一张纹理最大可以64*64-4096*4096不等,你想想可以存储多少角色的多少根的矩阵数据?
其实对于许多情况下,往往寄存器常量不够,一般就直接用纹理来存储。速度性能都是很理想的。
发表于 2018-4-8 10:37:26 | 显示全部楼层
很有受益,学习到了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|小黑屋|Archiver|手机版|中文第一计算机图形学社区OpenGPU

GMT+8, 2018-4-21 08:06 , Processed in 0.044908 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表