《黑神话:悟空》火出圈儿,揭秘幕后实时渲染技术

news2024/11/16 1:45:44

游戏一度因被贴上“不务正业”、“虚度光阴”的标签而备受争议,然而随着该产业的蓬勃发展,一些游戏被纳入体育竞技项目,如今游戏领域吸引越来越多人的目光。当下火爆全网的《黑神话:悟空》,凭借炫酷逼真的3D效果和独特的东方美学实力出圈,连央视、新华网等官媒都纷纷点赞。

今天,我们将深入探讨这款游戏开发中一个至关重要的技术——实时渲染技术。根据该游戏开发公司官网信息显示《黑神话:悟空》使用的是虚幻引擎(Unreal Engine 5)。值得一提的是,飞思实验室RflySim工具链与《黑神话:悟空》使用相同的三维场景开发工具Unreal Engine(虚幻引擎),同样能实现高度逼真的仿真效果。

渲染

实时渲染技术详解

渲染(Rendering)指将三维数据通过计算和绘制输出为屏幕上二维位图的一个过程。实时渲染(Real-time Rendering)是指计算机边计算画面边将其输出显示,其本质就是把三维数据实时地计算出来并实现输出,这种方式的典型代表软件有unity引擎和Unreal Engine(虚幻引擎)。

实时渲染的优点:实时控制调整场景内的物体属性。

实时渲染的缺点:要受系统的负荷能力的限制,必要时要牺牲画面效果(模型的精细程度、光影的精细程度、贴图的精细程度)来满足实时系统的要求。

RflySim工具链中的RflySim3D软件是基于Unreal Engine 4开发的一个可交互、实时可视化的三维显示程序,它集成了无人系统仿真所需的大部分场景元素,并提供了相应的交互接口,且这些交互接口除了内置的控制台命令和快捷键外,还包括外部程序调用的方式。同时,工具链中的RflySimUE5则是基于Unreal Engine 5开发的三维显示程序,其功能与RflySim3D相同,但RflySimUE5可实现更高的分辨率渲染、更好的物流模拟以及更快的迭代速度,当然这对于您的电脑性能有更高的要求。

一个通用计算机图形系统主要包括 6 个部分,分别是输入设备、中央处理单元、图形处理单元、存储器、帧缓存和输出设备。

图片

实时渲染技术的一个典型绘图过程如下:首先,原始数据在CPU中进行处理,转化为具有特定结构的几何信息,例如顶点坐标、法线、纹理坐标等,这些几何信息随后被传递到GPU中进行进一步的处理。在GPU中,渲染管线会经历多个步骤,通常包括顶点着色、几何处理和片段着色等阶段,最终生成光栅化后的像素数据。这些像素数据会被存储在帧缓冲区中,最后经过后处理步骤,渲染并显示到屏幕上,形成最终的图像。

图片

其中,渲染管线是一个将三维场景数据转化为二维图像的流程。首先,应用阶段在CPU上处理场景中的几何信息,接着几何阶段在GPU上进行顶点着色、图元装配和裁剪,将几何数据转换为屏幕坐标系中的图元。然后在光栅化阶段,将这些图元转换为像素或片段,并通过片段着色计算出每个像素的最终颜色。而这一步也是实时渲染的关键步骤,GPU的性能直接影响渲染的速度和效果,因此,渲染效果与GPU的性能成比关系。

针对实时渲染技术

能问题的解决策略

实时渲染技术性能问题大体上可以分为两类:一类是渲染效率问题,另一类是计算问题。渲染效率问题指图形系统在绘图部分所花费的时间,而计算问题则是指绘图之外的其他处理所花费的时间,包括图形数据的计算、正常的程序逻辑处理等等。

针对上述存在的性能问题,在类似于《黑神话·悟空》的3A(高成本、高体量、高质量)大作游戏中,一般采用如下几种策略来解决:

1. 优化图像管线。降低过度绘制,使用视锥体剔除(Frustum Culling)和遮挡剔除(Occlusion Culling)技术,避免渲染被遮挡或超出视野的图像。批处理渲染,通过合并多个绘制调用,减少GPU的状态切换和绘制开销。

2. 高效的内存管理。纹理压缩,使用纹理压缩技术(如DXT、ETC)来减少显存占用和带宽需求。资源流式加载,动态加载和卸载资源,避免一次性加载整个场景的数据,减少内存压力。

