GDC2015分享:巫师3开放世界性能优化




本篇属于资源制作流程,介绍了一个场景资源查询工具。非常有创意的是,工程师将美术资源数据直接导入到SQL,于是产生了强大的查询能力。此外可以从该文大致了解到巫师3的资源标准(例如超过2k面必须做LOD)。

美术可能会摆出性能很差的东西

在巫师3中,美术的创造力让他们能做出很多性能很差的东西。
 


美术放了一个模型,只有5%在地面上,其他都放在底下。戏称之为“泰坦尼克”。
 


有一个鸡肉桶,放了150万面,吐槽“这大概是最贵的鸡肉了”。

巫师3的编辑器能力

从讲座看,巫师3编辑器自由度比较高,结构为世界/图层/实体/组件的层级结构。设计师和美术人员可以编辑和修改资源,编辑组件(按:估计也是ECS系统)。也就是说,可以对导入的实体进行进一步修改,比如修改材质、粒子特效、Shader,组件有光、声音、植被。从渲染管理来看,在场景上可以手工增加碰撞体,合并mesh,增加额外的LOD层级。游戏大概有50万个实体。

解决方案:美术资源数据库

项目做了一个分析工具,可以使用SQL查询美术资源。

工具在每次夜间自动构建时自动调用,将所有美术资源的属性导出为SQL的表创建和插入文本,一次大约2GB,然后创建SQL数据库运行在服务器上,二手手机购买平台然后就可以用SQL来查询了。(作者认为有性能优化空间,且希望能实现本地版本实时看效果)


SQL查询例:
 


该工具客户端界面如下。上方可以输入SQL语句,如果对语句满意的话可以保存。左侧是已经保存好的查询,右侧为搜索结果列表。中间的地图可以显示查询到物件的位置,以及大小。如果你点击地图上的物件的话,你能直接传送过去看现场。地图可以存为4k的大图。
 


此外还有一些预制的地图分析,包括:
 

  • 顶点密度地图
  • 植被过密地图


 


列表通过google api自动导出到Google Doc,然后每个周一都通过google sheet,自动导出几个重要指标表。这样,项目组可以指派一部分开发人员作为突击队,按主题,一个主题一个主题修复问题。



实际使用效果

揪出很多故障
 

  • 一个Layer标记为地下、开启阴影的灯,直径为4公里
  • 地下有200个左右带骨骼动画的悬空弓,每个都有900米的视野距离
  • 发现了场景中的测试资源
  • 发现了25万面的船
  • 发现超过200个2000面以上的模型没有LOD(按:所以他们基本上所有模型都要做LOD)
  • 发现在一个32平米的区域内(按:疑笔误为边长32米)有10万个草,反馈后确认是一个程序bug



内部的评价
 

  • 程序和美术都很喜欢用。没有专门的测试员,美术会自己拼巨长巨复杂巨疯狂的SQL语句查询。
  • 在地图上可视化显示是非常有用的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值