精华内容
参与话题
问答
  • 光线追踪入门

    2020-10-11 15:27:18
    这里同学们应该理解到的有一个点,第一光线追踪不是唯一的成像方式,第二它与传统的GPU成像或者说 计算机图形学里说的那些光栅化之类的从思路上就有区别,第三光线追踪是最简单的成像方式之一,大概你学完高中数学就...
  • 光线追踪

    千次阅读 2020-04-24 14:25:08
    蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术 全部论文训练计划章节见论文训练计划 下面的简介来自以前学《计算机图形学Opengl版》时整理的笔记,如有雷同请联系我备注出处。 为了增加空间感,一般会使用产生...

    蒙特卡洛光线追踪技术系列 见 蒙特卡洛光线追踪技术

    全部论文训练计划章节 见 论文训练计划

    下面的简介来自以前学《计算机图形学Opengl版》时整理的笔记,如有雷同请联系我备注出处。

    为了增加空间感,一般会使用产生阴影的全局光的效果。例如3D游戏的光照,是利用公式计算光照在物体表面产生的反射和漫反射以及镜面反射,然后再使用阴影算法做阴影补偿。但是这些方法计算的光照都是来自直接光源的,忽略了光的其他特性,比如反射,折射,散射等。优点是效率比较高,在很多基于视觉效果的算法中,会产生比较令人可信的图像。 

    光线追踪的前身是逆向光线追踪,模拟自然界的场景,从光源出发,跟踪每一根光线在场景中的传播。缺点是极其浪费时间,因为进行了大量对当前屏幕颜色不产生贡献的计算,因为场景中所有东西都要被计算,很多东西根本就看不到,所以降低了效率。 

    所以产生了新的思路:从摄像机发出一条条采样射线,逆向跟踪光线。 逆向的光线追踪从视点出发,向成像面发出光线,然后追踪每一条光线的传输。如果其中一条光线经过若干次反射折射后打到了光源上,则认为该光线是有用的,递归得计算成像颜色,否则就抛弃这条光线。这种算法一般用于电视动画制作中,可以产生相当真实的图像效果。但是缺点是仍然很耗时。光线追踪算法中的顶点亮度主要包括三个方面,由光源直接照射而引起的亮度,环境中其它物体的反射光和折射光在表面产生的镜面反射光亮度,环境中其它物体的反射折射光在表面产生的透射光亮度。 

    预设定的顶点漫反射颜色。显然,这一过程仅跟踪景物间的镜面反射光线和规则透射光线,忽略了至少经过一次漫反射之后光能传递,而且该算法中的物体表面属性只能是单一的,因而它仅模拟了理想表面的光能传递。 对于该算法的具体描述: 1 从视点出发,经过成像屏幕上的每一个像素向场景发射一条虚拟光线。2 求光线与场景最近的交点。 3递归跟踪。 (1)如果当前交点所在的物体表面为理想镜面,光线沿其镜面反射方向继续跟踪。 (2)如果当前交点所在的景物表面为规则透射表面,光线沿其规则透射方向继续跟踪。 

    递归结束无光亮结果: (1)光线与场景中的景物没有交点 (2)当前交点所在的景物表面为漫反射表面 (3)跟踪层次已经超过用户设定的最大跟踪层数 (4)所跟踪的光线对显示像素的光亮度的贡献小于一预先设定的阀值。递归得到光亮结果: 光线于光源相交,取得光亮度值,按递归层次反馈。 

    传统的光线追踪技术可以较好的表现出反射折射效果,也可以生成真实度比较高的阴影。但是他的光照都比较硬,无法模拟出非常细腻的柔化效果。 光线追踪需要对大量的光线进行多次与场景中物体的求交计算。如何避免这些求交计算成为光线追踪追求效率的本质。早期的光线追踪算法都是通过各种空间划分技术来避免无谓的求交检测,这些方法对于之后的理论同样有效,常见的空间划分方法分为两类,一类是基于网格的平均空间划分,一类是基于轴平行的二分空间划分。 

    简单介绍一下光线追踪的知识。虽然实现起来比较复杂,但是单从原理来说还是挺简单的。

    展开全文
  • Embree概述Embree是在英特尔开发的高性能光线追踪内核的集合。 Embree的目标用户是图形应用工程师,他们希望通过利用Embree的优化光线跟踪内核来提高应用程序的性能。内核针对支持SSE,AVX,AVX2和AVX512的最新...
  • 光线追踪 路径追踪Unity’s ray tracing enables customers to create stunningly realistic real-time experiences using affordable hardware, unlocking new applications that were impractical just a few ...

    光线追踪 路径追踪

    Unity’s ray tracing enables customers to create stunningly realistic real-time experiences using affordable hardware, unlocking new applications that were impractical just a few months ago.

    Unity的光线跟踪使客户能够使用负担得起的硬件创建令人惊叹的逼真的实时体验,从而解锁几个月前不切实际的新应用程序。

    At this point, nearly everyone with even a passing interest in real-time 3D graphics has seen the amazing video of a BMW M850i that we recently created in partnership with NVIDIA and Light & Shadows. The seamless blend between live-action video and ray traced rendering demonstrated in the demo is an incredible achievement. In a recent blog post, Dany Ayoub (3D Artist), Kate McFadden (Sr. Demo Artist), and Sebastien Lagarde (Graphics Lead) covered the technical aspects of ray tracing and how the demo was prepared. But there’s another side to the story – how ray tracing benefits customers. At Unity, we enjoy solving hard technical problems, but we’re even more passionate about enabling customer success. In this blog post, I’ll cover how you can put real-time ray tracing to work for you, and what to expect from Unity throughout 2019.

    在这一点上,几乎每个对实时3D图形感兴趣的人都看到我们最近与NVIDIA和Light&Shadows合作创建的BMW M850i的惊人视频 。 该演示中演示的真人视频和光线跟踪渲染之间的无缝融合是令人难以置信的成就。 在最近的博客文章中 ,Dany Ayoub(3D艺术家),Kate McFadden(高级演示艺术家)和Sebastien Lagarde(图形主管)介绍了射线跟踪的技术方面以及演示的准备方式。 但是,故事还有另一面–光线追踪如何使客户受益。 在Unity,我们乐于解决棘手的技术问题,但我们对使客户获得成功充满热情。 在此博客文章中,我将介绍如何使实时光线跟踪为您服务以及Unity在整个2019年的期望。

    实时,负担得起的高保真–选择三个 (Real-time, affordable, high-fidelity – Pick three)

    The classic “iron triangle” decrees that every project has three objectives – fast, cheap and good – and that a customer needs to decide which two of these to prioritize. Ray tracing in Unity shatters that iron triangle by enabling stunningly realistic visualization at real-time frame rates using widely available and relatively inexpensive computing hardware. It’s this combination that represents the key breakthrough. Research into ray tracing stretches into the earliest years of computer graphics, and it has long been possible to generate ray-traced images “offline” on render farms, though not in real time. More recently, real-time ray tracing has been available to customers who can afford compute clusters with hundreds (or even thousands) of CPUs. While these earlier implementations of the technology produce compelling visuals, simple economics dictates that their practical use is limited to high-end production companies and corporate design studios.

    经典的“铁三角”法令规定,每个项目都有三个目标-快速,廉价和良好-客户需要确定优先哪个目标。 Unity中的光线追踪通过使用广泛可用且相对便宜的计算硬件以实时帧速率实现惊人逼真的可视化,从而打破了三角形。 正是这种组合代表了关键的突破。 对光线追踪的研究可以追溯到计算机图形学的最早年份,并且长期以来一直可以在渲染场上“离线”生成光线追踪图像,尽管不是实时的。 最近,实时光线跟踪已提供给可以负担数百个(甚至数千个)CPU的计算集群的客户。 尽管这些技术的较早实现产生了引人注目的视觉效果,但简单的经济学要求它们的实际使用仅限于高端制作公司和公司设计工作室。

    With real-time ray tracing in Unity, the practical uses for this technology can now be extended to a much wider set of applications. What’s more, it’s simple to trade off performance and fidelity to precisely match the needs of each application. Do you have a need for ultimate visual quality? Increase the number of bounces calculated for each ray to more precisely calculate the behavior of light in a scene, yielding highly realistic appearance for transparent materials and for areas with complex shadows. At higher resolutions and bounce counts, frame rates may not be as smooth, but they will still be interactive, enabling you to quickly and efficiently tailor the composition, materials, lighting, and effects to create stills and videos without the delayed rendering of traditional processes. Do you need silky smooth frame rates? Then simply adjust resolution and bounce count to achieve your target frame rate.

    通过Unity中的实时光线跟踪,该技术的实际用途现在可以扩展到更广泛的应用程序集。 而且,在性能和保真度之间进行权衡以精确地满足每个应用程序的需求很简单。 您是否需要极致的视觉质量? 增加为每条光线计算的反弹次数,以更精确地计算场景中的光线行为,从而为透明材质和具有复杂阴影的区域提供高度逼真的外观。 在更高的分辨率和跳动计数下,帧速率可能不那么平滑,但是它们仍将是交互式的,使您能够快速有效地调整构图,材质,照明和效果以创建静态图像和视频,而不会延迟传统流程的渲染。 。 您是否需要柔滑流畅的帧频? 然后只需调整分辨率和跳动计数即可达到目标帧速率。

    准备好,瞄准,看看 (Ready, aim, see)

    The most obvious application of affordable real-time ray tracing is to create individualized marketing experiences at scale. With Unity, it’s now feasible to deploy product configurators and other interactive experiences at retail locations, and ray tracing will extend the realism of these experiences even further. And while most consumers don’t yet own ray tracing capable hardware, it’s possible to stream content to consumer devices from a dedicated datacenter or the cloud.

    负担得起的实时光线跟踪的最明显的应用是大规模创建个性化的营销体验。 使用Unity,现在可以在零售位置部署产品配置器和其他交互式体验,并且光线跟踪将进一步扩展这些体验的真实性。 尽管大多数消费者尚未拥有支持光线追踪的硬件,但仍可以将内容从专用数据中心或云流传输到消费者设备。

    The benefits of real-time ray tracing extend beyond consumer uses. Designers, engineers, architects and other professionals no longer need to schedule scarce time on a large-scale compute cluster or wait hours for a render farm. Using Unity, designers and engineers can better assess the impact of lighting, shadows, glare, and reflections on the visibility of displays and controls. Within Unity, it’s easy to adjust material properties including specularity (glossiness) to assess appearance under different lighting conditions. Architects can accomplish similar tasks when designing exteriors and interiors. The fact that this work can be done in real time using conventional desktop computers (or even appropriately equipped laptops) enables radically accelerated design iteration, and ultimately the creation of more refined designs.

    实时光线追踪的好处不仅仅局限于消费者。 设计师,工程师,建筑师和其他专业人员不再需要在大型计算集群上安排稀缺时间或为渲染场等待数小时。 使用Unity,设计师和工程师可以更好地评估照明,阴影,眩光和反射对显示器和控件可见性的影响。 在Unity中,可以轻松调整材料特性(包括镜面度(光泽度))以评估在不同光照条件下的外观。 建筑师在设计外部和内部时可以完成类似的任务。 这项工作可以使用常规台式计算机(甚至配备适当的笔记本电脑)实时完成的事实,可以从根本上加速设计迭代,并最终创建更精致的设计。

    The creation of entertainment content can also benefit from real-time ray tracing. Real-time rendering is increasingly being used for previz and look development work in the media industry, and incorporating the realism of real-time ray tracing has the potential to improve these processes.

    娱乐内容的创建也可以从实时光线跟踪中受益。 实时渲染正越来越多地用于媒体行业中的预览和外观开发工作,并且将实时光线跟踪的真实性纳入其中可以改善这些过程。

    我真的可以这样做吗? (Can I really do this?)

    In short, yes. Unity ray tracing is built on top of the High Definition Render Pipeline (HDRP) and an experimental version (Unity DXR) can be downloaded from GitHub today. There are certain constraints that are explained in the documentation, but the bottom line is that you can add ray tracing to an existing HDRP scene. You’ll need compatible NVIDIA RTX hardware and the appropriate version of Windows 10 – specific requirements are detailed in the GitHub README. The current experimental version is a great place to start to learn real-time ray tracing and evaluate how it can benefit your specific use cases, however, we recommend that you not use the experimental version for production work. We’re actively developing and constantly updating this technology, and plan to release it a Preview version in Fall 2019. Preview releases are generally suitable for starting new production projects, with the understanding that these packages are not fully validated, and some details are subject to change between Preview and Verified release.

    简而言之,是的。 Unity光线跟踪建立在 高清晰度渲染管线(HDRP) 之上, 并且 可以从GitHub立即下载 实验版本(Unity DXR) 。 文档中说明了某些限制,但最重要的是您可以将射线跟踪添加到现有的HDRP场景。 您需要兼容的NVIDIA RTX硬件和适当版本的Windows 10-特定要求在GitHub README中有详细说明。 当前的实验版本是学习实时光线跟踪并评估其如何使您的特定用例受益的好地方,但是,我们建议您不要将实验版本用于生产工作。 我们正在积极开发并不断更新该技术,并计划在2019年秋季发布它的预览版。预览版通常适合于启动新的生产项目,但要了解这些软件包尚未得到充分验证,并且有些细节尚待确定。在预览版和验证版之间切换。

    We’re excited about making this technology available to the Unity community, but we’re even more excited to see what you do with it. We’d love to hear your ideas about how you can put ray tracing to work, and if you create projects that you’re able to share publicly, please let us and everyone else know. In the comment section below please share your ideas, hopes and dreams – and where to find your ray tracing demos. And to anticipate a question you are likely asking already, no we can’t share the BMW project. We do want to see what you do with your own models though!

    我们很高兴能将这项技术提供给Unity社区使用,但是看到您如何使用它,我们会更加兴奋。 我们很想听听您关于如何使光线追踪起作用的想法,如果您创建可以公开共享的项目,请告知我们和其他所有人。 在下面的评论部分中,请分享您的想法,希望和梦想,以及在哪里可以找到射线追踪演示。 而且,要预料到您可能已经提出的问题,不,我们不能分享BMW项目。 我们确实想看看您如何使用自己的模型!

    Learn more about our solutions for the automotive and transportation industry here.

    在此处 了解有关我们为汽车和运输业提供的解决方案的更多信息 。

    翻译自: https://blogs.unity3d.com/2019/04/26/ray-tracing-what-does-it-mean-to-you/

    光线追踪 路径追踪

    展开全文
  • 光线追踪综述paper

    2018-08-09 12:11:02
    光线追踪 (Ray Tracing) 算法是一种基于真实 光路模拟的计算机三维图形渲染算法. 相比其它大 部分渲染算法, 光线追踪算法可以提供更为真实的 光影效果.本文先给出光线追踪算法的基本框架结构和数 学理论基础, 实现...
  • 光线追踪算法的c++实现,基于CPU单线程的算法,使用OpenGL辅助显示。可以定义材质的反射和折射特性,有球面和三角面两种基本类型。程序主要实现了光线的采样和传播,但目前的模型搜索采用简单的遍历,因此不适用大...
  • 由于Metropolis光线追踪是在对最终图像贡献更大的有效路径邻近区域进行路径突变,所以很容易使路径采样陷入局部性。为使路径采样更好地遍历路径空间,对Metropolis光线追踪中路径突变策略进行改进,根据当前路径的...
  • 光线追踪算法

    2018-10-15 14:06:34
    光线追踪算法应用的一个小场景,图形学的朋友结业作业可以进来看看
  • 课程作业写的光线追踪算法 包含说明文档C++代码编写场景文件包含 球体 三角形 平面 光源 材料质 镜面 漫反射
  • Whitted光线追踪

    2020-09-17 18:32:15
    WhittedWhittedWhitted光线追踪算法,结合了反向光线追踪和rays to lightrays\ to\ lightrays to light(看图会更清晰一点),而且需要递归计算。具体的算法:1.1.1.对于每个像素,沿VVV方向跟踪...

    在这里插入图片描述
    更详细的内容可以看知乎的这篇文章
    在这里插入图片描述
    这里简要的说了一下几何光学的规则。
    在这里插入图片描述
    这里引出了光线追踪:正向(从光源开始)和反向(从眼睛开始)。
    在这里插入图片描述
    在介绍光线追踪前,先来看一些比较简单的。
    在这里插入图片描述
    WhittedWhitted光线追踪算法,结合了反向光线追踪和rays to lightrays\ to\ light(看图会更清晰一点),而且需要递归计算。具体的算法:1.1.对于每个像素,沿VV方向跟踪主光线到第一个可见表面。2.2.对于每个交点,跟踪次光线:Shadow raysShadow\ rays,即从交点到光源的LiL_iReflected rayReflected\ ray反射光线,如图中的RR所示、Refracted rayRefracted\ ray(折射光线)或者transmitted raytransmitted\ ray(透射光线),如图中的TT所示。
    在这里插入图片描述
    结合图示会更加清楚。
    在这里插入图片描述
    现在让我们逐步构建光剑追踪器,首先是光线投射和局部照明。
    在这里插入图片描述
    直接照明,首先给出了射线的定义,IdirectI_{direct}通过BlinnPhongBlinn-Phong模型计算。
    在这里插入图片描述
    跟踪中的着色,看见这个公式了吗,是不是和BlinnPhongBlinn-Phong模型中的有点像?
    在这里插入图片描述
    在这个基础上,我们做了两个修改:1.1.距离衰减AjdistA_j^{dist}的最大值为112.2.需要包含阴影衰减AjshadowA_j^{shadow}。这个公式就是光线追踪中的着色公式。
    在这里插入图片描述
    光线追踪伪代码。我们通过向每个像素投射光线来构建光线跟踪图像。COPCOPcenter of projectioncenter\ of\ projection(投影中心),dˉ\bar{d}为投射光线的方向向量,scenescene为场景,那么可以计算得到(t,N,mtrl)(t,N,mtrl)tt为交点距PP的距离;Nˉ\bar{N}为交点处的法向量;mtrlmtrlmaterialmaterial,交点处的材质;那么也可以得到交点QQ的坐标;把dˉ-\bar{d}作为视线(反向光线追踪),即可通过shadeshade(Phong/BlinnPhongPhong/Blinn-Phong)计算出交点处的颜色。
    在这里插入图片描述
    着色伪代码。首先处理物体本身的发光(与材质有关)以及全局环境光,然后开始逐一处理光源(多光源),先计算距离衰减attenattenQQLightLight的方向,然后计算漫反射diffusediffuse和镜面反射specularspecular,再把他们累加起来。
    在这里插入图片描述
    现在我们考虑阴影—通过投射阴影线来实现。
    在这里插入图片描述

    带阴影的着色。与之前的大体相同,多了求阴影衰减shadowAttenshadowAtten的过程。
    在这里插入图片描述
    这张图说明了如何计算阴影衰减。它可以简单到仅仅判断光线是否可以到达光源,这里以点光源为例,getDirection(P)getDirection(P)可以得到PP到光源的方向向量dˉ\bar{d},把它当作一条射线并与场景计算交点,从而得到交点到PP的距离tt,此时我们再计算光源到PP的距离tlightt_{light},如果t<tlightt<t_{light},说明被阻挡了,此时应返回(0,0,0)(0,0,0)(黑色),否则应返回(1,1,1)(1,1,1)。对于方向光源,我们可以认为tlightt_{light}为无穷大。
    在这里插入图片描述
    加上反射光。
    在这里插入图片描述
    I(P,dˉ)I(P,\bar{d})是沿射线看的强度,那么有I(P,dˉ)=Idirect+IreflectedI(P,\bar{d})=I_{direct}+I_{reflected}IdirectI_{direct}是由BlinnPhongBlinn-Phong模型计算出来的(带阴影衰减),IreflectedI_{reflected}等于KrI(Q,Rˉ)K_r*I(Q,\bar{R})KrK_r为反射系数,QQ为交点,Rˉ\bar{R}为反射光,显然这是一个递归过程—递归计算反射光的强度。一般我们会令Kr=KsK_r=K_s,即反射系数和镜面反射系数相等。
    在这里插入图片描述
    依据反射定律有θi=θrθ_i=θ_rRˉdˉNˉ\bar{R}、\bar{d}、\bar{N}三者共面。
    在这里插入图片描述
    更新一下光线追踪的伪代码。
    在这里插入图片描述
    终止递归的条件:1.1.当递归深度大于最大限制时;2.i=1dKri<Thresh2.\prod_{i=1}^{d}K_{ri}<Thresh时,也就是说经过几次反射后,系数太小了,这点贡献可以忽略掉。
    在这里插入图片描述
    加上折射光。
    在这里插入图片描述
    TT是折射光,KtK_t是折射系数,一般我们令Ks=KrK_s=K_r,且Kt=1KsK_t=1-K_s,如果物体不透明的话应该令Kt=(0,0,0)K_t=(0,0,0)
    在这里插入图片描述
    折射定律。nintn_i、n_t为折射率,由于dˉNˉ\bar{d}、\bar{N}已知,所以sinθisinθ_i的值很容易得到,那么有sinθt=nisinθi/ntsinθ_t=n_i*sinθ_i/n_t
    在这里插入图片描述
    上面是Tˉ\bar{T}的推导过程,由于我们并不关心Tˉ\bar{T}的长度,所以可以对结果进一步化简,使得Tˉ=(ncosθicosθt)NˉnVˉ\bar{T}=(ncosθ_i-cosθ_t)\bar{N}-n\bar{V}
    在这里插入图片描述
    但是在计算折射光时,一定要考虑全内反射的情况。我们知道sinθt=nisinθi/ntsinθ_t=n_i*sinθ_i/n_t,当θt=90°θ_t=90°时,θiθ_i达到了临界角θcθ_c,如果θi>θcθ_i>θ_c,就会发生全反射现象,此时没有折射光。
    在这里插入图片描述
    现在可以进一步完善我们的光线追踪伪代码了。由于计算折射光线时要考虑折射率nintn_i、n_t,所以需要判断射线是正在进入物体还是传出物体,计算NˉVˉ\bar{N}*\bar{V}并与00进行比较即可知道。
    在这里插入图片描述
    再次回顾一下阴影衰减。我们之前只是简单的判断了一下交点到光源之间是否有障碍物,有就返回(0,0,0)(0,0,0)(黑色),否则就返回(1,1,1)(1,1,1)。但是如果路径上有透明对象怎么办?正确的办法是把这些透明对象的ktk_t依次累成起来作为结果(由于一个物体可以被进入、穿出,所以可能会多次累乘一个物体的ktk_t)。这种模型简单的认为颜色只会在物体的表面,就像透明玻璃表面上的颜色涂层一样。
    在这里插入图片描述
    但是还有另外一种模型是认为玻璃的内部也有颜色的,在此不多赘述。
    在这里插入图片描述
    如图所示,当我们从物体内部穿出时,法向量其实是垂直于平面朝外的,所以在计算着色、反射、折射前需要先对法向量取反。而且在对物体内部的点进行着色时,环境光应该再乘上ktk_t,因为它必须穿过物体表面才能达到物体内部。
    在这里插入图片描述
    误差控制。因为计算往往涉及到浮点数,可能会有误差,所以一般会引入一个极小数进行误差控制。
    在这里插入图片描述
    球体、三角求交可以看我这篇博客。这里再讲一下坐标系的一些问题。
    在这里插入图片描述
    从上图可以看出,求交前先将光线转换成物体的局部坐标,如果有交点,再把交点处的法向量转换为全局坐标。

    展开全文
  • 渲染光线追踪Along with package 7.2.0 of the High Definition Render Pipeline (HDRP), we’re delivering a preview version of real-time ray tracing. 连同 高清渲染管道 (HDRP)的 7.2.0软件包一起 ,我们将...

    渲染光线追踪

    Along with package 7.2.0 of the High Definition Render Pipeline (HDRP), we’re delivering a preview version of real-time ray tracing. 

    连同 高清渲染管道 (HDRP)的 7.2.0软件包一起 ,我们将提供实时射线追踪的预览版。

    HDRP is used for creating high-definition and photorealistic visuals. The render pipeline is out of Preview starting with package version 7.2.0 in 2019.3 and Unity version 2019.3.2f1 (required for real-time ray tracing). You can find more details about HDRP here, but this blog post will focus specifically on the ray tracing features that HDRP offers.

    HDRP用于创建高清和逼真的视觉效果。 从2019.3中的7.2.0版和Unity 2019.3.2f1版( 实时光线跟踪 所需)开始,渲染管道已退出Preview版本 。 您可以 在此处 找到有关HDRP的更多详细信息 ,但此博客文章将特别关注HDRP提供的光线跟踪功能。

    HDRP follows physically based rendering rules, but it has limitations in its lighting processing due to the nature of the rasterization pipeline. Real-time ray tracing allows you to unlock greater visual fidelity since it doesn’t have the same visibility issues related to screen space approximation use in HDRP. It also allows you to avoid relying on pre-baking steps for lighting, which improves artists’ workflows.

    HDRP遵循基于物理的渲染规则,但是由于光栅化管道的性质,其在光照处理方面存在局限性。 实时光线追踪使您可以释放更大的视觉保真度,因为它不存在与HDRP中使用的屏幕空间近似相关的可见性问题。 它还使您可以避免依赖预烘烤步骤进行照明,从而改善了艺术家的工作流程。

    There are two different uses of ray tracing in HDRP:

    HDRP中有两种不同的射线跟踪用法:

    1. A mix of real-time ray tracing techniques and rasterization, which we call the hybrid pipeline

      实时射线追踪技术和光栅化的混合,我们称之为混合管线

    2. A progressive path tracer

      渐进路径跟踪器

    混合管道 (The hybrid pipeline)

    The hybrid pipeline targets real-time applications. It relies on standard rasterization techniques – specifically, the HDRP pipeline – but it allows you to replace various effects with a ray-traced version. This increases the final image quality since ray tracing doesn’t suffer from the screen space approximation issues or other hard-to-solve problems that accompany the rasterization approach. 

    混合管道针对实时应用程序。 它依赖于标准的栅格化技术,特别是HDRP管道,但是它允许您使用光线跟踪的版本替换各种效果。 由于光线跟踪不会受到屏幕空间逼近问题或光栅化方法所带来的其他难以解决的问题的困扰,因此可以提高最终图像质量。

    The effects that support ray tracing have a corresponding ray tracing effects setting in HDRP. It is controlled either with a ray tracing flag on an existing effect or a new volume setting dedicated to it. The following section outlines the ray tracing effects available in HDRP. These effects are compatible with Lit.shader, Unlit.shader, and LayeredLit.shader, as well as the Shader Graph versions of Unlit, Lit and Fabric.

    支持光线 跟踪的效果 在HDRP中 具有相应的 光线跟踪效果 设置。 它可以通过现有效果上的光线跟踪标记或专用于它的新音量设置来控制。 以下部分概述了HDRP中可用的光线跟踪效果。 这些效果与Lit.shader,Unlit.shader和LayeredLit.shader以及Unlit,Lit和Fabric的Shader Graph版本兼容。

    光线追踪反射 (Ray Traced Reflections)

    HDRP offers several options for reflections: Screen Space Reflection, Reflection Probe, Planar reflection, and Sky reflection. Ray Traced Reflection adds a new choice to this list with higher visual fidelity. It’s accessible through the Screen Space Reflection volume component.

    HDRP提供了几种反射选项:“屏幕空间反射”,“反射探针”,“平面反射”和“天空反射”。 光线追踪反射以更高的视觉保真度为该列表添加了新选择。 可通过“屏幕空间反射”体积组件进行访问。

    光线追踪的全局照明 (Ray Traced Global Illumination)

    光线追踪环境光遮挡 (Ray-Traced Ambient Occlusion)

    Screen Space Ambient Occlusion (SSAO) is a great trick to simulate the complexity of indirect lighting in a scene. SSAO gives strong results, but it relies entirely on the data available onscreen, so it can have visible limitations that can be improved by its ray tracing variant: Ray Traced Ambient Occlusion. This feature is available through the Ambient Occlusion volume component.

    屏幕空间环境光遮蔽(SSAO)是模拟场景中间接照明的复杂性的绝妙技巧。 SSAO给出了很强的结果,但是它完全依赖于屏幕上可用的数据,因此它可以具有可见的局限性,可以通过其射线跟踪变体(射线跟踪环境光遮挡)来改善它。 可通过“环境光遮挡”体积组件使用此功能。

    光线追踪阴影 (Ray Traced Shadows)

    Ray Traced Shadows can replace regular shadows in HDRP. This setup has a few advantages: in addition to avoiding any issues related to shadow map resolution and bias, Ray Traced Shadows allow you to control the shadow penumbra (Point, Spot and Directional), and they support colored (Directional) or semi-transparent shadows (Point and Spot). View-dependent shadows for rectangular light are also supported. These options are available on the lights themselves.

    光线跟踪阴影可以替换HDRP中的常规阴影。 此设置具有一些优点:除了避免与阴影贴图分辨率和偏差有关的任何问题外,“光线跟踪阴影”还允许您控制阴影半影(“点”,“点”和“定向”),并且它们支持彩色(定向)或半透明阴影(点和点)。 还支持矩形光的与视图相关的阴影。 这些选项在灯本身上可用。

    射线追踪的接触阴影 (Ray Traced Contact Shadows)

    Sometimes shadow maps have trouble capturing details, such as the contact between an object and its occluder due to low-resolution render targets or various bias issues. HDRP offers an option to improve this situation without increasing the shadow map resolution, called Contact Shadows. Contact Shadows rely on ray marching of the depth buffer, which can cause some screen space artifacts to display. Using Ray Traced Contact Shadows instead avoids the appearance of these artifacts. This option is available on the lights themselves.

    有时,阴影贴图难以捕获细节,例如由于分辨率较低的渲染目标或各种偏差问题而导致的对象与其遮挡物之间的接触。 HDRP提供了一种在不增加阴影贴图分辨率的情况下改善这种情况的选项,称为“接触阴影”。 接触阴影依赖于深度缓冲区的光线行进,这会导致显示某些屏幕空间伪像。 相反,使用射线跟踪接触阴影可以避免这些伪像的出现。 该选项在灯本身上可用。

    递归渲染 (Recursive Rendering)

    Rendering multiple layers of refractive transparent materials can be a tricky thing to do with the rasterization pipeline. HDRP only offers the option of a single refractive interface, and ray tracing offers an accurate way to do it. The Recursive Rendering volume component allows you to perform multiple reflections and refractions for transparent objects. It requires that the object’s material uses the ray-tracing setting in Rendering Pass.

    渲染多层折射透明材料对于光栅化管线可能是一件棘手的事情。 HDRP仅提供单个折射界面的选项,而光线追踪则提供了一种精确的方法。 使用“递归渲染”体积组件,可以对透明对象执行多次反射和折射。 它要求对象的材质使用 Rendering Pass中 的光线跟踪 设置 。

    射线追踪的地下散射 (Ray Traced Subsurface Scattering)

    Translucent surface rendering is a very complex problem that has only partially been solved in HDRP. The volume component Subsurface Scattering allows you to enable ray tracing to simulate this effect.

    半透明表面渲染是一个非常复杂的问题,在HDRP中仅得到部分解决。 体积分量“次表面散射”使您能够启用光线跟踪以模拟这种效果。

    性能 (Performance)

    Real-time ray tracing is very intensive in GPU usage. Each ray has a cost that needs to be considered in the final frame rate of the application. With the current state of hardware, enabling all of these ray tracing effects at the same time will result in a slow frame rate. We recommend choosing which effects to enable with care. For games in particular, it’s advisable to enable only one or two effects at a time to avoid excessively high frame time. 

    实时光线跟踪在GPU使用中非常密集。 每条射线的成本都需要在应用程序的最终帧速率中考虑。 使用当前的硬件状态,同时启用所有这些光线跟踪效果将导致帧速率降低。 我们建议谨慎选择要启用的效果。 特别是对于游戏,建议一次仅启用一种或两种效果,以避免过长的帧时间。

    For many ray tracing effects, HDRP offers two modes: Quality and Performance.

    对于许多光线跟踪效果,HDRP提供两种模式:质量和性能。

    There are additional options available depending on the chosen mode. Quality usually allows multiple bounce options for lighting effects (such as Reflection or Global Illumination) and uses less approximation in the shading model, which can increase graphic fidelity but is more GPU-intensive. For these reasons, this setting is not recommended for games. Performance is the mode to use when targeting game frame rate, applying complex optimizations under the hood.  You can learn more about the details of optimization performance in the talk “Leveraging Real-time Ray Tracing To Build A Hybrid Game Engine,” presented at SIGGRAPH 2019. Some effects don’t offer choices in mode settings because they only support Quality mode, such as the Recursive Rendering effect.

    根据所选模式,还有其他选项可用。 质量 通常会为照明效果(例如“反射”或“全局照明”)提供多个反射选项,并在阴影模型中使用较少的逼近度,这可以提高图形保真度,但会占用更多GPU。 由于这些原因,不建议在游戏中使用此设置。 性能 是目标游戏帧速率时使用的模式,在后台进行复杂的优化。 您可以 在SIGGRAPH 2019上发表 的演讲“ 利用实时光线追踪来构建混合游戏引擎 ”中 了解有关优化性能的详细信息。 某些效果在模式设置中无法提供选择,因为它们仅支持质量模式,例如“递归渲染”效果。

    Ray Traced Global Illumination and Recursive Rendering aren’t recommended for a high frame rate target because they are quite expensive. It is useful to generate reference screenshots. You should also use the Ray Trace Subsurface Scattering feature economically, as its cost can increase quickly.

    对于高帧频目标,建议不要使用光线跟踪的全局照明和递归渲染,因为它们非常昂贵。 生成参考屏幕截图很有用。 您还应该经济地使用“光线跟踪次表面散射”功能,因为它的成本会Swift增加。

    For games, it is recommended to restrict ray traced effects to Shadow, Contact Shadow, Ambient Occlusion, and reflections in Performance mode. Other effects can be used for interactive non-game applications in Performance mode when they are available, while any effects without a Performance mode setting should be used sparingly to stay in real-time.

    对于游戏,建议在“性能”模式下将光线跟踪效果限制为“阴影”,“接触阴影”,“环境光遮挡”和“反射”。 其他效果可以在“性能”模式下用于交互式非游戏应用程序(如果可用),而没有“性能”模式设置的任何效果都应谨慎使用以保持实时。

    Another option to help with performance is reducing the amount of work that occurs while performing ray tracing effects. The Shader Graph comes with a dedicated node for ray tracing that allows you to lower the cost of a material when it is rendered with ray tracing.

    有助于提高性能的另一种方法是减少执行光线跟踪效果时发生的工作量。 Shader Graph带有一个专用于光线追踪的节点,当您使用光线追踪渲染材质时,它可以降低材料的成本。

    渐进路径跟踪器 (The progressive path tracer)

    The progressive path tracer pipeline targets high-quality image rendering, often for interactive applications. Unlike the hybrid pipeline, it doesn’t rely on the rasterization pipeline for shading, but it still does for post-processing. Lighting in this mode is very accurate, similar to what can be achieved in the movie industry, but it requires some time to be processed. As such, this method generates a noisy image for a few frames until the image converges to its final result.

    渐进路径跟踪程序管道通常针对交互式应用程序,以高质量图像渲染为目标。 与混合流水线不同,它不依赖栅格化流水线进行着色,但仍然进行后处理。 此模式下的照明非常准确,类似于电影行业中可以实现的照明,但是需要一些时间来处理。 这样,此方法会生成几帧的噪点图像,直到图像收敛到其最终结果为止。

    A Path Tracing volume component is available and replaces any other ray tracing or regular pipeline effect in the HDRP when enabled. This can also be useful to produce a reference comparison.

    启用了“路径跟踪”体积组件,它将替换HDRP中的任何其他光线跟踪或常规管道效果。 这对于进行参考比较也很有用。

    Progressive rendering of the frame with Path tracer

    使用路径跟踪器逐步渲染框架

    Final result after full convergence of the image

    图像完全融合后的最终结果

    进入预览意味着什么? (What does it mean to be in Preview?)

    Ray tracing in HDRP 7.2.0 is in Preview. It relies on DX12 and DXR low-level APIs that are both in Preview in Unity 2019.3.2f1 and are thus missing some functionality. Ray tracing in Preview means that some functionalities, user interfaces, performance, tools, and data formats could evolve with new versions, and data migration isn’t guaranteed. It is not recommended to use Preview features in production.

    HDRP 7.2.0中的光线跟踪位于“预览”中。 它依赖于DX12和DXR低级API,它们都在Unity 2019.3.2f1中的Preview中,因此缺少某些功能。 预览中的光线跟踪意味着某些功能,用户界面,性能,工具和数据格式可能随新版本一起发展,并且不能保证数据迁移。 不建议在生产中使用预览功能。

    HDRP ray tracing in Unity 2019.3 has the following limitations:

    Unity 2019.3中的HDRP射线跟踪具有以下限制:

    • There is no support for ray tracing on platforms other than DX12, where only D3D12_RAYTRACING_TIER 1.0 is supported.

      除DX12之外,在仅 支持D3D12_RAYTRACING_TIER 1.0的 平台上不支持射线跟踪 。

    • It does not support deformers (skin, vertex animation).

      它不支持变形器(皮肤,顶点动画)。

    • It does not support VFX and Terrain.

      它不支持VFX和Terrain。

    • It does not support several of HDRP’s materials, includingHair, StackLit, Eye, and AxF materials.

      它不支持多种HDRP材料,包括头发,StackLit,Eye和AxF材料。

    • It does not have correct culling for shadows. It uses frustum culling instead.

      它没有正确剔除阴影。 相反,它使用视锥剔除。

    硬件要求 (Hardware requirements)

    Full ray tracing hardware acceleration is available on following GPUs:

    以下GPU提供了全光线跟踪硬件加速:

    • NVIDIA GeForce RTX 2060, RTX 2080 Super, RTX 2070, RTX 2070 Super, RTX 2080, RTX 2080 Super, RTX 2080 Ti

      NVIDIA GeForce RTX 2060,RTX 2080超级,RTX 2070,RTX 2070超级,RTX 2080,RTX 2080超级,RTX 2080 Ti

    • NVIDIA TITAN RTX

      NVIDIA TITAN RTX

    • NVIDIA Quadro RTX 3000 (laptop only), RTX 4000, RTX 5000, RTX 6000, RTX 8000

      NVIDIA Quadro RTX 3000(仅限笔记本电脑),RTX 4000,RTX 5000,RTX 6000,RTX 8000

    NVIDIA also provides a ray tracing fallback for some previous generation graphics cards:

    NVIDIA还为某些上一代显卡提供了光线追踪回退:

    • NVIDIA GeForce GTX

      NVIDIA GeForce GTX

      • Pascal generation: GTX 1060, GTX 1070, GTX 1080, GTX 1080 Ti

        帕斯卡一代:GTX 1060,GTX 1070,GTX 1080,GTX 1080 Ti

      NVIDIA GeForce GTX

      NVIDIA GeForce GTX

    • NVIDIA TITAN V

      NVIDIA TITAN V

    • NVIDIA Quadro: P4000, P5000, P6000, V100

      NVIDIA Quadro:P4000,P5000,P6000,V100

    If your computer has one of these graphics cards, it can run ray tracing in Unity. Before you open Unity, make sure to update your NVIDIA drivers to the latest version. Use NVIDIA Quadro or Studio Drivers for the optimal creation experience, and make sure that your Windows version is at least 1809.

    如果您的计算机装有这些图形卡之一,则可以在Unity中运行光线跟踪。 打开Unity之前,请确保将NVIDIA驱动程序更新为最新版本。 使用 NVIDIA Quadro或Studio驱动程序 以获得最佳的创建体验,并确保Windows版本至少为1809。

    在HDRP射线追踪中寻找出路 (Finding your way in HDRP ray tracing)

    To get started with HDRP ray tracing, check out the introductory documentation. It includes a detailed explanation of all of the ray tracing effects that were mentioned in this post. 

    要开始使用HDRP射线跟踪,请查看介绍性 文档 。 它包括这篇文章中提到的所有射线追踪效果的详细说明。  

    The best and simplest way to get started with ray tracing in HDRP is to explore the sample project provided, called SmallOfficeRayTracing. It is already set up for ray tracing, with effects enabled and configured properly, and it’s available here.

    在HDRP中开始光线追踪的最好,最简单的方法是浏览提供的示例项目,称为 SmallOfficeRayTracing 。 已经为光线跟踪设置了它,并且启用并正确配置了效果,并且可以 在此处使用

    In the sample project, three scenes are available, and they exhibit three different use cases of real-time ray tracing.

    在示例项目中,可以使用三个场景,它们展示了实时光线跟踪的三个不同用例。

    Ray Tracing Performance Scene

    光线追踪表演场景

    This scene is set up to have several ray-tracing effects enabled with good performance in mind (~60 fps on an Nvidia 2080). The following effects are enabled:

    该场景设置为具有多种光线跟踪效果,并具有良好的性能(在Nvidia 2080上约为60 fps)。 启用了以下效果:

    • Ray Traced Reflections

      光线追踪反射

    • Ray Traced Global Illumination

      光线追踪的全局照明

    • Ray Traced Directional Shadow

      射线追踪的定向阴影

    • Ray Traced Area Light Stochastic Shadow

      光线追踪区域光随机阴影

    • Ray Traced Ambient Occlusion

      光线追踪环境光遮挡

    Ray Tracing Quality Scene

    光线追踪质量场景

    This scene contains the same effects as the Performance scene with one additional effect, Recursive Rendering. These effects are configured with Quality mode (when this mode is available), and this increases the number of bounce for reflection.

    该场景包含与“表演”场景相同的效果,并带有一个附加效果,即“递归渲染”。 这些效果是使用“质量”模式配置的(当此模式可用时),这会增加反射的反射次数。

    Ray Tracing Path Tracing Scene

    光线追踪路径追踪场景

    This scene is set up to be rendered using the progressive path tracer.

    该场景设置为使用渐进路径跟踪器进行渲染。

    开始一个新项目 (Starting a new project)

    To help you on your journey when starting a new project from scratch and ensure that you have the right setup for your ray tracing, we offer an HDRP Wizard. The Wizard validates your settings in the HDRP + DXR tab and can fix them if they are incorrect.

    为了帮助您从头开始新项目,并确保您具有正确的光线跟踪设置,我们提供了HDRP向导 。 该向导会在HDRP + DXR选项卡中验证您的设置,如果设置不正确,则可以对其进行修复。

    Otherwise, to manually set up ray tracing projects, please refer to Unity’s documentation

    否则,要手动设置光线跟踪项目,请参考 Unity的文档

    下一步是什么? (What’s Next?)

    Future development for real-time ray tracing includes more support for 

    实时光线跟踪的未来发展包括对以下内容的更多支持:

    • HDRP materials (StackLit, Hair, etc.)

      HDRP材料(StackLit,Hair等)

    • Geometry (Terrain, Particles, etc.)

      几何(地形,粒子等)

    • Virtual Reality

      虚拟现实

    • Better fallback to get improved scalability between configurations 

      更好的回退以提高配置之间的可伸缩性

    In Unity 2020.1, skinning, blend shape, and alembic deformation are supported.

    在Unity 2020.1中,支持蒙皮,混合形状和Alembic变形。

    开始使用HDRP射线跟踪 (Start using HDRP ray tracing)

    You can start taking advantage of HDRP ray tracing in your projects today – but remember, this feature is not yet production-ready. You can also refer to presentations by the Unity team at events such as Unite, SIGGRAPH or GDC and our blog posts Reality vs lllusion and Ray Tracing – What does it mean for you? There is a starter presentation from SIGGRAPH, and if you want to go deeper and learn more about the architecture of HDRP ray tracing, you can watch the talk Leveraging Ray Tracing Hardware Acceleration In The Unity Game Engine.

    您现在可以在项目中开始使用HDRP射线追踪功能-但是请记住,此功能尚未投入生产。 您还可以参考Unity团队在Unite,SIGGRAPH或GDC等活动上的演讲,以及我们的博客文章 Reality vs lllusionRay Tracing –对您来说意味着什么 ? SIGGRAPH 有一个 入门演示 ,如果您想更深入地了解HDRP射线跟踪的体系结构,可以观看有关 在Unity Game Engine中利用射线跟踪硬件加速 的演讲 。

    Our team is just getting started, and development continues. Please share any feedback about your experience in the HDRP RayTracing forum!

    我们的团队才刚刚起步,并且发展仍在继续。 请在 HDRP RayTracing论坛中 分享有关您的体验的任何反馈 !

    翻译自: https://blogs.unity3d.com/2020/03/06/high-definition-render-pipeline-real-time-ray-tracing-is-now-in-preview/

    渲染光线追踪

    展开全文
  • 蒙特卡洛光线追踪

    千次阅读 2020-04-25 15:37:42
    蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术 全部论文训练计划章节见论文训练计划 蒙特卡洛光线追踪:
  • 尽管在理论上实现现代GPU的方法是无限的,但真正有效的方法是切实地了解问题并着手将方案变为现实。制造现代高性能半导体器件以及试图加速当前可编程光栅化技术所面临的问题揭示了 GPU 硬件行业发展的未来趋势。...
  • 为了解决图形处理过程中出现的锯齿问题,提出了一种高效的光线追踪等价划分反锯齿算法。算法通过计算相邻像素采样点间颜色偏差,对偏差超过阈值的边界采样点进行递归划分为更小的不规则区域;对偏差小于阈值的采样点...
  • 光线追踪_OpenGL.rar

    2020-05-07 19:42:41
    使用OpenGL实现光线追踪,不同材质的显示以及光源的移动等, 是计算机图形学这门课的一个作业。
  • 光线追踪 路径追踪 Excel减肥追踪器 (Excel Weight Loss Tracker) Did you eat too many Christmas cookies over the holidays? An extra dessert or two? If it's time to get back into shape, use this Excel ...
  • 前一节所描述的光线追踪技术已经很接近现实工业中所使用的技术了。你可能认为直接模拟这个过程是个制作图像的好办法,你基本上是对的。但,直接模拟有个问题,那就是他绘制图像所需要的时间,考虑每个光源每秒可能...
  • 蒙特卡洛光线追踪技术

    千次阅读 2020-04-14 19:25:12
    蒙特卡洛光线追踪技术系列 见 本系列博客将从头开始,介绍蒙特卡洛光线追踪的方法,结合《Monte Carlo Ray Tracing》这本书,作为论文训练计划《全部论文训练计划章节见论文训练计划》的一部分,全面研究蒙特卡洛...
  • 光线追踪和路径追踪

    2019-08-19 20:19:06
    学习下 https://www.scratchapixel.com/index.php Live Stream: Some C++ coding! - YouTube
  • 光线追踪入门技术

    2018-09-11 09:51:40
    光线追踪,入门知识,深入浅出,一周见效,绝对物有所值
  • 这是光线追踪的算法的c++实现,光线追踪对于游戏开发是一个高级主题,该程序是实现一个光线追踪的经典例子,由国外程序编写,参考价值很高,
  • 光线追踪 路径追踪For the past month or so I’ve been working on a passion project in my spare time to build a path tracer. This is the story of why what I created is really bad at its job, but also ...

空空如也

1 2 3 4 5 ... 20
收藏数 1,199
精华内容 479
关键字:

光线追踪