基于物理的渲染 – 实现篇(二)
demi 在 周二, 09/10/2019 - 12:02 提交
上一篇:基于物理的渲染 – 实现篇(一)
完整的PBR光照着色器
现在唯一剩下的就是将最终的色调映射和伽玛校正的颜色传递给片段着色器的输出通道,我们就拥有了一个PBR直接光照着色器。基于完整性考虑,下面列出完整的main函数:
渲染是计算机图形学中的一个过程,它指的是将3D场景或模型转化为2D图像的过程。这是在计算机图形学、计算机辅助设计(CAD)、虚拟现实、视频游戏等领域中非常重要的步骤。
上一篇:基于物理的渲染 – 实现篇(一)
完整的PBR光照着色器
现在唯一剩下的就是将最终的色调映射和伽玛校正的颜色传递给片段着色器的输出通道,我们就拥有了一个PBR直接光照着色器。基于完整性考虑,下面列出完整的main函数:
在上一个教程里我们为基于现实物理的渲染打下了基础,在这个教程里我们将会着重介绍如何将前面讲到的理论转化成一个基于直接光照的渲染器:比如点光源,方向光和聚光灯。
裁剪是个很大的概念,裁剪包括了视锥体裁剪(应用程序阶段)、视口裁剪(图元装配——几何阶段的最后一步)、背面剔除(光栅化阶段)、遮挡剔除(光栅化阶段)。
细节层次(Level of Detail,LOD)的基本思想是当物体对渲染出图像贡献越少,使用越简单的形式来表达该物体。这是一个已经在各种游戏中广泛使用的基本优化技术。
裁剪(Culling)的字面意思是“从大量事物中进行删除”。在计算机图形学中,相对应的就是裁剪技术所要做的工作——“从大量游戏事物中进行删除”。所谓的“大量事物”就是需要绘制的整个场景,删除的是对最终图像没有贡献的场景部分,然后将剩余场景发送到渲染管线。
通过阅读,你将对游戏开发与实时渲染中加速渲染算法的以下要点有所了解:常用空间数据结构(Spatial Data Structures);各种裁剪技术(Culling Techniques);各种层次细节(LOD,Level of Detail)技术;大型模型的渲染(Large Model Rendering);点渲染(Point Rendering)。
与传统的追求照片真实感的真实感渲染不同,非真实感渲染(Non-Photorealistic Rendering,NPR)旨在模拟艺术式的绘制风格,常用来对绘画风格和自然媒体(如铅笔、钢笔、墨水、木炭、水彩画等)进行模拟。而卡通渲染(Toon Rendering)作为一种特殊形式的非真实感渲染方法,近年来倍受关注。
自上世纪80年代首次设计出现,数字式仪表盘现在又重新流行起来,这是未来发展的趋势。数字仪表盘比传统的刻度盘能够提供更精确、更丰富而且更加清晰的信息。它可以是自适应的、动态的,准确的显示驾驶员在任何时刻需要看到的信息。如果得到制造商的许可,仪表盘还可以根据驾驶员的个人喜好进行定制。它们也可以看起来非常的酷炫,这在当今时代是非常重要的。
我们经常用渲染管道(rendering pipeline)来描述渲染(rendering),而且有一点必须铭记在心:高效的渲染就是保证信息快速流通。
菲涅尔方程(Fresnel)定义的是在不同观察方向上,表面上被反射的光除以被折射的光的比例。在一束光击中了表面的一瞬间,菲涅尔根据表面与观察方向之间的夹角,计算得到光被反射的百分比。根据这个比例和能量守恒定律我们可以直接知道剩余的能量就是会被折射的能量。