<avatar: frontiers of pandora>技术overview

在这里插入图片描述
https://www.eurogamer.net/digitalfoundry-2023-avatar-frontiers-of-pandora-and-snowdrop-the-big-developer-tech-interview
https://www.youtube.com/watch?v=LRI_qgVSwMY&t=394s
主要来自euro gamer上digital foundry对于avatar的开发团队Massive工作室的采访,使用的是SnowDropEngine(divition的那个)
鉴于Avatar是被DigitalFoundry评为2023的最牛画面游戏(基本上和AlanWake2五五开),所以记录下;
游戏在角色和室内方面表现一般,潘多拉星球上的自然世外美景,真的是一绝,养眼!!

overview

avatar整体的评分和销量不算好,画面和技术实现方面算是一个长板,技术方面在当前大盘硬件上可以说是做到了相当不错的水平;
该有的技术都有一个实现;

system requirements

其实如果看看一些游戏直播,对于云游戏比较多的玩家,尤其是看了很多开发商的高质量宣传片,可能感觉画面也就那样;
这里就要提到,在评测画面时候,需要考虑到目标的配置以及帧数;
像今年比较热的TheFinals是pvp游戏,我们正常玩就需要120fps级别,那么游戏的场景设计到技术选型就不能往高拉;
同理一些3080-4090才能跑出效果的画面,这个和大盘配置rtx3060已经是有代差了,所以也不能放在一起说。
所以这里我们重点谈的还是在主流配置(ps5,xbox,rtx3060)上能跑的比较溜的情况下的画面;
这里avatar就是一个属于比较务实的,面向console和大盘pc配置的:

Operating system Windows 10, Windows 11 (64-bit versions)
Processor AMD Ryzen 5 5600X @ 3.7 GHz, Intel Core i5-11600K @ 3.9 GHz, or better
RAM 16 GB (running dual-channel mode)
Video card AMD Radeon RX 6700 XT (12 GB), NVIDIA GeForce RTX 3060 Ti (8 GB), or better
Hard drive 90 GB available storage (SSD)
DirectX version DirectX 12

