GAMES101-现代计算机图形学入门-闫令琪——Lecture 13 Ray Tracing 1

GAMES101-现代计算机图形学入门-闫令琪——Lecture 13 Ray Tracing 1

Why Ray Tracing?

  • 光栅化很难很好的解决全局的影响
    (Soft) shadows
    还有一些特殊情况当光反射不止一次(间接光照)
    光栅化虽然很快,但是质量相对较低
  • 光线追踪虽然很准确,但是很慢
    光栅化:实时; 光线追踪:离线应用
    一帧就需要花10K个cpu小时

Basic Ray-Tracing Algorithm

Light Rays

关于光线的三个定义:

  • 光线沿直线传播
  • 光线不会发生碰撞
  • 光线会通过光源发射,经过不断反射,最终到达我们的眼睛(也可以用可逆性,可以从眼睛出发)
    在这里插入图片描述

Ray Casting - Shading Pixels (Local Only)光线投射法

假设光源和眼睛都是点

  • 从眼睛开始往场景中成像平面中的一个像素投射出一个光线。
  • 光线会打到场景中最近的一个物体。
  • 然后从这个交点往光源连接一条线,如果被遮挡就是阴影,否则会被照亮
  • 利用法线和入射方向和出色方向可以计算着色,然后把结果写入像素
    在这里插入图片描述

Recursive (Whitted-Style) Ray Tracing(Whitted风格的光线追踪)

在这里插入图片描述
把同一个点的不同位置算出的着色值相加填入像素中。其中也会包含能量损失

  • primary ray
  • secondary rays
  • shadow rays
    在这里插入图片描述
Ray-Surface Intersection (交点问题)
  • 光线:有一个起点 o 和一个方向 d
    在这里插入图片描述

光线和球的交点

  • 交点又在球上又在光线上:
  • t是未知:
    在这里插入图片描述

求解:

  • 可以根据解的个数来判断关系
    在这里插入图片描述
推广:光线和隐式表面求交:

解需要是实数(有意义),还需要为正
在这里插入图片描述

光线和显示表面求交:(光线和三角形求交)

可以判断光线是在形状内部还是外部:随便取一个点,随便取一个方向,定义个光线,和封闭物体取交点数,如果点在内部交点一定是奇数,在外部一定是偶数

  • 简单的思路:一个一个三角形判断是否和光线相交
  • 简单但是慢
  • 只考虑有一个交点或者没有交点
    在这里插入图片描述

可以简化成光线和平面求交,再判断交点是不是在三角形内部。
在这里插入图片描述
平面的定义(Plane Equation):

  • 一个点p`和一个法线N
  • 求解:
    在这里插入图片描述

有没有办法一下子解出来:

  • 利用重心坐标,系数相加等于1,且三个系数非负就说明点在三角形内
    在这里插入图片描述
提高性能

普通的方法:
在这里插入图片描述
引入包围核(Bounding Volumes)

Bounding Volumes(包围核)

包围核要是都碰不到,里面的东西根本不用看
在这里插入图片描述
我们使用的包围核通常是轴对齐包围核(AABB)用xyz轴范围就可以限定住。
在这里插入图片描述

Ray Intersection with Axis-Aligned Box

在这里插入图片描述
分别求光线你进入和离开每个对面的时间,只有当时间交集存在的时候才说明光线经过盒子
在这里插入图片描述
还需要考虑t的正负情况:
在这里插入图片描述
为什么要用横平竖直的盒子?计算会相对容易
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值