光线追踪技术 清华大学 pdf_作为游戏界最新的图像渲染技术,光线追踪的好处以及它面临的困境...

2023-10-27

说起今年最受关注的显卡,那么无疑是AMD即将发布的Big Navi显卡以及NVIDIA的RTX30系列,RTX30系列GPU是7nm工艺的安培GPU,它将是12nm图灵GPU的继任者,除了升级图形架构之外,RTX光线追踪技术也会继续升级。

光线追踪技术是NVIDIA在2018年刚刚开始使用的新一代图形渲染技术,仅搭载在它旗下的RTX20系列高端显卡上。这些光追显卡一经发布便受到了各路游戏爱好者们的喜爱,NVIDIA也是不断地去吹捧拥有光线追踪技术的显卡可以让游戏画面变得更好。

那么问题来了,什么是光线追踪,我们为什么需要光线追踪,光线追踪这个技术又有什么缺点。

什么是光线追踪

光线追踪说白了就是一种在2D屏幕上呈现3D图像的方法,其实在很久之前就已经出现了,但是一般都被应用于动画电影中,最近才开始在游戏上使用这项技术。

由于电脑的性能是有上限的,所以为了减轻计算压力,应用于游戏上的光线追踪并不会捕捉几万亿条来自各个光源的光线,而是只取其中的极小一部分。打个比方,我们假设我们的眼睛是一个虚拟相机,以它为起点,穿过一个像素,然后看到像素背后的物体,最后回到场景里的光源。而且为了增加真实性,如果反射光线的物体会吸收或者漫反射光线的话,比如一些石头、树干、草丛之类的,光线追踪算法会将这些新增的光线考虑进去,这样所有的折射和阴影效果都能够准确的显示出来。

我们为什么需要光线追踪技术

我们之所以需要光线追踪技术,是因为它优于传统的游戏绘制或者说图像渲染方式。在光追显卡没有发售之前,游戏所使用的图像渲染方式是一种叫做光栅化的技术,虽然现在光追显卡的数量依旧不多,大部分人的显卡依旧在使用光栅化。

光栅化这个技术的作用是通过游戏的代码让GPU用多边形绘制一个3D场景,这些2D的多边形一般都是三角形,它们组成了我们看到的大部分视觉元素。当场景绘制完成后,再将这个场景光栅化成单独的像素,经过着色器处理,通过改变单个像素的颜色、材质、光照效果,来渲染出完整的一帧3D场景。然后每秒重复这个过程几十遍,这个次数主要取决于电脑的性能上限,最终我们就可以得到流畅的游戏体验。

虽然游戏领域已经使用光栅化这个技术很多年了,它过去的表现也着实令我们满意。但是通过将3D图形转换到2D的屏幕,再利用着色器来估计光照的效果,这种做法有着天生缺陷,因为这样很难追踪光线在一个场景内具体是如何传播和反射的。而光线追踪在这方面的效果要好很多,所以才需要开始使用光线追踪技术,其实现在的很多动画电影都是使用的光线追踪技术,比如大家喜欢的大白、驯龙高手之类的动画片。

光线追踪技术的缺点

既然电影中已经使用了很多年光线追踪技术,那么为什么它最近才开始被应用于游戏中呢?这牵扯到光线追踪技术的缺点,那就是它非常需要计算量。

电影之所以能使用光线追踪技术,那是因为在那些大制作的电影中,制作方可以花大价钱去大型服务器集群里面渲染这些效果和画面,这个过程可以花费数月甚至数年。这样做的好处是可以得到更加真实的画面,因为计算量够高,所以它们可以从容的去模拟各个光子,以及来自各个光源的大量光线和这些光线不同角度的反射效果。经过了这些流程所处理出来的图像和视频,我们第一眼看过去都会觉得这是真实的照片或是视频,而非是电脑渲染出来的图像,而且即使我们知道了这不是真的,我们依旧要花很久才能看出来。

然而如果光线追踪的这个好处应用到游戏上,就成了缺点。

首先,我们的电脑配置不够强,即使是使用了目前性能最高的各种硬件也依旧不够,况且能用得起i9X系列和2080的人只是玩家中的极少数,我们更不能把服务器搬到家里。所以我们现在所知道的应用于游戏中的光线追踪技术,其实在很大程度上被削弱了,就像我们之前说的,应用于游戏中的光线追踪技术,只会追踪其中极少一部分光线,虽然效果依旧比光栅化好很多,但是终究是个遗憾。