IGN这里的评测(https://www.youtube.com/watch?v=fG3BkxN4ji0)来看:
3080,4k,全高配,绝大多数也可以60fps;

主要技术

gi

RayTraced GI

  • probe做radiance cache
  • screen space去ray trace一段距离,如果miss就会使用probe里的radiance cache
  • 有反射:ssr混合ray traced reflection,有些地方也是用cubemap
  • dxr 1.1, inline比较重要

这点看来是比ddgi这种纯的probe based的要有更高的精度,其实也就是lumen类似的级别;
ray有guided特性,但是还不是restir(restir相关的digital foundry有问,这个相关的massive有研究以及在研究,但是没有实际性投入使用)

raytraced的时候,一些小的emissive的surface会跳过;

BVH

  • 是用low lod的geometry来做的bvn,材质相对简单,降低了shader variety,当然这个不好的地方就是反射时候会比较糙
  • 也不是所有的geometry都会进bvh,这个最终由TA决定
  • contact shadow有

在这里插入图片描述

render pipeline

  • 使用了大量的async compute:volumetric,probe raytracing&lighting
  • console上使用了mesh shader,也就是把mesh分成meshlet,然后花式GPUDriven(culling,occlusion和cmd submit);pc上担心兼容性问题所以没有用mesh shader(撇嘴)
  • 没有mesh shader的时候也尽量GPUDriven,这个已经标配了,没啥好多说的
  • pso的问题一直比较头疼,3G大小的pso,也没什么办法,这个真的应该优化下(@微软)

audio

问到开发者说什么事感觉比较nb的,说是音频,用了GPU的Raytracing来做音频的传递,所以整个propagation比较真实;

destruction & PCG

  • destruction:预切的碰撞,然后simulate,包括植被
  • pcg:大量的东西都是pcg的,这里的关键就是平衡pcg和手摆,一些poi就是pcg就好了;

misc

  • 其他的体积云也说到了,不过效果似乎一般,就不多说了;

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

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

相关文章

使用Hibernate 4,JPA和Maven的架构创建脚本

这种情况很简单–您想要在构建应用程序时生成数据库模式创建脚本(然后在目标数据库上执行脚本),这对于Hibernate 3来说相对容易,因为有 hibernate3-maven-plugin ,但是与Hibernate 4不兼容。当然,对于每个新…

iOS 启动连续闪退保护方案

版权声明:本文由刘笑江原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/79 来源:腾云阁 https://www.qcloud.com/community 一.引言 “如果某个实体表现出以下任何一种特性,它就具备…

实战Java内存泄漏问题分析 -- hazelcast2.0.3使用时内存泄漏 -- 2

hazelcast 提供了3中方法调用startCleanup:第一种是在ConcuurentMapManager的构造函数中,通过调用node的executorManager中的ScheduledExecutorService来创建每秒运行一次cleanup操作的线程(代码例如以下)。因为这是ConcuurentMapManager构造…

oracle 11203 ora32701,11G RAC ORA-32701 参考学习

节点1:Wed Feb 13 16:08:06 2019Errors in file /u01/app/oracle/diag/rdbms/testdb/testdb1/trace/testdb1_dia0_9267.trc (incident1248083):ORA-32701: Possible hangs up to hang ID4 detectedIncident details in: /u01/app/oracle/diag/rdbms/testdb/testdb1/…

使用@OrderBy对Spring Data MongoDB集合进行排序

这是关于调整和增强Spring Data MongoDB功能的第三篇文章。 这次,我发现我错过了一个JPA功能– OrderBy批注。 OrderBy指定在检索关联值时集合值关联的元素的顺序。 在本文中,我将展示如何使用Spring Data MongoDB使用OrderBy批注实现排序 。 用例 对…

@SuppressLint(NewApi)和@TargetApi()的区别

转自:http://blog.csdn.NET/wbshuang09/article/details/44920549在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告,解决方法是在方法上加上SuppressLin…

零基础自学编程前需要知道的知识

你是否适合编程?学习编程后能做什么?如何选择编程语言?有哪些免费的线上学习网站推荐?今天这篇好文将那些自学编程前需要了解和思考的问题都记录下来,希望能给那些刚刚开始或正准备自学编程的朋友们带去一些启发。 你是否适合自学编程 自学编程会是一个漫长而艰…

oracle系统库名,Oracle 札记之 一:数据库名,数据库实例名,数据库域名,操作系统环境变量...

数据库名是用于区分数据库的一个内部标识,是以二进制方式存储在数据库控制文件中的参数。数据库创建之后不能再修改这个参数。数据库创建后,它被写入数据库参数文件pfile或Spfile中。格式如下:...db_name"orcl"db_domaindbcenter.t…

用于基于SWT的应用程序的RichText编辑器组件

本文将完成使用SWT实现我们自己的RichText编辑器组件的任务。 在为我的一位客户开发基于桌面的应用程序时,我遇到了这样一个可视化组件的需求,并希望添加一项功能,以允许用户使用粗体,斜体,删除线等功能来写富文本注释…

Eclipse设置黑色主题

1点击help--->install new software 2输入 http://eclipse-color-theme.github.com/update 3下载安装eclipse color theme插件如下图 4完成后点击windows--->preferences------>Appearance下多了一个Color Theme 5,点击选择喜欢的主题即可,也可以自己下载主…

wcf rest系列文章

http://www.cnblogs.com/artech/archive/2012/02/15/wcf-rest.html 需要注意的是,发布的服务,可以在web behavior中指定显示help页面。 http://localhost/ApplicationName/ServiceName.svc/help 需要注意的是,访问.svc的页面一定不要多加/;否…

登录:应用程序错误通知

几个月前,当我进行大型应用程序重构时,发现用于记录日志的基于log4j的代码确实令人讨厌,重复了数百次: if (LOG.isDebugEnabled()) {LOG.debug("Logging some stuff " stuff); }我想摆脱isXXXEnabled,这就…

win10 oracle怎样卸载,Win10系统卸载Oracle 11g数据库的方法

说起Oracle 11g数据库编程人员没有一个不知道的,虽然它很好用,但是有时候我们也会想去卸载它,那么系统城win10纯净版怎么卸载Oracle 11g数据库呢?不知道的朋友赶紧看看小编整理的卸载Oracle 11g数据库的方法吧!具体卸载…

.net 连接数据库

""符号是防止将后面字符串中的"\"解析为转义字符. using System.Data; using System.Data.SqlClient; ... string strConnection"user idsa;password;"; strConnection"initial catalogNorthwind;ServerYourSQLServer;"; st…

mysql DCL数据控制语言

-- 维护性操作 都是在cmd下操作的连接数据库: 本机:mysql [-h localhost] -u account -p 远程:mysql [-h remote_ip] -u account -p 显示当前所有数据库:show databases; 切换数据库:use db_name; …

如何分析线程转储–线程堆栈跟踪

本文是“ 线程转储”分析系列的第5部分。 到目前为止,您已经了解了线程的基本原理以及它们与Java EE容器和JVM的交互。 您还学习了HotSpot和IBM Java VM的不同线程转储格式。 现在是您深入分析过程的时候了。 为了使您能够从线程转储中快速识别问题模式,…

linux想要ping需要开启哪个端口,linux下iptales配置

linux iptables存放位置/etc/sysconfig/iptables[roottp ~]#iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT[roottp ~]#iptables -R INPUT 4 -s 172.17.99.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT[roottp ~]#iptables…

设计模式学习笔记(十三:原型模式)

1.1概述 用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。这就是原型模式的定义。 在某些情况下,可能不希望反复使用类的构造方法创建许多对象,而是希望使用该类创建一个对象后,以该对象为原型得到该对象的若干个…

翻译的一篇关于学习编程语言的小文章

Top programming languages to get a job in Toronto in 2017 在程序开发人员和软件工程师中最容易被提及的问题之一就是:“我要学的下一门编程语言该是谁?” 我想去选一个编程语言,我希望你能给我一些关于经常使用到的编程语言的建议&#x…

从linux内核启动,学习Linux内核启动过程:从start_kernel到init

一、实验步骤:1:运行menuos:a)cd LinuxKernel/b)qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img启动后启动了MenuOS。2:使用gdb调试跟踪menuos内核启动和运行过程;a)qemu -kernel linux-3.18.6/arch/x86/bo…