[gdc]Rendering ‘God of War Ragnark‘

在这里插入图片描述
gdc23, sony santa monica关于god of war的分享;

back ground

  • 作者stephen mcauley现在是santa monica的technical director;
  • 20年加入santa monica,作为rendering lead,有9年的经验,之前在ubisoft montreal,做farcry系列,所以提到的一些技术带有一些farcry的痕迹;

开发思路 & team

因为定位是rendering lead,所以本质上非技术的沟通工作占据比较多的位置;
stephen加入的时候,会做非常多的沟通,以及查阅之前任务的todo list来获取之前没有完成的事情等等;
同时自我定位也比较清晰,定位技术团队为棒球比赛中的击球手,是一个辅助和强化的作用,但是不是design和artist这种能直接取得胜利的角色;
所以要花很多时间来开发workflow,让content creator能够比较快速的开发;
当然在后期也开始注意到,也要让程序团队能够有一个好的流程;

技术

一个物理正确的框架

上来stephen惊奇的发现,光照亮度等等方面没有“正规化”,会有比较多的美术随意设置的情况;
太阳光设置使用十几这种情况,hmmm,战神也会出现这种情况;

这个实际做起来就是按照正确的物理方式处理就好了:

  • 太阳光按照实际的物理数值
  • 天光和天空球亮度绑定
  • 有一个标准的默认曝光以及tonemapping方法(ACES)

不这么做就在不同阶段有这样或者那样的问题,战神这里就是踩到了其中若干问题:

  • 缺乏一个标准的“base lighting”,大家通过比较随意的lighting数值,各方面彼此再配合,小范围没问题,内容多了的时候,就会出现physically based lighting启用阶段,美术团队不按照物理正确方式使用情况下的问题;
    简言之是做了物理正确的lighting基础,细节可以看frostbite的PBR的文章,写的更加详细;

ray tracing cubemap

在反射中,从parallax corrected cubemap替换成raytraced cubemap:
在这里插入图片描述

  • 这里会使用houdini来生成一些geometry mesh来降低trace ray的消耗:
    在这里插入图片描述
    这里只能说是一种做法,stephen自己也说他们对于raytracing不是很熟悉,所以这里不能简单作为一种牛逼的或者最优的方案来看,实际行业中的一些proxy mesh(lumen中的方案),voxel等都可以采用;

harden contact shadow(ray marching)

正常我们会使用screen space技术来做contact shadow来达到细节精准的shadow;
战神中对于contact shadow的需求:
在这里插入图片描述
这里奎爷的鼻子这里就是有点不对,这个处理方式就是contact shadow

e.g.
在这里插入图片描述
在这里插入图片描述

战神这里使用了较好的办法:

  • 在shadow depth中使用ray marching的方法来做contact shadow;
  • 且可以针对area light来做
    这样在精准度等方面都有很好的提升,而且范围覆盖方面更大,效率可控,目前看来效果比较好:
    效果对比:
    在这里插入图片描述
    (without contact shadow)
    在这里插入图片描述
    (with contact shadow,可以两个图切换下看区别,细节可以看弓在atreus身上的投影)

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

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

相关文章

zookeeperAPI操作与写数据原理

