【发布时间】:2012-06-29 06:44:02
【问题描述】:
我一直试图找出游戏引擎如何处理资产压缩。显然,他们在构建游戏时会压缩所有资产。但是他们如何在运行时解压缩它们。我唯一能想到的就是解压缩到内存中,但这一定是非常占用内存的。如果他们在玩游戏时解压到硬盘上,文件夹会被填满吗?这听起来效率不高。
在 c++ 中使用像 zlib(或任何其他)这样的库,这个运行时解压是如何完成的?
大卫
【问题讨论】:
-
我不知道这里的“资产”具体是什么意思,但是如果你有很多单独的压缩文件,你可以尝试按需解压+一些缓存。所以一个文件只有在需要的时候才在内存中解压,然后缓存起来,暂时不需要的时候其他文件需要解压的时候从缓存中丢弃,防止缓存过大。
-
资产是指游戏所需的文件,例如图像、网格、材质、着色器之类的东西
-
在“Game Coding Complete”中几乎有描述的方法。
标签: c++ compression