zoukankan      html  css  js  c++  java
  • Lecture13_光线追踪1(Whitted-Style Ray Tracing)_GAMES101 课堂笔记

    引入光线追踪目的:

    1. 因为光栅化不能很好地处理全局效果,例如:
      • 软阴影:光栅化需要经过两个过程才能形成软阴影;
      • Glossy 反射:既有反射,又有本身材质的粗糙性影响;
      • 间接反射:光线在空间中会反射很多次,很难渲染。
    2. 光栅化速度快,但是质量并不好,表现得是相似的东西;光线追踪很精确,效果很真实,不过速度很慢。(光栅化可以达到实时,但是光线追踪需要离线。)

    第一部分:光线追踪算法基础

    一、光线定义:

    1. 光线沿着直线传播。(本课程不考虑光的波动性)
    2. 光线之间如果交叉不会互相碰撞。(假设)
    3. 光线从光源发出可以到达人眼。(但是物理上认为光线在路径你转不变—— Reciprocity(光可逆性))

    二、光线投射(Ray Casting)

    (一)定义

    1. 通过将光源逐像素投射生成一张图片。
    2. 通过投射光线检查阴影。

    (二)生成过程

    下图例子是照射一个透明物体,会分别产生 ② 折射光线和 ④反射光线,在分别照射出去为③、投射到物体上。最后将照射在物体上的几个黑点连接到点光源(light source),如果未被遮挡,则叠加计算到从eye point(camera point)中投射出来的像素中。使用着色模型(例如:Blin Phong模型)进行着色。

    观察上图,可知四根shadow rays,其中长方形投射的光线被三角形挡住,因此该像素点为其他那根光线的累加值。

    (三)光线等式

    光线通过原点(O点)和方向((overrightarrow d))决定。公式如下:

    (四)光线和球面角点


    光线:(rleft(t ight) = o +td,0 leq t < infty)
    球面:$ p:(p-c)^2 - R^2 = 0$
    交点P: 交点P必须同时满足射线方程和球面方程。
    求解交点:((o+td-c)^2 - R^2 = 0)
    求解交点P过程

    (五)光线和三角形网格交点

  • 相关阅读:
    CF786E ALT
    CF704D Captain America
    [NOI2016]循环之美
    「PKUWC2018」猎人杀
    [HNOI2019]JOJO
    博客已转移
    $20200203$的数学作业
    20200202的数学作业
    NOIp 2016 选课 (DP)
    Luogu P2574 XOR的艺术 (线段树)
  • 原文地址:https://www.cnblogs.com/somedayLi/p/12562978.html
Copyright © 2011-2022 走看看