光线追踪简介
简介:
渲染分类:
•光栅化( rasterization):将矢量顶点组成的图形进行像素化的过程
•光线投射(ray casting):正向投射。从图像的每一个像素,沿视线方向发射光线,光线穿越整个图像序列,并在这个过程中,对图像序列进行采样获取颜色信息,同时依据光线吸收模型将颜色值进行累加,直至光线穿越整个图像序列,最后得到的颜色值就是渲染图像的颜色。
•光线跟踪(Ray tracing):逆向跟踪。沿着到达视点的光线的反方向跟踪,经过屏幕上每一个象素,找出与视线相交的物体表面点,并继续跟踪,找出影响点光强的所有光源,从而算出点上精确的光线强度。
光线追踪:
把一个场景的渲染任务拆分成了从摄像机出发的若干条光线对场景的影响,这些光线彼此不知道对方,但却知道整个场景的信息。每条光线会和场景并行地求交,根据交点位置获取表面的材质、纹理等信息,并结合光源信息计算光照。
渲染方程:
光线渲染的核心,它给出了对光线渲染物理模型的准确描述,满足渲染方程的光线渲染算法可以保证结果的物理正确性。
管线:
Ray Generation Shader负责初始的光线生成,生成的初始光线会通过固定的软/硬件单元对整个场景(我们构建好的BVH)进行遍历求交,这个求交过程可以是用户自定义的一个Intersection Shader,也可以是默认的三角形相交测试。一旦相交测试通过,即得到了一个交点,这个交点将会被送给Any Hit Shader去验证其有效性,如果该交点有效,则它会和已经找到的最近交点去比较并更新当前光线的最近交点。当整个场景和当前光线找不到新的交点后,则根据是否已经找到一个最近交点去调用接下来的流程,若没有找到则调用Miss Shader,否则调用Closest Hit Shader进行最终的着色。
实时光线追踪 —— 混合渲染管线
当前业界主流的实时光线追踪技术都普遍采用了 混合渲染管线(Hybrid Rendering Pipeline) 架构。混合渲染管线能充分利用光栅化(Rasterization),计算着色器(Compute Shader)和光线追踪(Ray Tracing)各自的优势,对于管线的每一个渲染阶段,在光栅化,计算着色器和光线追踪中择优使用。
- 点赞
- 收藏
- 关注作者
评论(0)