Skip to content

Just for fun, refraction in it!

Notifications You must be signed in to change notification settings

mortal123/RayTrace

Repository files navigation

#光线追踪 ####Abstract

这个Project主要实现光线追踪,使用的是简单的反射漫射模型加上我自己设计的透射模型。反射漫射模型可以看以下网址 Lecture,以下我重点讲述我自己的透射模型。

##透射模型 由于在三维空间中,我的程序中只能支持一些平面与球体的组合,在某种程度上,这两种基本图形可以模拟出几乎任何一个不规则物体。

在加上透射的模型中,模拟光线时我们不仅仅需要考虑反射光线的递归,还有透射光线的递归。为此,我们需要一些参数来刻画透射光线的方向(eta),透射后光的吸收率(refraction)还有直接接收到时,光强度在r,g,b上的衰减系数(refr)。可以发现,这样一来我们每次递归的分支由原来的1变成了2,这个变化时飞跃的,特别是在一些透明球体中。为了防止渲染速度太慢,我们必须要加上一些优化手段。

###难点

  • 对于一般的『平面』物体而言,我们只需要考虑光线在空气中的传播,但是由于透射的假如,我们的光线可能在球体的内部,从而增加了一些光线追踪几何部分的讨论。特别在判断在球内的情况。
  • 递归带来的复杂度需要我们增加优化,比如我们可以限制深度,根据判断当前递归的深度已经无法很大的影响光强从而退出等等。

###Example.

  • 没有透射模型的sample
  • 加上了透射模型的sample

About

Just for fun, refraction in it!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published