发明名称 一种非常数折射率介质中的光线跟踪方法
摘要 本发明公开了一种非常数折射率介质中的光线跟踪方法。该方法能快速跟踪光线在常数梯度折射率介质中,以及四面体或体素表达的一般性非常数折射率介质中的传输路径。该方法由预计算部分和实时光线跟踪部分构成,预计算部分建立一颗空间八叉树,并将每个八叉树节点与介质边界多边形或描述介质的四面体关联起来。实时光线跟踪部分是一个迭代过程,本发明具有效率高、精确程度好等特点可以直接用于真实感绘制,集成到现有的各种渲染工具中。
申请公布号 CN101894390B 申请公布日期 2012.07.04
申请号 CN201010214899.9 申请日期 2010.06.29
申请人 浙江大学 发明人 周昆;任重;曹晨
分类号 G06T15/50(2006.01)I 主分类号 G06T15/50(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 周烽
主权项 一种非常数折射率介质中的光线跟踪方法,其特征在于,包括如下步骤:(1)获得折射介质的四面体网格和体素网格表达;(2)根据介质折射率和梯度的空间变化建立空间八叉树;(3)由视点向每个采样点发出光线,作为光线跟踪的初始光线集合;(4)按照传统光线跟踪的方法沿直线跟踪当前光线集合中的光线,直至其与场景中其他物体相交或进入非常数折射率介质的边界,若光线与场景中其他物体相交,则根据传统光线跟踪的方法计算该光线上的能量,更新对应采样点的颜色;(5)跟踪进入非常数折射率介质的光线;(6)转至步骤(4)迭代执行光线跟踪过程;若迭代次数超过某预设值,发生全反射,则中止光线跟踪过程,将光线对应采样点颜色值赋为某预先设定的缺省值;其中,所述步骤(2)具体分成如下几个子步骤:(2.1)根据用户指定的八叉树层数确定八叉树的最底层节点构成的网格,对每个网格,获得与其有重合部分的四面体或体素的列表;(2.2)自底向上递归地合并八叉树节点,当同一个节点下的八个子节点满足下述两个条件时将其合并:条件1:任一节点都不与处在介质边界的任何空间单元有重合部分;条件2:所有节点对应的空间单元内的介质折射率梯度的差别小于某用户指定的阈值ε,或所有节点对应的空间单元内的介质折射率梯度的差别小于某用户指定的阈值δ;(2.3)合并节点A的八个子节点Ai时,将所有子节点对应的空间单元的并集关联到节点A上,并将节点A对应的介质折射率梯度设为其对应的所有空间单元上的介质折射率梯度的平均;(2.4)若本次未能合并任何节点,或已经达到八叉树的根节点,本步骤结束,否则转至2.2迭代执行;所述步骤(5)包括如下子步骤:(5.1)确定光线入射点和入射方向;(5.2)确定光线所在的八叉树节点,并根据节点类型分别执行步骤5.3‑5.5;(5.3)该八叉树节点为非叶子节点,则首先根据入射方向、入射点和节点的折射率梯度确定光线方程,并由标准求交操作求取光线与该节点边界的第一个交点和切线方向;(5.4)该八叉树节点为叶子节点,且不与介质边界相交,获得该节点对应的各个空间单元,并逐个用标准求交操作求取光线与该空间单元的边界和该叶子节点边界的合集的第一个交点和切线方向,直至光线从该叶子节点中射出,所述空间单元为四面体或体素;(5.5)该八叉树节点为叶子节点,且与介质边界相交,获得该节点对应的各个空间单元,并逐个用标准求交操作求取光线与该空间单元的边界和该叶子节点边界的合集的第一个交点和切线方向,直至光线从该叶子节点中射出或从介质边界射出;(5.6)若光线从介质边界射出,本步骤结束,不然以上述获得的交点和切线方向作为光线的新入射点和入射方向,转自步骤(5.2)迭代执行。
地址 310027 浙江省杭州市西湖区浙大路38号