[gdc19]《蜘蛛侠》开发解读(3/4)--Runtime篇

2024-02-01 17:50

本文主要是介绍[gdc19]《蜘蛛侠》开发解读(3/4)--Runtime篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
https://www.bilibili.com/video/av58521396 (再放下城市穿梭的样子)
这里统一列一下runtime部分,比较犀利&有特点的是:

  • streaming策略
  • 荡蛛丝一套动作系统
    品质ok的是:
  • 渲染pipeline
  • 各种布料,表情等等

streaming策略

在这里插入图片描述
在文件组织方式上稍微特别一点的就是,有一个zone的概念;
移动速度最高是32m/s
模型组织方式:有了良好的组织方式之后,快速移动的时候要load的东西就大大减少了

  • imposter
  • hibernate model:就是水塔,树这种instance很多,到处都是的物件,他们的mesh一直在内存里
    资源lod:
  • 贴图主要load 3,4级mip,停下来才load mip0 这种,快速移动的时候加上motionblur,所以完全没问题

资源压缩:

  • lz4压缩资源
    在这里插入图片描述
  • index buffer使用增量式的存储,这样可以让压缩效率高非常多

实时生成:

  • envmap实时生成的

Always Load: 如果有空余时间,就一直去load detail的东西

所以我们可以看到,如此犀利的streaming效果,其实就是每个部分做的比较好的结果。
在这里插入图片描述

蛛丝荡的效果

这块非常的细节,如果不做蜘蛛侠用处也比较有限。
要点1:使用曲线而非物理来达到玩家喜欢的效果
这个在动画和物理上也是经常使用,大概这块还处在pre-physically-based的阶段。
要点2:尽早让不是这个系统的开发者来体验给出意见
这个也是非常赞同的,之前做效果时候也是,不要找美术,专门找策划来看美术效果,他们的看法基本就是玩家的看法了。

render

渲染部分比较中规中矩,
在这里插入图片描述

  • async compute部分是ssao,fft,ssr,这里是和graphic pipeline在gpu中同步进行,能更快一些
  • postfx是放在下一帧的帧首做的,

表情和布料

面部和表情使用3lateral pipeline,面部捕捉的,同样的技术用于hellblade,现在3lateral已经被epic games收购。
布料是havok的。

ref

  1. ‘Marvel’s Spider-Man’: A Technical Postmortem
  2. Concrete Jungle Gym: Building Traversal in ‘Marvel’s Spider-Man’
  3. (Super)Humans of New York: Managing the Many Faces in ‘Marvel’s Spider-Man’

这篇关于[gdc19]《蜘蛛侠》开发解读(3/4)--Runtime篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668001

相关文章

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

SpringBoot中配置文件的加载顺序解读

《SpringBoot中配置文件的加载顺序解读》:本文主要介绍SpringBoot中配置文件的加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot配置文件的加载顺序1、命令⾏参数2、Java系统属性3、操作系统环境变量5、项目【外部】的ap

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

python3 gunicorn配置文件的用法解读

《python3gunicorn配置文件的用法解读》:本文主要介绍python3gunicorn配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python3 gunicorn配置文件配置文件服务启动、重启、关闭启动重启关闭总结python3 gun

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.