一,光线穿过体数据的建模
体绘制描述了在某一密度条件下,光线穿越物体时,每个体素对光线强度的影响,包括吸收,发射,散射等 。对该过程有不同的建立模型的方法:
1. 吸收模型( Absorption only ):体素对光线只是吸收,本身既不发射光线,也不反射、透射光线;
2. 发射模型( Emission only ):体数据中的体素只是发射光线,不吸收光线;
3. 吸收和发射模型( Absorption plus emission ):这种光学模型使用最为广泛,体数据中的体素本身发射光线,并且可以吸收光线,但不对光线进行反射和散射。
4. 散射和阴影模型( Scattering and Shading/shadowing ):体素可以散射(反射和折射)外部光源的光线,并且由于体素之间的遮挡关系,可以产生阴影;
5. 多散射模型( Multiple Scattering ):光线在被眼睛观察之前,可以被多个体素散射。
通常我们使用吸收和发射模型。为了增强真实感,也可以加上阴影(包括自阴影)计算。
二,光线合成公式
吸收和发射模型的基本公式为:
公式1
其中I是光照强度,k表示体素对光的吸收系数,整个指数部分表示物体的透明度,q为体素发出的光的强度。
透明度定义为:
公式2
公式1可改写为:
公式3
将其离散化,得到:

本文介绍了体绘制的基本原理,包括光线穿过体数据的建模,如吸收和发射模型,以及光线合成公式。详细阐述了不透明度校正的重要性,并提供了判断采样点是否在体数据范围内的方法。最后,给出了使用GLSL实现光线方向计算的示例代码。
最低0.47元/天 解锁文章
2692

被折叠的 条评论
为什么被折叠?



