【原创】从游戏1秒/XX帧说起
来源:互联网 发布:淘宝标题组合公式 编辑:程序博客网 时间:2024/04/30 01:25
从游戏1秒/XX帧说起
最近做了些游戏动画方面的程序工作,以前对这方面了解不是太多,做的同时也有了些自己的体会(这方面的牛X专家可以飘过了~~)。
希望对程序和美术之前的工作配合有帮助。
游戏1秒/XX帧是什么意思?
(这个不用说,地球人都知道。)不就是一秒钟游戏画面刷新的频率嘛。
这个不是重点,重点在于想说的是在动画表现力和程序性能之间的一些关系。
对于有超强硬件的发烧友来说,玩游戏肯定是不限帧啦,多爽啊~。对于这种级别的,我们就不多说了。
针对中低端硬件配置的玩家来说,在游戏设计时能从限帧后的表现力多考虑下,是绝对能够普度众生的 ^ ^
那下面我们来谈谈帧数对游戏的影响。
* 为什么限帧
一句话,在中低端的硬件配置上达到比较流畅的游戏效果。(对于高端配置来说,机器总算时间喘口气,不是也挺好莫~~)
游戏动画跟传统动画最大的区别在于:
传统动画帧数固定(1秒/24帧),就可以显示平滑的动画了。
但游戏动画是计算出来的,同时因为还要处理其他任务,所以帧数是可变的。
假设我们以动画片的帧数做参考,理论上游戏帧数至少要略高于24帧(重复,因为游戏还要处理其他任务),一般来讲30~40帧是足够了。
这样我们就制定了一个游戏帧数的基准线(实际帧数可能比这个低,也就是所谓的跳帧,当然表现力就随之递减了)。
* 影响限帧后画面表现力的因素
这里要区分下2D和3D游戏。
先谈谈2D游戏,游戏动画(这里主要说人物动作)是由多张连续的图片来表现的。
从美术动作来讲,当一个动作调完以后,就导出成序列图片。
从程序方面考虑,肯定是图片越省越好(但前提是不能大幅影响动作效果)。
这里就出现了权衡,那么帧数标准一般就由程序或是策划提出来了。(用多少帧来表现这个动作的效果,也就是动作的流畅度)
最近做了些游戏动画方面的程序工作,以前对这方面了解不是太多,做的同时也有了些自己的体会(这方面的牛X专家可以飘过了~~)。
希望对程序和美术之前的工作配合有帮助。
游戏1秒/XX帧是什么意思?
(这个不用说,地球人都知道。)不就是一秒钟游戏画面刷新的频率嘛。
这个不是重点,重点在于想说的是在动画表现力和程序性能之间的一些关系。
对于有超强硬件的发烧友来说,玩游戏肯定是不限帧啦,多爽啊~。对于这种级别的,我们就不多说了。
针对中低端硬件配置的玩家来说,在游戏设计时能从限帧后的表现力多考虑下,是绝对能够普度众生的 ^ ^
那下面我们来谈谈帧数对游戏的影响。
* 为什么限帧
一句话,在中低端的硬件配置上达到比较流畅的游戏效果。(对于高端配置来说,机器总算时间喘口气,不是也挺好莫~~)
游戏动画跟传统动画最大的区别在于:
传统动画帧数固定(1秒/24帧),就可以显示平滑的动画了。
但游戏动画是计算出来的,同时因为还要处理其他任务,所以帧数是可变的。
假设我们以动画片的帧数做参考,理论上游戏帧数至少要略高于24帧(重复,因为游戏还要处理其他任务),一般来讲30~40帧是足够了。
这样我们就制定了一个游戏帧数的基准线(实际帧数可能比这个低,也就是所谓的跳帧,当然表现力就随之递减了)。
* 影响限帧后画面表现力的因素
这里要区分下2D和3D游戏。
先谈谈2D游戏,游戏动画(这里主要说人物动作)是由多张连续的图片来表现的。
从美术动作来讲,当一个动作调完以后,就导出成序列图片。
从程序方面考虑,肯定是图片越省越好(但前提是不能大幅影响动作效果)。
这里就出现了权衡,那么帧数标准一般就由程序或是策划提出来了。(用多少帧来表现这个动作的效果,也就是动作的流畅度)
动作方面唯一不变的,是动作时间。这个是绝对精确的。
那么在一个动作的持续时间段内,有多少帧,我把这个叫做动作解析度。(1秒/24帧,就是一个动作解析度)
那么限帧跟这个有什么关系呢?
限帧,就是决定了每秒钟动画的最大解析度。那么以1秒/24帧为例,一个1秒的动作,最多需要24帧。
当然可以小于24帧, 这样就减轻了游戏资源和性能上的负担。
对3D游戏来说,由于动作是实时插值计算的,不存在动画存为多张图片的问题(也就没有2D游戏资源上的负担了)。所以限帧也就主要只是一个性能上的考虑了。不过在3D游戏方面,动作解析度有另外一个用途,等于是控制了动作的更新频率,这样可以进一步对性能进行优化(这个主要是针对同屏超大规模的动作渲染来讲的)。
以上为本人的观点,感兴趣的话,希望大家进一步讨论这个话题~~
- 【原创】从游戏1秒/XX帧说起
- xx年xx月xx日xx时xx分xx秒——版本1
- [乐意黎原创]从百度搜不到金(1+2=3)胖说起
- 时间转化从毫秒转化成--->xx(分):xx(秒):xx(未)
- 从csdn的原创文章被扒说起
- (1)从listen函数说起
- Unity3D游戏开发之从Unity3D项目版本控制说起
- 从游戏脚本语言说起,剖析Mono搭建的脚本基础
- 挣值管理不是搞数字游戏(1)——从搬石头的故事说起
- 多线程编程(1)- 从 CreateThread 说起
- 从一个小程序说起(1)
- [Unity3D]Unity3D游戏开发之从《魂斗罗》游戏说起(上)——目标追踪
- xx年xx月xx日xx时xx分xx秒——if版本
- 从Object_oriented 说起
- 从AFX_MANAGE_STATE(AfxGetStaticModuleState())说起
- 从“芙蓉姐姐”现象说起
- 不知从何说起
- 从jira说起
- View编程(6): 自定义View_02_ApiDemo源码研究
- 为了避免无法确定该调用的构造函数而需将main函数设为先于类的构造而执行,故将其声明为static
- Ogre 的基于Texture的阴影有时会不正常的原因
- android 客户端访问服务器端
- memcached全面剖析–3.memcached的删除机制和发展方向
- 【原创】从游戏1秒/XX帧说起
- php开发时web服务器Apache Service Monitor Start按鈕变灰的解决方法
- GridView 与Label DropDownList 控件 相结合
- POJ 1039 Pipe 计算几何题目。。
- [求助]网页自动提交,模拟点击方案寻找
- STM32的NVIC理解
- 分享到 功能
- Trie,字典树
- 队列基本操作