3. 抗锯齿和后处理优化。选择性应用抗锯齿,根据需求和性能考量选择适合的抗锯齿技术,如FXAA(快速近似抗锯齿)或MSAA(多重采样抗锯齿)。后处理效果优化,控制后处理效果的复杂度和使用频率,避免对性能造成过大影响。

图片

4. 多线程和异步计算。任务并行化,利用多核CPU进行任务并行处理,包括物理模拟、AI计算、场景管理等,减轻主线程负担。GPU计算,将部分计算任务(如粒子系统、物理模拟)交给GPU处理,利用其并行计算能力。

5. 优化算法和数据结构。高效算法,使用优化的算法和数据结构,降低计算复杂性和提高处理效率,例如使用空间划分结构(如四叉树、八叉树)来优化碰撞检测。预计算,对于某些复杂计算,使用预计算结果或缓存机制减少实时计算开销。

6. 针对不同的电脑配置,此类游戏还会在比较复杂的、渲染任务重的显示场景,加入部分特效的将实时渲染的缺陷画面过渡掉,从而给观众带来更加完整、逼真、流程的显示效果。

通过上述策略,此类3A大作游戏能够在确保高质量视觉效果和艺术表现的同时,优化性能,提升玩家的沉浸感和整体体验。

最后,借用《黑神话:悟空》主创冯骥的一句话结束本期技术分享:“最后让你痛苦的不是远方的高山,而是鞋底的沙子,沙子是无穷无尽的,但是你想走到那座山,就得忍受这样的过程。”

无论你是资深的开发者还是初入行业的新手,RflySim工具链都将是您踏上“取经路”最可靠的“伙伴” 。让你鞋里的沙子更少些,一起共赴你心中那座“高山” !

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

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

相关文章

wordpress 页面URL自动跳转到图片地址?

比如你打开关于我们页面: yourdomain.com/about-us/ 结果自动跳转到了: yourdomain.com/wp-content/uploads/2024/08/about-us.jpg 刚开始以为是不是哪里设置了自动跳转,比如YOAST SEO里,但是结果发现不是。 结果发现&#x…

好用的运动耳机品牌推荐?几款开放式蓝牙耳机推荐

论好用的运动耳机推荐,我觉得开放式运动耳机是个不错的选择。主要是因为下面几点: 1舒适度:开放式耳机不封闭耳朵也不塞入耳朵耳道,所以就能够减少长时间佩戴可能造成的压耳感以及不舒服的体验。 2安全性:因为开放式…

鸿蒙(API 12 Beta3版)图形【AR Engine简介】 AR引擎服务

AR Engine(AR引擎服务)是一个用于在HarmonyOS上构建增强现实应用的引擎,提供了运动跟踪、环境跟踪和命中检测等空间计算能力。通过这些能力,您的应用可以实现虚拟世界与现实世界的融合,给消费者提供全新的视觉体验和交…

【数据结构初阶】二叉树--堆(顺序结构实现)

