[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身上的投影)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虹科方案 | 成都大运会进行时,保障大型活动无线电安全需要…

成都大运会 7月28日,备受关注的第31届世界大学生夏季运动会在成都正式开幕。据悉,这是全球首个5G加持的智慧大运会,也是众多成熟信息技术的综合“应用场”。使用基于5G三千兆、云网、8K超高清视频等技术,在比赛现场搭建多路8K摄像…

STM32 LL库+STM32CubeMX--点亮板载LED

一、前期准备 硬件:STM32F103C8T6开发板调试工具:DAPLink(本次使用)或USB-TTL开发环境:STM32CubeMX、Keil、Vscode(可选)板载LED:PC13(低电平点亮) 二、STM32CubeMX配置 1.选择芯片型号: 2.配置外设时钟:…

Spring Cloud 智慧工地源码(PC端+移动端)项目平台、监管平台、大数据平台

智慧工地源码 智慧工地云平台源码 智慧建筑源码 “智慧工地”是利用物联网、人工智能、云计算、大数据、移动互联网等新一代信息技术,彻底改变传统建筑施工现场参建各方现场管理的交互方式、工作方式和管理模式,实现对人、机、料、法、环的全方位实时监…

开启MySQL的binlog日志

1.判断MySQL是否已经开启binlog SHOW VARIABLES LIKE log_bin; 查看MySQL的binlog模式 show global variables like "binlog%";几个关于binlog常用的命令 #查看日志开启状态 show variables like log_%; #查看所有binlog日志列表 show master logs; #查看最新一个b…

【Linux】DNS协议——应用层

目录 DNS协议 DNS背景 域名简介 域名解析过程 使用dig工具分析DNS过程 DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。 DNS背景 TCP/IP中通过IP地址和端口号的方式,来确定网…

CAS服务端入门使用实践

CAS服务端入门使用实践 一、前言 1.简介 CAS 是一个企业多语言单点登录解决方案,支持大量附加身份验证协议和功能,满足身份验证和授权需求的综合平台。 2.环境 Windows 10JDK 1.8git version 2.41.0.windows.3Tomcat 9.0.78Maven 3.5.3cas-overlay-…

轻辙视觉引擎以多种AI算法工具,助力纺织行业断线检测智能识别

近年来,人工智能技术在各行各业的应用愈发广泛,机器视觉作为人工智能的重要分支,成为当下的研究热点。机器视觉技术的发展,大幅提升了工业、农业、医疗等领域的效率和精度。尤其在工业领域,随着智能制造的进一步发展&a…

stringstream常见用法

目录 构造函数 输出字符串 修改和清空字符串 利用 stringstream 去除字符串空格 利用stringstream去除指定的字符 stringstream 数据库 <sstream> 构造函数 创建一个对象&#xff0c;向对象输入字符串&#xff1a; string x"abcdefg";stringstream s…

Zookeeper与Kafka

Zookeeper与Kafka 一、Zookeeper 概述1.Zookeeper 定义2.Zookeeper 工作机制3.Zookeeper 特点4.Zookeeper 数据结构5.Zookeeper 应用场景6.Zookeeper 选举机制 二、部署 Zookeeper 集群1.准备 3 台服务器做 Zookeeper 集群2.安装 Zookeeper3.拷贝配置好的 Zookeeper 配置文件到…

【Java】 java | git | win系统重装会给开发环境带来哪些问题

一、概述 1、近期发现电脑用起来不丝滑了&#xff0c;文件夹操作卡顿&#xff0c;一阵操作还会蓝屏 2、不能忍&#xff0c;整理排查 二、电脑情况 1、CPU&#xff1a; I5-9400F 2.9GHz 6核 2、内存&#xff1a; 32G 3、固态&#xff1a;256G 4、机械&#xff1a;1T 5、盘符使用…

二叉树的讲解

&#x1f493;博主个人主页:不是笨小孩&#x1f440; ⏩专栏分类:数据结构与算法&#x1f440; 刷题专栏&#x1f440; C语言&#x1f440; &#x1f69a;代码仓库:笨小孩的代码库&#x1f440; ⏩社区&#xff1a;不是笨小孩&#x1f440; &#x1f339;欢迎大家三连关注&…

详解C语言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t

2023年8月8日&#xff0c;周二上午 目录 为什么会产生int8_t、uint8_t等这类数据类型int8_t、uint8_t等这类数据类型有什么用头文件int8_t、uint8_t等这类数据类型是怎么实现的 为什么会产生int8_t、uint8_t等这类数据类型 根本原因在于&#xff0c;C 语言标准只是规定了各个…

SQL | 汇总数据

9-汇总数据 9.1-聚集函数 在实际开发过程中&#xff0c;可能会遇到下面这些情况&#xff1a; 确定大于某个值的有多少行数据&#xff0c;比如游戏排行榜&#xff0c;查询玩家排行多少名。 获取表中某些行的和&#xff0c;比如双十一当天&#xff0c;某个用户总订单价格是多少…

学习篇之React Fiber概念及原理

什么是React Fibber&#xff1f; React Fiber 是 React 框架的一种底层架构&#xff0c;为了改进 React 的渲染引擎&#xff0c;使其更加高效、灵活和可扩展。 传统上&#xff0c;React 使用一种称为堆栈调和递归算法来处理虚拟 DOM 的更新&#xff0c;这种方法在大型应用或者…

最强自动化测试框架Playwright(7)- 使用cookie避免重复登录

playwright在称为浏览器上下文的隔离环境中执行测试。这种隔离模型提高了可重复性&#xff0c;并防止了级联测试失败。测试可以加载现有的经过身份验证的状态。这消除了在每次测试中进行身份验证的需要&#xff0c;并加快了测试执行速度。 每次测试前登录 以下示例登录到 Git…

谈谈什么是云计算?以及它的应用

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 ​编辑 一、什么是云计算 二、云计算的优势与劣势&#xff1f; 1、云计算的优势 ①提高资源利用率 ②提升效率 ③降低成本 2、云…

python编程基础与案例集锦,python编程入门经典

大家好&#xff0c;本文将围绕python编程基础与案例集锦展开说明&#xff0c;python编程入门与案例详解是一个很多人都想弄明白的事情&#xff0c;想搞清楚python入门程序例子需要先了解以下几个事情。 【程序1】 题目&#xff1a;输入一行字符&#xff0c;分别统计出其中英文字…

射频入门知识-混频器-1

5.4混频电路-视频_哔哩哔哩_bilibili ​​​​​​​

【算法题】螺旋矩阵II (求解n阶Z形矩阵)

一、问题的提出 n阶Z形矩阵的特点是按照之(Z)字形的方式排列元素。n阶Z形矩阵是指矩阵的大小为nn&#xff0c;其中n为正整数。 题目描述 一个 n 行 n 列的螺旋(Z形)矩阵如图1所示&#xff0c;观察并找出填数规律。 图1 7行7列和8行8列的螺旋(Z形)矩阵 现在给出矩阵大小 n&…

数据结构入门:栈

目录 前言 1. 栈 1.1栈的概念及结构 1.2 栈的实现 1.2.1 栈的定义 1.2.2 栈的初始化 1.2.3 入栈 1.2.4 出栈 1.2.5 栈的元素个数 1.2.6 栈顶数据 1.2.7 栈的判空 2.栈的应用 2.1 题目一&#xff1a;括号匹配 2.1.1 思路 2.1.2 分析 2.1.3 题解 总结 前言 无论你是计算机科学专…