Google协议缓冲区作为一种3D图形游戏格式

Google协议缓冲区作为一种3D图形游戏格式,3d,protocol-buffers,3d,Protocol Buffers,我正在寻找一种方便的仅客户端格式,用于持久化三维场景数据 Google协议缓冲区是否可以作为保存和加载从3d s max或blender导出的场景的完整场景数据的良好格式? 我的意思是网格、动画和场景数据将存储在protobuf格式的客户端,并从游戏中加载(目前没有客户端-服务器交互…但可能在未来的版本中…所以我认为protobuf将始终提供这种灵活性)?我想这是一个有效的解决方案,我自己也想过尝试一下。Google使用协议缓冲区进行内部数据处理,因为它们能够以非常紧凑的方式存储数据(与XML不

我正在寻找一种方便的仅客户端格式,用于持久化三维场景数据 Google协议缓冲区是否可以作为保存和加载从3d s max或blender导出的场景的完整场景数据的良好格式?
我的意思是网格、动画和场景数据将存储在protobuf格式的客户端,并从游戏中加载(目前没有客户端-服务器交互…但可能在未来的版本中…所以我认为protobuf将始终提供这种灵活性)?

我想这是一个有效的解决方案,我自己也想过尝试一下。Google使用协议缓冲区进行内部数据处理,因为它们能够以非常紧凑的方式存储数据(与XML不同),同时还允许数据结构的扩展性(可以向结构中添加新字段,旧代码仍然可以读取)


我想说试试肯定不会有什么害处。

视情况而定。优化的二进制格式仍然需要更少的内存和更少的加载时间。ProtoBuf是一种通用格式,因此我在这里的默认答案是“确定”,但要回答它是否可以方便地完成,就需要了解构成“场景”的细节。它当然有关键的原语等,支持子对象、列表等。虽然您确实可以通过手动方式挤出一些额外的字节,但protobuf仍然非常有效——无论是在带宽还是处理成本方面。protobuf显然是原型的一个很好的候选。在优化应用程序性能时,您仍然可以替换文件格式。传统上,例如游戏级别的文件格式已经高度专业化和优化。它们至少曾经包含预先计算的索引,甚至包括预先计算的环境照明。我猜他们试图压缩文件格式的每一个部分,以尽量减少加载时间。。。但对于启动,ProtoBuf似乎非常方便且功能强大。