要执行API操作需要在idea中创建maven项目 (改成自己的阿里仓库)导入特定依赖 添加日志文件 上边操作做成后就可以进行一些API的实现了 目录 导入maven依赖: 创建日志文件: 创建API客户端: (1&#xff09…

【uniapp】uniapp自动导入自定义组件和设置分包:

文章目录 一、自动导入自定义组件:二、设置分包和预加载: 一、自动导入自定义组件: 【Volar 官网】https://github.com/vuejs/language-tools 二、设置分包和预加载: 【官方文档】https://uniapp.dcloud.net.cn/collocation…

android开发之Android 自定义滑动解锁View

自定义滑动解锁View 需求如下: 近期需要做一个类似屏幕滑动解锁的功能,右划开始,左划暂停。 需求效果图如下 实现效果展示 自定义view如下 /** Desc 自定义滑动解锁View Author ZY Mail sunnyfor98gmail.com Date 2021/5/17 11:52 *…

开发工具Eclipse的使用之导入项目(import)

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Eclipse使用的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.导读 二.详细操作步骤 1.右击项…

【深度学习】StyleGANv2 2019 论文,Analyzing and Improving the Image Quality of StyleGAN

StyleGAN论文: 《A Style-Based Generator Architecture for Generative Adversarial Networks》 论文:https://arxiv.org/abs/1812.04948 代码: https://github.com/NVlabs/stylegan StyleGANv2论文: 《Analyzing and Improving …

电池的正极是带正电?

首先说明结论:电池正极带正电,负极带负电。 一个错误的实例: 如果说电流是从电池正极流动到电池负极,那么电子就是从负极流动到正极,那么正极就是带负电。----这个说法是错误的。这是因为,根据那么很出名…

简绘ChatGPT支持Midjourney绘图 支持stable diffusion绘图

简绘支持Midjourney绘图和stable diffusion绘图。 这意味着简绘具备Midjourney绘图和stable diffusion绘图功能的支持。

无涯教程-Perl - redo函数

描述 此函数将重新启动当前循环,而不会强制判断控制语句。块中不再执行任何语句。如果存在继续块,将不会执行。如果指定了LABEL,则在LABEL标识的循环开始时重新开始执行。 语法 以下是此函数的简单语法- redo LABELredo返回值 此函数不返回任何值。 例 以下是显示其基本…

Shell编程之条件测试、if语句、case语句

条件语句 一、条件测试1.1 测试命令1.1 文件测试1.2 整数比较1.3 字符串比较1.4 逻辑测试1.4.1 逻辑与 &&1.4.2 逻辑或 || 1.4.3 组合应用1.5 多个命令组合执行 ( ) { } 二、if语句2.1单分支结构2.2 多分支结构2.4 if语句练习2.4.1 单分支2.4.2 简单的交互式分数反馈 三…

元宇宙核能发电VR模拟仿真实训教学为建设新型电力系统提供重要支撑

随着“碳达峰、碳中和”目标与建设新型能源体系的提出,在元宇宙环境下建设电力系统是未来发展的趋势。以物联网、区块链、数字孪生、混合现实等技术为主要代表的元宇宙技术体系及其在电力和能源系统中的应用,将会促进智能电网的发展,为建设新…

VR安全宣传系列:防触电虚拟现实体验

在电气工作中,安全问题始终是重中之重。为了更好地提高公众的电气安全意识和技能,广州华锐互动开发了一种基于虚拟现实技术的模拟系统——VR防触电虚拟体验系统。这种系统可以模拟各种因操作不当导致的触电事故场景,并提供沉浸式的体验&#…

利用OpenSSL实现私有 CA 搭建和证书颁发

利用OpenSSL实现私有 CA 搭建和证书颁发 一、私有 CA 搭建1. 安装openssl2. 配置 openssl3. 生成 CA 自己的私钥4. 生成 CA 自己的自签证书5. 验证自签证书 二、向私有CA申请证书流程1. 生成应用私钥文件2. 根据应用私钥生成证书申请文件3. 向CA请求颁发证书4. 验证应用证书5. …

2022年09月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;指定顺序输出 依次输入3个整数a、b、c,将他们以c、a、b的顺序输出。 时间限制&#xff1a;1000 内存限制&#xff1a;65536 输入 一行3个整数a、b、c&#xff0c;以空格分隔。 0 < a,b,c < 108 输出 一行3个整数c、a、b&#xff0c;整数之间以一个空格分…

腾讯云服务器标准型CVM实例详细介绍S5/S6/SA2/SR1/SA3/S4等

腾讯云CVM服务器标准型实例的各项性能参数平衡&#xff0c;标准型云服务器适用于大多数常规业务&#xff0c;例如&#xff1a;web网站及中间件等&#xff0c;常见的标准型云服务器有CVM标准型S5、S6、SA3、SR1、S5se等规格&#xff0c;腾讯云服务器网来详细说下云服务器CVM标准…

使用sqlplus连接oracle,提示ORA-01034和ORA-27101

具体内容如下 PL/SQL Developer 处 登录时 终端处 登录时 ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Process ID: 0 Session ID: 0 Serial number: 0 解决方法是执行以下命令 sqlplus /nolog conn / as sysdba startup …

0001nginx简介、相关模型与原理

文章目录 一. 什么是Nginx二. ngnix的一些模型1、nginx的进程模型2、worker的抢占&#xff08;锁&#xff09;机制模型3. nginx事件处理模型 三. nginx加载静态资源的过程 一. 什么是Nginx Nginx是一个高性能HTTP反向代理服务器&#xff0c;以下是nginx的相关能力 反向代理&am…

JDK 8 升级 JDK 17 全流程教学指南

JDK 8 升级 JDK 17 首先已有项目升级是会经历一个较长的调试和自测过程来保证允许和兼容没有问题。先说几个重要的点 遇到问题别放弃仔细阅读报错&#xff0c;精确到每个单词每一行&#xff0c;不是自己项目的代码也要点进去看看源码到底是为啥报错明确你项目引入的包&#x…

【Transformer】自注意力机制Self-Attention | 各种网络归一化Normalization

1. Transformer 由来 & 特点 1.1 从NLP领域内诞生 "Transformer"是一种深度学习模型&#xff0c;首次在"Attention is All You Need"这篇论文中被提出&#xff0c;已经成为自然语言处理&#xff08;NLP&#xff09;领域的重要基石。这是因为Transfor…

word横向页面侧面页码设置及转pdf后横线变竖线的解决方案

在处理材料的时候&#xff0c;会遇到同一个文档里自某一页开始&#xff0c;页面布局是横向的&#xff0c;这时候页码要设置在侧面&#xff0c;方法是双击页脚&#xff0c;然后在word工具栏上选择“插入”——>“文本框”——>“绘制竖版文本框”&#xff0c;然后在页面左…

C++小游戏贪吃蛇源码

graphics.h是针对DOS下的一个C语言图形库 (c也可以) 目前支持下载此头文件的常用的有两种: 1. EGE (Easy Graphics Engine)2. EasyX Graphics LibraryEGE, 全名Easy Graphics Engine, 是windows下的简易绘图库&#xff0c;是一个类似BGI(graphics.h)的面向C/C语言新手的图形库…