【发布时间】:2011-09-07 14:37:46
【问题描述】:
我正在为一家艺术家公司编写一个支持全高清的 2D 引擎,希望它是跨平台的,并且是用 OpenGL 和 C++ 编写的。
我遇到的主要问题是如何处理所有这些高清精灵。艺术家以 24fps 的速度绘制图形,并将它们导出为 png 序列。我已将它们转换为 DDS(不理想,因为它需要加载 directx 标头)DXT5,从而大大减少了文件大小。游戏中的某些场景一次可以有 5 或 6 个动画精灵,并且这些可以包含 200 多帧每个。目前我正在将精灵加载到一个指针数组中,但这需要很长时间才能加载,即使使用压缩纹理,并且使用相当多的内存(完整场景大约 500mb)。
所以我的问题是,对于如何处理如此大量的帧,您有什么想法或技巧吗?我有几个想法:
- 使用 swf 格式存储来自 Flash 的帧
- 实现 2D 骨骼动画系统,替换 png 序列(我担心关节是否可见)
Castle Crashers 等游戏如何以出色的高清显卡加载速度如此之快?
【问题讨论】:
-
从磁盘加载的时间过长,或者上传到 GPU 的时间过长?
-
"不理想,因为它需要加载 Directx 标头" 您不需要 Direct3D 标头来加载 DDS。