其次,哪怕只是追踪极少一部分光线,依旧会对电脑的性能有很高的要求,更何况现在的游戏玩家都会追求高刷新率,为了满足高刷新率的需求,电脑每秒钟需要渲染的图像数量也开始成倍增加。因此,有与没有光追,哪怕质量相差不多,对电脑的需求却会相差较大。

光线追踪的普及道路上,最大的障碍应该是游戏本身,目前支持光线追踪的游戏并不算多,选择光线追踪显卡的性价比并不高。而且支持光线追踪的游戏大多是一些大作,就算不使用光线追踪就已经需要很高的电脑性能才能流畅运行,再加上光线追踪继续加重性能的负担,所以想要得到舒适且流畅的游戏体验,就需要一台性能比不支持光线追踪的电脑更强的机器。因此,目前能够体验光线追踪技术的人,只是玩家群体中的极少一部分。


在未来,支持光线追踪技术的显卡会越来越多,除了已经拥有这类显卡的NVIDIA,AMD也已经有了专业级的光线追踪方案。总的来说,在硬件上各大厂家已经做到位了 ,我们也只能希望游戏厂家,能不能再努努力,让更多游戏能够支持光线追踪,免得我们最后是为了一些永远用不上的功能多花了冤枉钱。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

光线追踪技术 清华大学 pdf_作为游戏界最新的图像渲染技术,光线追踪的好处以及它面临的困境... 的相关文章

  • 微服务之间调用的异常应该如何处理

    前言 在分布式服务的场景下 业务服务都将进行拆分 不同服务之间都会相互调用 如何做好异常处理是比较关键的 可以让业务人员在页面使用系统报错后 很清楚的看到服务报错的原因 而不是返回代码级别的异常报错 比如NullException Ille
  • 都是写代码,别人是IT精英,而你只配当程序“猿”?

    热点追踪 深度探讨 实地探访 商务合作 作为新一代信息技术的代表 区块链成为2020年政府工作报告的高频词汇 全国大多数省区市均重点提及到区块链 Part 1 产业区块链袭来 截至目前 在全国29个已召开两会的省 自治区 直辖市 中 区块链
  • javaScript基础面试题 ---this指向+原型的考题

    function Foo getName function console log 1 return this Foo getName function console log 2 Foo prototype getName functio
  • Linux开发

    目录 Linux开发工具 Linux编辑器 vim使用 1 vim的基本概念 2 vim的基本操作 3 vim正常模式命令集 4 vim末行模式命令集 Linux编译器 gcc g 使用 1 背景知识 2 gcc如何完成 Linux调试器
  • 把连续动态bmp转换为avi 分类: 文件格式 ...

    把动态bmp24转换为avi BYTE tmp buf 1024 768 4 生成avi void BMPtoAVI CString szAVIName CString strBmpDir CFileFind finder strBmpDi
  • 项目实训涉及的获取数据库数据,导出生成Excel表格(使用Nutz框架)

    前提要连接自己的数据库 java bean 就不写出来了 Service层 导出数据到Excel param ids return public boolean exportMeeting Integer ids List
  • matlab:sin函数

    可以发现sin pi 或者cos 1 2 pi 不等于0 初步推测应该是浮点运算的精度问题 由于sin cos tan等输入的参数为弧度制 而一般习惯角度制 所以解决的办法之一是用另外的函数 sind cosd tand等输入参数为角度制
  • Golang首字母大小写的意义(import package解析)

    1 大写相当于public 2 小写相当于private 注意 这个public和private是相对于包 go文件首行的package 后面跟的包名 来说的 3 1这个包名相对于它所处的实际的文件系统目录有什么关系呢 有关系 一般这个包名
  • Pycharm中文字体变成繁体解决方法

    文章目录 引言 原因分析 解决问题 引言 最近用pycharm的时候发现输入中文时字体突然变成繁体了 试了网上各种方式没有解决 最后发现是程序字体的问题 原因分析 因为是打代码 pycharm用的是英文字体 英文字体也可以打中文 但是一般会
  • 专升本——英语基础知识二

    八大成分 主语 谓语 宾语 定语 状语 补语 同位语 一 主语 动作的发起者 I love you I 是代词 代词做主语 The dog is cute The dog 是名词 名词做主语 Seven is my lucky Seven是
  • SimpleDateFormat时间不正确的问题

    开发遇到一个问题 new Date 获得的当前系统时间和经过SimpleDateFormat转换格式的时间不对应 相差一个小时 Date now new Date System out println now SimpleDateForma
  • Linux中将2块新增硬盘合并成一块,并挂载目录

    1 创建pv pvcreate dev sdb 硬盘1 pvcreate dev sdc 硬盘2 2 创建vg vgcreate 自定义LVM名称 硬盘 先使用硬盘1创建vg lvm data vgcreate lvm data dev s
  • RPM软件包管理与使用详解

    文章目录 1 概述 2 软件包命名规范 3 rpm包管理 3 1 rpm包安装 3 2 rpm包查询 3 3 rpm包升级 3 4 rpm包卸载 3 5 rpm包校验 3 6 rpm数据库重建 1 概述 什么是rpm包 rpm包是linux
  • 【VS

    1 CRT SECURE NO WARNINGS include
  • 小程序的 生命周期回调函数onLoad,onReady,onShow

    onLoad 只触发一次 页面加载时触发 从二级页面回来时不会触发 使用navigateBack 回跳是可以重新执行onLoad 以及tabBar首次会执行onload 第二次进入onload不会执行 可以传递参数 onShow 当小程序启
  • Jupyter Notebook的简单使用

    欢迎来到机器学习的世界 博客主页 卿云阁 欢迎关注 点赞 收藏 留言 本文由卿云阁原创 本阶段属于练气阶段 希望各位仙友顺利完成突破 首发时间 2021年3月3日 希望可以和大家一起完成进阶之路 作者水平很有限 如果发现错误 请留言轰炸哦
  • 虚拟机Ubuntu20.04 网络连接器图标开机不显示怎么办

    执行以下指令 sudo service network manager stop sudo rm var lib NetworkManager NetworkManager state sudo service network manage
  • Vue3的Teleport是什么?

    首先 Vue3的Teleport是一种魔法般的功能 它可以让你的组件瞬间移动到另一个位置 就像是现实生活中的瞬间传送器一样 但是它只适用于Vue3哦 你可能会想 这不是和Vue2的插槽差不多吗 NO NO NO 你可错了 Teleport和
  • JavaScript中的异步编程

    当我们在编写JavaScript代码时 经常会遇到需要执行长时间运行的任务的情况 例如从服务器获取数据或进行复杂的计算 在这些情况下 我们不希望阻塞用户界面 因为这会使网站看起来卡顿 甚至无响应 为了避免这种情况 我们需要使用JavaScr

