[gdc23]《战神:诸神黄昏》中的积雪系统

在这里插入图片描述

overview

gdc23上santa monica带来基于tesselation的displacement map的可交互积雪系统,这是一个对于前作(战神4)的screen space parallax mapping的升级,而且是一个由自身render programmer在一个项目周期内,完成的:

  • 丰富&顶尖质量的
  • 性能友好的
  • 不需要美术很多设置(基本就是全局参数)
    系统;
    talk本身基本完整介绍了整个研发的提出,prototype,polish,shipping的整个过程,对于产品团队可以说是含金量很高;
    本文主要笔记一些重点;

screen space parallax的问题

在这里插入图片描述
gow4的积雪系统这样,应该说正常质量已经不错了;
主要做法就是有一个积雪痕迹的render target记录,然后进行screen space 的raymarching,进而做parallax mapping;
在当时质量没问题,也是同期很多游戏的选择(the last of us 2…);
这里主要谈及一些缺点:

  • screen space raymarching,性能其实也不可控,在激烈战斗的情况下,几乎全屏做raymarching这个消耗是比较严重的;
    在这里插入图片描述
  • parallax mapping本身就是一个很有局限性的技术,没法做出距离camera很近的有深度的雪,上图中齐腰深的雪
  • 局限于terrain,这个对于美术的发挥限制很大;

displacement & tessellation

技术本身列出要点也比较直接:

  • top down记录场景本身的深度
  • top down记录交互的深度
  • 渲染一个heightmap的mesh,在有交互深度的附近进行tesselation(可以最小化triangle量)
  • 使用gpu driven的思路,对heightmap mesh做meshlet切分,进而各种充分culling
  • 还能procedual撒上一些小雪块增加细节
  • 阴影系列的优化技术都用上(scroll等)
    最后达成效果效率都很好的结果;

研发过程

在这里插入图片描述
看过全文的话,刚工作的同学可能会觉得技术本身是关键,工作多年的同学应该会觉得talk中的研发过程才是精华;
所以作者在开始的时候就指出,不要太关心技术细节(其实占比较低),要关注选择背后的原因;
整体看下来,应该说这套积雪系统是一个系统级别的系统,涉及面是比较大的,这种系统从开发量以及影响面比较大,那么就是非常依赖周围的系统&团队,以及和团队的交流。

美术会议

  • ragnorak开始的时候,一个art team和render team开了个会,里面artist每个都是10+年的经历的老法师,明确提出gow4的雪的系统的问题,然后列出新系统的需求:
    • 雪需要是到处都是10x于gow
    • 需要自动的铺设的工作量,不能是美术一点点弄
    • 需要在任何mesh上(而不是局限于terrain)
    • 需要是实际的geometry而不是parallax mapping了
    • 效率要好
    • 要能够ps4上跑得起来,并且能scale up到ps5上面
      然后美术给出的需求的说明是这样的:
      在这里插入图片描述
      (有maya的prototype,各种说明。。。有点专业呀!!!)

开发过程

其实是非常面向产品的,就是围绕产品来组织技术,而不是一个tech oriented;
第一个版本的prorotype,只有geometry的tesselation
然后尽快进版本,review,迭代。
增加细节,normal等等;
并且同组的同事也在处理hardware tesselation,这样帮助也很大;
然后新的render lead过来之后,也增加了作为particle collision的depth,
在这里插入图片描述
procedual放置的小mesh;
可以看到是各种各样的小mesh的组合,最后出来的产品结果;

sum

总结下来是一个很好的开发案例,通过团队的素养和配合,最后达成了一个很好的产品品质的结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/80874.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【探索Linux】—— 强大的命令行工具 P.6(调试器-gdb、项目自动化构建工具-make/Makefile)

阅读导航 前言一、什么是调试器二、详解 GDB - 调试器1.使用前提2.经常使用的命令3.使用小技巧 三、项目自动化构建工具 - make/Makefile1. make命令⭕语法⭕常用选项⭕常用操作⭕make命令的工作原理⭕make命令的优势: 2.Makefile文件⭕Makefile的基本结构⭕Makefil…

MongoDB增删改查操作

数据库操作&#xff1a; 在MongoDB中&#xff0c;文档集合存在数据库中。 要选择使用的数据库&#xff0c;请在mongo shell程序中发出 use <db> 语句 // 查看有哪些数据库 show dbs;// 如果数据库不存在&#xff0c;则创建并切换到该数据库&#xff0c;存在则直接切换到…

Visual Studio 如何放大代码字体的大小

1.打开Visual Studio&#xff0c;新建一个程序&#xff0c;一段代码&#xff0c;为接下去的操作做好准备。单击菜单栏的【工具】选项。 2.在跳出来菜单中找到【选项】&#xff08;一般在最后一项&#xff09;&#xff0c;然后单击。跳出新的窗口。 3.跳出新的窗口后&#xff…

频繁full gc 调参