hello! 目录 一、实现顺序结构二叉树 1.1 堆的概念和结构 1.2 堆及二叉树的性质 1.3 堆的实现 1.3.1 创建堆的结构 1.3.2 初始化和销毁 1.3.3 入堆向上调整算法(创建一个小堆) 1.3.4 出堆向下调整算法(小堆&#x…

linux组合命令:删除一个目录树中所有的空目录(包括嵌套空目录)

目录 一、需求 二、实现方式 1、结合使用 find 命令删除空目录 (1)删除目录的方式 (2)只删除空目录 2、更高效的方法 (1)使用 find 搭配 -delete (2)实际效果 三、相关命令…

STM32MP157_uboot_命令使用

STM32MP157_uboot_命令使用 前言: 进入 uboot 的命令行模式以后输入“help”或者“?”,然后按下回车即可查看当前 uboot 所支持的命令,图 中只是 uboot 的一部分命令,具体的命令列表以实际为准。图中的命令并不是 uboo…

SpringBoot2:IOC容器的相关操作以及常用注解说明

一、查看容器中的Bean实例 查看springboot中的容器实例,首先,我们要获取到IOC容器。 //1、返回我们的IOC容器ConfigurableApplicationContext run SpringApplication.run(MainApplication.class, args);//2、查看容器里面的组件String[] names run.ge…

线性代数基础(2)——特征值和特征向量

第一节博客已经整理了求导的公式,一些常用的概念。链接如下:高等数学基础(1)-CSDN博客。 第二节博客整理了微积分的公式及其相关概念。链接如下:高等数学基础(2)——微积分-CSDN博客 第三节博客…

JavaWeb JavaScript ⑩ 日程管理 第一期

自我消耗,敏感是我, 明媚是我, 我横跳在不同的情绪中 —— 24.8.31 一、登录页及校验 1.校验账号格式 // 校验账号格式function checkUsername(){// 定义正则表达式表示字符串规则var usernameReg /^[a-zA-Z0-9]{5,10}$/;// 获取用户名输入…

96.WEB渗透测试-信息收集-Google语法(10)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:95.WEB渗透测试-信息收集-Google语法(9) • site : x…

【硬件操作入门】3--同步与异步、半双工传输、UART硬件介绍、bps速率计算

【硬件操作入门】3–同步与异步、半双工传输、UART硬件介绍、bps速率计算 文章目录 【硬件操作入门】3--同步与异步、半双工传输、UART硬件介绍、bps速率计算一、同步与异步1.1. 概念1.2 同步信号1.3 异步信号1.4 举个例子:红外遥控器解码器(异步&#x…

一分钟学会系列-1电烙铁(焊台)

目录: ‌1、概述 2、电烙铁的种类 3、焊接步骤 4、电烙铁的保养 ‌1、概述 电烙铁‌是一种电子制作和电器维修中常用的工具,主要用于焊接元件及导线。使用电烙铁时,需要注意安全,并采取适当的预防措施,如使用风扇…

最新ssl证书在线申请源码+网站ICP备案查询源码

最新ssl证书在线申请源码网站ICP备案查询源码 经过精心调试和修复,我们对源码进行了优化,确保了证书价格的准确显示。现在,您可以放心使用我们的在线生成网站源码,完整地展示证书价格,并在生成证书时提供准确的价格计…

SQL-函数

1、字符串函数 # 字符函数 select concat(hello , mysql!); select lower(HELLO); select upper(hello); select lpad(01,5,-);# 左填充 select rpad(01,5,-);# 右填充 select trim( hello mysql ! );# 去除前后空格 select substring(hello mysql!,1,7);# 截取一部分字符前7…

【教学类-35-21】20240901 中2班描字帖(学号+姓名、虚拟姓名、杨任东竹石体 Regular)

背景需求: 8月底通知我成为中2班的班主任,为了快速识别幼儿的脸、姓名、学号,再次制作描字帖,并拍照。 最近做的一份字帖是中4班描字帖 【教学类-35-20】20240328 中4班描字帖(学号姓名 A4竖版2份 横面)…

--- 数据结构 链表 --- java

与顺序表相比,链表的最大优点就是不会存在空间的浪费 链表是通过将一个一个储存数据的节点(对象)连起来(通过记录下他们的地址),这些数据在逻辑上就是线性的,但在物理上不是,因为地…

[Leetcode 216][Medium]组合总和 III--回溯(组合问题)

目录 一、题目描述 二、整体思路 三、代码 一、题目描述 原题地址 二、整体思路 对于组合问题,首先要想到回溯法。那么可以根据回溯法模版进行设计。 void backtrace(元素){if(满足题目要求的条件){保存目前路径/状态/结果;return;}for循环,往目前状态相邻的所…

9-8 束搜索

贪心搜索 穷举搜索 束搜索 小结 序列搜索策略包括贪心搜索、穷举搜索和束搜索。 贪心搜索所选取序列的计算量最小,但精度相对较低。 穷举搜索所选取序列的精度最高,但计算量最大。 束搜索通过灵活选择束宽,在正确率和计算代价之间进行权衡…

栈和队列——用队列实现栈

题目中给出,让我们应用两个队列实现栈,首先我们先来想一下,栈是先进后出,队列是先进先出。所以我们就需要应用两个队列来回导才能实现栈的特点。因为这道题是基于队列来实现的,所以在下方若有看不懂的函数名称可以去栈…

Java 入门指南:Java 并发编程 —— Synchronized 实现悲观锁(Pessimistic Locking)

悲观锁 悲观锁(Pessimistic Locking)是一种悲观的并发控制机制,它基于悲观的假设,即并发冲突会时常发生,因此在访问共享资源(如数据库记录或共享变量)之前,会先获取独占性的锁&…