医学图像体渲染照明4 体照明前传之GPU体渲染2

       文章翻译总结自Advanced illumination techniques for GPU volume raycasting

1.2直接体绘制

       与试图在预处理步骤中从体积数据中提取表面描述的间接方法相比,直接方法通过评估描述体积如何发射、反射、散射、吸收和遮挡光的光学模型来显示体素数据。标量值实际上被映射到描述三维空间中各个点上光相互作用的物理量。这种映射通常称为分类,通常通过传递函数来执行。然后将物理量用于图像合成。

       在图像合成过程中,基于光学模型,将光的相互作用效应沿观察光线进行积分,计算出光的传播。相应的积分称为体绘制积分,如第1.2.2节所述。当然,在实际情况下,这个积分是用数值方法求解的。此外,可以根据来自外部光源的照明对体进行着色。

       在图像合成过程中,基于光学模型,将光的相互作用效应沿观察光线进行积分,计算出光的传播。相应的积分称为体绘制积分,如第1.2.2节所述。当然,在实际情况下,这个积分是用数值方法求解的。此外,可以根据来自外部光源的照明对体进行着色。

1.2.1光学模型

        几乎所有的直接体绘制算法都将体视为具有一定密度的发光粒子的分布。这些密度或多或少直接映射到RGBA四极体,以便沿着观察光线进行合成。然而,这个过程是由物理光学模型驱动的。Nelson Max在一篇调查论文中描述了用于直接体绘制的最重要光学模型,我们仅在这里简要总结了这些模型:

       仅吸收。假设体积由冷的、完全黑色的粒子组成,这些粒子吸收所有撞击到它们上面的光。它们不发射或散射光。   

       仅发射。假设体积由只发出光但不吸收任何光的粒子组成,因为吸收可以忽略不计。

       吸收加发射。这种光学模型是直接体绘制中最常见的模型。粒子发射光,并阻挡,即吸收,入射光。但是,没有散射或间接照明。

       散射和阴影/阴影。该模型包括体素外部照明的散射。散射的光可以被假定为不受远处光源的阻碍,也可以被光线和考虑中的体素之间的粒子遮蔽。

       多次散射。这个复杂的模型包括对入射光的支持,入射光在被散射到眼睛之前已经被多个粒子散射。

       下面部分描述的体绘制积分假定为简单的发射吸收光学模型。更复杂的模型,包括阴影和自阴影,以及单散射和多次散射,将在这些注释的后面部分介绍。图1.3说明了基于GPU的光线投射,该光线投射带有或不带阴影的辐射吸收模型,以及与半透明等表面渲染的组合。图1.4说明了阴影的添加,即通过在体积内发生的吸收对外部光线的(部分)遮挡。

1.2.2体绘制积分

       每个基于物理的体绘制算法都以某种方式评估体绘制积分,即使算法没有明确使用观察光线。最基本也是最灵活的体绘制算法是光线投射,这在1.2.3节中介绍。它可以被认为是计算这个积分的“最直接”的数值方法。稍后将介绍更多详细信息,但对于本节,可以将光线投射视为一个过程,即对于要渲染的图像中的每个像素,将眼睛中的一条光线通过像素的中心投射到体积中,并将从光线中遇到的体积密度中获得的光学特性集成在一起。

医学图像体渲染照明4 体照明前传之GPU体渲染2

      请注意,此一般描述假定体积和光学性质的映射都是连续的。在实践中,当然,体积数据是离散的,积分的计算是数值近似的。结合几个额外的简化,积分通常被黎曼和取代。我们用x(t)表示投射到体积中的光线,并用距眼睛的距离t参数化它。与射线上的位置相对应的标量值用s(x(t))表示。如果我们采用发射吸收模型,体积绘制方程将吸收系数k(s)(考虑光的吸收)和发射颜色c(s)(考虑主动发射的辐射能量)结合在一起。为了使方程保持简单,我们将发射c和吸收系数k表示为视距t的函数,而不是标量值s:c(t) := c(s(x(t))),并且κ(t) := κ(s(x(t)))
       沿观察光线以t=d的距离发射的辐射能,沿d的距离不断吸收,直到到达眼睛。这意味着只有在t=d时发射的原始辐射能c的一部分最终会到达眼睛。如果沿着射线有一个恒定的吸收,k=常量。但是,如果吸收κ在光线中不是恒定的,而是取决于位置,那么到达眼睛的辐射能量c必须通过沿距离d积分吸收系数来计算。

医学图像体渲染照明4 体照明前传之GPU体渲染2

      指数吸收系数的积分,也称为光学深度。然而,在这个简单的例子中,光只在光线的一个点上发射。如果我们想确定从这个方向到达眼睛的辐射能总量c,我们必须考虑到沿射线所有可能位置t发出的辐射能。

      在实践中,这个积分是通过沿射线的样品的前后合成(即阿尔法混合)进行数值计算的,这在射线投射方法中最容易说明。光线投射通常采用前后合成。

       关于介绍光线投射等东西这里我就懒得说了,网上资料一大堆一大堆的,但是要注意的是,很多资料都不会说这么一点:一般资料都会介绍从前到后合成和从后到前合成,早期光线终止只能在从前到后合成来使用!!从后到前是不可能早期光线终止的!我曾经就在思考别人的论文中不说是不是代表也可以,但是这本大牛写的书证明这是不可以的!