Error message from spark is:java.lang.Exception: application_1678793738534_17900289 Driver Disassociated [akka.tcp://sparkDriverClient11.71.243.117:37931] <- [akka.tcp://sparkYarnSQLAM9.10.130.149:38513] disassociated! 日志里频繁full gc &#xff0c;可以…

408反向改考自命题的211学校,计算机招生近500人!今年能捡到漏吗?

贵州大学(C) 考研难度&#xff08;☆☆☆&#xff09; 内容&#xff1a;23考情概况&#xff08;拟录取和复试分析&#xff09;、院校概况、23专业目录、23复试详情、各专业考情分析。 正文1498字&#xff0c;预计阅读&#xff1a;3分钟。 2023考情概况 贵州大学计算机相关各…

【VBA_选择区域的关键词更改颜色】

Private Sub CommandButtonl_Click() Cells.Font.ColorIndex 1 End Sub Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rng As Range, i As Integer Dim T As String Dim C As Integer For Each rng In Selection T "河北" C 3 i 1 Do While InStr(…

微软商店的ubuntu 连不上网Temporary failure in name resolution

背景&#xff1a;win10 下载docker时需要wsl2&#xff0c;下了个微软商店的Ubuntu 。写这篇文章的原因是当时查了资料ubuntu的问题和微软下载的Ubuntu还是有一些区别&#xff0c;问题不好解决&#xff0c;故写此文。 问题&#xff1a;用命令ifconfig eth0 down后再执行ifconfi…

回归预测 | MATLAB实现SSA-BP麻雀搜索算法优化BP神经网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SSA-BP麻雀搜索算法优化BP神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现SSA-BP麻雀搜索算法优化BP神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本…

Electron入门,项目启动。

electron 简单介绍&#xff1a; 实现&#xff1a;HTML/CSS/JS桌面程序&#xff0c;搭建跨平台桌面应用。 electron 官方文档&#xff1a; [https://electronjs.org/docs] 本文是基于以下2篇文章且自行实践过的&#xff0c;可行性真实有效。 文章1&#xff1a; https://www.cnbl…

C++ string 的用法

目录 string类string类接口函数及基本用法构造函数&#xff0c;析构函数及赋值重载函数元素访问相关函数operator[]atback和front 迭代器iterator容量操作size()和length()capacity()max_sizeclearemptyreserveresizeshrink_to_fit string类对象修改操作operatorpush_backappen…

第7章:贝叶斯分类器

贝叶斯决策论 贝叶斯分类器&#xff1a;使用贝叶斯公式 贝叶斯学习&#xff1a;使用分布估计&#xff08;不同于频率主义的点估计&#xff09; 极大似然估计 朴素贝叶斯分类 半朴素贝叶斯 条件独立性假设&#xff0c;在现实生活中往往很难成立。 半朴素贝叶 斯的一个常用策略…

pdf 转 word

pdf 转 word 一、思路 直接调用LibreOffice 命令进行文档转换的命令行工具 使用的前系统中必须已经安装了 libreofficelibreoffice已翻译的用户界面语言包: 中文 (简体)libreoffice离线帮助文档: 中文 (简体)上传字体 重点&#xff1a;重点&#xff1a;重点&#xff1a; 亲…

设计模式-过滤器模式(使用案例)

过滤器模式&#xff08;Filter Pattern&#xff09;或标准模式&#xff08;Criteria Pattern&#xff09;是一种设计模式&#xff0c;这种模式允许开发人员使用不同的标准来过滤一组对象&#xff0c;通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式…

HTML和JavaScript实现一个简单的计算器

使用HTML和JavaScript实现一个简单的计算器。 一、绘制键盘 <!DOCTYPE html> <html> <head><title>Simple Calculator</title><style>.calculator {display: grid;grid-template-columns: repeat(4, 1fr);grid-gap: 5px;padding: 10px;}.…

Stable Diffusion 告别复制关键词,高质量提示词自动生成插件

在使用SD时,我们经常会遇到心中无想法,或不知如何描述心中所想的图像。有时由于提示词的选择不当,生成的图片质量也不尽如人意。为此,我今天为大家推荐一个高质量的提示词自动生成插件——One Button Prompt。 下面是他生成的一些样图。 文章目录 插件安装插件说明主菜单工…

【ES6】箭头函数和普通函数的区别

它们之间的区别&#xff1a; &#xff08;1&#xff09;箭头函数没有自己的this。 &#xff08;2&#xff09;不可以当作构造函数&#xff0c;不可以对箭头函数使用new命令&#xff0c;否则抛出错误。 &#xff08;3&#xff09;不可以使用arguments对象&#xff0c;该对象在函…

ABeam×Startup丨德硕管理咨询(深圳)创新研究团队前往灵境至维·既明科技进行拜访交流

近日&#xff0c;德硕管理咨询&#xff08;深圳&#xff09;&#xff08;以下简称“ABeam-SZ”&#xff09;创新研究团队一行前往灵境至维既明科技有限公司&#xff08;以下简称“灵境至维”&#xff09;进行拜访交流&#xff0c;探讨线上虚拟空间的商业模式。 现场合影 &…

VR/AR眼镜方案,MTK联发科平台智能眼镜安卓主板设计方案

随着人工智能在不同领域的逐渐深入&#xff0c;人们对一款产品的需求不再局限于某种单一的功能或单一场景&#xff0c;尤其是在工业医疗等专业领域&#xff0c;加快数字化转型才能实现产业的升级。 AR智能眼镜&#xff0c;是一个可以让现场作业更智能的综合管控设备。采用移动…

华为OD机试 - 秘钥格式化 - 双指针(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

Java创建对象的几种方式

在Java中&#xff0c;对象是程序中的一种基本元素&#xff0c;它通过类定义和创建。本篇教程旨在介绍Java中创建对象的几种方式&#xff0c;包括使用new关键字、反射、clone、反序列化等方式。 使用new关键字创建对象 在Java中&#xff0c;最常用的创建对象方式是使用new关键…