光追是什么?

卫生所2023-02-19  29

光追是指光线追踪。光线跟踪是一个在二维(2D)屏幕上呈现三维(3D)图像的方法。

一个光线跟踪程序数学地确定和复制从一幅图像的光线的路线,但是方向相反(从眼睛返回原点).光线跟踪现在被广泛用于计算机游戏和动画,电视和DVD制作,电影产品中。

许多厂商提供用于个人电脑的光线跟踪程序,在光线跟踪中,每一个光线的路径由多重直线组成,几乎总是包含从原点到场景的反射,折射和阴影效应。

扩展资料:

光追的应用

微软新一代Windows Vista操作系统的发布,标志着电脑游戏也将步入DirectX 10时代,微软在这一代游戏接口中添加了很多更复杂、也更真实的3D效果。光线追踪(Ray Tracing)就是其中重要的新技术。

光线追踪是一种“来自几何光学的通用技术,它通过追踪与光学表面发生交互作用的光线,得到光线经过路径的模型”。

中学物理中就曾讲过光学知识,当光线投射到物体表面时,通常会同时发生3件事,那就是光被吸收、反射和折射。特别是当光被折射到不同方向时,光谱就会发生变化。

无论怎样,光线总会经过一系列的衰减最后进入人的眼睛,光线追踪就是要计算出光线发出后经过一系列衰减再进入人眼时的情况,特别是对第一人称的游戏来说,这种技术非常有助于提高游戏场景的真实感。

        要弄懂什么是光线追踪渲染,首先需要让我们有一种“世界观”的认识,那就是我们人眼所能看到的万事万物几乎都是反光或发光的,就连黑茫茫的宇宙也有微弱的微波背景辐射。如果我没有记错的话,目前人类所能制造的最黑的(几乎不反光的)物质,也只能吸收 98 %左右的光线,还是存在微弱的反光。这就是说,是物体总是会反光(或发光)的(不一定非得是金子),这就是光线追踪之所以成为可能的基本前提。而这些无论是直接发出的光,还是反射的光,最终射入我们的眼睛成像,就形成了我们“看到的世界”。那么基于这样的认识,我们就不难理解我们为什么能够看到这五彩缤纷的世界。光线追踪渲染的目的就是利用计算机图形技术(线性代数及仿射几何),在虚拟的 3D 场景中模拟(仿真)出几乎与人类观看客观真实世界一致的视觉效果。 所谓的实时光线追踪,就是随着摄像机视角的变动,后端需要实时发射追踪光线来重新计算光照信息 ,如果屏幕分别率很高,这个计算量是很大的,对 GPU 的性能要求是很高的,如果性能达不到游戏直接会卡死。

       光追渲染可以实现电影级画质的渲染。这也是传统的光栅化渲染无法简单的做到的。传统的光栅化渲染技术发展到今天,为了尽可能快的渲染出较真实的画质,其复杂度已经是当初的至少几何级数倍了,很多相关的渲染技术已经复杂到需要专业级数学知识才能理解和运用。当然有了光追渲染,不能简单的就去否定传统的光栅化渲染技术。虽然微软在其渲染光追渲染的文档中一开始就说“ 3D GraPhics 15 a Lie ( 3D 图形是一个谎言) " ,但光栅化渲染技术在相当长的一段历史时期内都是性能与画质折中后的优秀技术方案,甚至在实时光追可以实现的今天及未来的相当长的一段时间内,因为硬件性能的问题,光栅化渲染至少还要在我们的手机上奋战很长一段时间,也就是说两种渲染技术会在相当长的一段时间内并存。而未来实时光追渲染还将主要在高性能的 Pc 端崭露头角,因此建议大家对两种技术都要熟悉和了解。在光线追踪渲染中,并不是直接模拟一条条从光源射出的光线,看它经过如何的反射折射或直射等光学过程进入我们的眼睛,想象一下这样一来其实大多数光线都因为没有最终射入眼睛而浪费了,同时也浪费了很多计算资源,而这种浪费是完全没有必要的。真正的光线追踪则是反其道而行之:假设我们眼睛能够接收到什么光线,并将这些光线从眼睛中反向发射出来,先射到屏幕上,再从屏幕的像素射到场景中(这让我突然想起某位古希腊先哲在试图解释人类视觉原理时说人类眼睛中射出了无数的触手触碰到了物体,于是人类就有了视觉。在此向他老人家致敬! ) ,接着计算和追踪这些反着走的光线如何从屏幕上的像素上射出,再经过直射、折射或反射回到光源,如果光线回到了光源,那么这条从眼睛射出的光线就是可见的,我们就调用相关的着色程序为这个像素点着上颜色(未着色的就默认为黑色或天空背景颜色),当从眼睛中射出的所有光线都被着色(或默认色)完毕后,一副图像就完成了。这就是光线追踪的核心基本原理及其名称的来历。当我们能够在 1 秒钟内以超过 25 帧以上的速度实时来完成光线追踪渲染过程时,根据动画原理,我们就可以看到连续的画面了(有人称之为 4D 技术),这样一来就被称为实时光线追踪渲染了。如果再给这个过程加上人机交互及其他多媒体手段,那么 3D 游戏、 3D 高仿真设计等等也就可以实现了。其实从另一个方面来说,即使我们可能不了解实时光线追踪渲染,但是对于光线追踪渲染应该很不陌生了,因为几乎所有的运用了特效的电影作品都使用的是光线追踪渲染,并且大多数都是基于 CPU 进行渲染的,这些特效的渲染不是实时的,而是一帧画面就需要渲染几小时甚至几天时间,同时其渲染细腻程度也是我们现在所说的实时光线追踪渲染还无法达到的。

补充:


转载请注明原文地址:https://juke.outofmemory.cn/read/2982575.html

最新回复(0)