随机推荐

  • js正则验证大全(你想要的这里都有)

    原文地址 https w55776 blog csdn net article details 125967169 去除html标签使用场景 不去除的样式展示 this stationList data map item gt const
  • 若干经典基础算法题目练习

    练习1 判断是否为素数 ConsoleAppIsPrime1 cpp 定义控制台应用程序的入口点 函数功能 判断一个输入的数是否为素数 函数原形 bool Prime int x 参数 int x 将要判断的数 返回值 bool型变量 判断
  • MySQL错误日志(Error Log)详解

    错误日志 Error Log 是 MySQL 中最常用的一种日志 主要记录 MySQL 服务器启动和停止过程中的信息 服务器在运行过程中发生的故障和异常情况等 作为初学者 要学会利用错误日志来定位问题 下面介绍如何操作查看错误日志 启动和设
  • RabbitMQ消息转换器

    文章目录 RabbitMQ消息转换器 RabbitMQ消息转换器 在SpringAMQP的发送方法中 发送消息和接受消息的类型都是Object 也就是说 我们可以发送任意对象类型的消息 SpringAMQP都会帮我们把发送的消息序列化为字节
  • 爬虫的学习总结

    这里是我对最近几次课程的爬虫学习总结 1 学习了Python的爬虫原理 在此基础上安装了urllib requests BeautifulSoup等库 并学习了基本语法 为后续爬虫作业打下基础 2 完成第一次课上练习 对天气的爬取 巩固知识
  • k8s-多节点部署efk-dial tcp 172.20.2.134:5601: getsockopt: connection refused

    异常信息 Error dial tcp 172 20 0 145 5601 getsockopt connection refused Trying to reach http 172 20 0 145 5601 分析 部署好efk后 通过
  • An error occurred during installation: No such plugin: cloudbees-folder

    在启动jenkins时候报错 An error occurred during installation No such plugin cloudbees folder 字面意思是没有找到cloudbees folder这个插件 有一些文章
  • python爬虫入门教程(非常详细),超级简单的Python爬虫教程

    一 基础入门 1 1什么是爬虫 爬虫 spider 又网络爬虫 是指向网站 网络发起请求 获取资源后分析并提取有用数据的程序 从技术层面来说就是 通过程序模拟浏览器请求站点的行为 把站点返回的HTML代码 JSON数据 二进制数据 图片 视
  • jdbc的用处

    概念 JDBC Java DataBase Connectivity Java数据库连接技术 具体讲就是通过Java连接广泛的数据库 并对表中数据执行增 删 改 查等操作的技术 如图所示 此前我们学习过SQL后 可以通过 Navicat S
  • String index out of range: 6 报错

    debug发现是字符串越界 具体原因是程序中没判断是否需要CreateDate属性 而这个属性被拉去转化成字符串 当传入的article对象中没有给该字段赋值 即为null 被转化成了字符串 null 后续对该字符串进行截取 长度自然不够
  • java stream流递归实现树形结构

    sql 测试数据 DROP TABLE IF EXISTS pms category CREATE TABLE pms category cat id bigint 20 NOT NULL AUTO INCREMENT COMMENT 分类
  • 职业规划指导:消化这些技巧能让你升值一倍!!!

    序言 在担任公司高管的几年间 我面试过数以百计的各个层面的员工 其中最让我感到遗憾的一个现象就是很多人有着非常好的素质 甚至有的还是名校的毕业生 因为不懂得去规划自己的职业 在工作多年后 依然拿着微薄的薪水 为了一份好一点的工作而奔波 很多
  • 华为机试真题:消息队列合并

    http t csdn cn vFTTJ
  • 无向图的遍历_大鲨说算法与数据结构图(一)

    图系列 一 1 相关概念 应用 图应用很广泛比如社交网络 地图导航 游戏开发等 有向图 入度 出度 比如上面的有环3节点入度是2出度是1 无向图 其实类似每一条边有2条入度和出度的有向图 有权图 边可以拥有权值 连通图 如果无向图中任意2个
  • Java 8 之函数式接口史上最全详解

    转自 Java 8 之函数式接口史上最全详解 函数式接口简介 函数式接口 指只有一个抽象方法的接口 函数式接口 可以被隐式转换为Lambda表达式 函数式接口 可以用 FunctionalInterface注解标识 此注解非必须使用 常用函
  • 电子设计之硬件开发流程和前辈的指导

    硬件开发流程 图1 硬件开发流程 图2 硬件开发流程简图 开发流程经验 图2 硬件开发流程框图2 基本思想是使每一步流程具有严密的逻辑 每一步流程可操作 每一步流程的输入 操作及输出受控 1 硬
  • Groovy List 常用操作

    1 集合克隆 def list1 a b c def list2 list1 clone 2 list遍历 a 使用each进行遍历 def list 1 2 3 list each println Item it it是是与当前元素对应的
  • SQL中的in、not in语句遇到null时的坑点

    背景介绍 前两天做问题排查的时候 写了一条sql 但是并没有如期地查到数据 确实是有数据的 SQL如下 SELECT tar FROM tb account relation tar WHERE tar customer id NOT IN
  • 清华攒局8个ChatGPT狼人杀,心机伪装都在这一局里,清华:我没教过

    克雷西 发自 凹非寺量子位 公众号 QbitAI 除了玩电子游戏 人类的 社交神器 狼人杀也被AI给学会了 8个ChatGPT 坐 在一起 生动地扮演出了五种角色 和真人如出一辙 这个最新的人类社会模拟实验 由清华和中关村实验室共同完成 从
  • 光线追踪技术 清华大学 pdf_作为游戏界最新的图像渲染技术,光线追踪的好处以及它面临的困境...

    说起今年最受关注的显卡 那么无疑是AMD即将发布的Big Navi显卡以及NVIDIA的RTX30系列 RTX30系列GPU是7nm工艺的安培GPU 它将是12nm图灵GPU的继任者 除了升级图形架构之外 RTX光线追踪技术也会继续升级 光