基于纹理空间与屏幕空间混合的心脏次表面绘制方案

2018-07-13 12:53杨志伟陈国栋林惠茹兰敏超
关键词:心脏

杨志伟 陈国栋 林惠茹 兰敏超

摘 要:提出一种基于纹理空间和屏幕空间混合的心脏次表面绘制方案,用于解决虚拟手术系统中心脏次表面散射材质绘制难度大、仿真效果准确性不足的问题。以往的研究方案中,都只是基于单一的空间进行次表面绘制,难以适应虚拟手术真实感的要求。针对心脏光照计算中的次表面散射材质绘制方法的改进,新方案将纹理坐标作为渲染对象坐标进行卷积运算,使2D纹理能够产生基础的次表面散射效果。同时,结合基于屏幕空间的算法弥补纹理空间算法的不足进行混合绘制,并使用SMAA和抖动策略作为后处理步骤来提高子像素形态抗锯齿,产生比先前方案更好的整体效果。实验结果表明,该方案在一定程度上降低了心脏次表面散射材质绘制难度的同时,提高了绘制的准确性和真实感。

关键词:次表面散射;心脏;纹理空间;屏幕空间;混合绘制

中图分类号:TP391.9

文献标识码: A

次表面散射(subsurface scattering)是指光线进入物体后,与介质内部发生相互作用并根据散射分布函数向各个方向分散,最终从物体其他区域离开的现象[1]。现实世界中的牛奶,玉石,生物组织等都具有这种特性,其次表面散射材质绘制能极大提高绘制真实感,使得物体外观更为柔和,产生一定程度上的半透明效果。其中,软组织绘制的真实感一直是虚拟手术训练效果[2]和手术沉浸感提升的制约因素。因此,本研究基于现有的次表面散射材质绘制方法进行改进,探索建立高质量的心脏仿真系统[3]。

在虚拟仿真手术中,心脏绘制的重点和难点主要在次表面散射效果的表现。总的来说,主要有两类绘制方案。第一类是传统的绘制方案,该类方案在光线计算时需要精确计算折射光线与周围环境的交互。该类方案主要用到次表面散射绘制的有路径跟踪[4],光子映射[5]以及蒙特卡罗[6]等方法,这些方法尽管能取得视觉上不错的效果,但是由于其计算量大,无法在保证精度的同时提供可靠的绘制速度。第二类是近似的绘制方案,在保证物理规律的正确性的情况下,在效率和效果之间做权衡。针对传统绘制方案的局限性,目前主要有两种次表面散射绘制方案。第一种是基于纹理空间漫反射的方法[7],该方案能近似获得较好的视觉效果但是需要在運行时调整许多的参数;而第二种是基于屏幕空间的方法[8],在保证绘制速度的同时也能达到一定的效果,但在绘制精度上会有所欠缺。

虚拟手术中,心脏次表面散射材质绘制是心脏显示的主要影响因素之一,也是阻碍其真实感提升的制约因素。针对虚拟手术中心脏次表面散射材质绘制难度大、绘制精度差导致效果不真实的问题,创新性提出一种基于纹理空间和屏幕空间混合的心脏次表面绘制方案来进行提升心脏显示的真实感。其中,将纹理坐标作为渲染对象坐标进行卷积运算,使2D纹理能够产生基础的次表面散射效果。同时,结合基于屏幕空间的算法弥补纹理空间算法的不足进行混合绘制,并使用SMAA和抖动策略来提高子像素形态抗锯齿,产生比先前方案更好的整体效果。实验表明,本研究改进了目前基于单一空间的心脏次表面绘制方法,创新性提出混合绘制方案一定程度上提升了绘制的准确性和真实感。

1 心脏绘制概述

心脏的绘制涉及到辐射度积分算法的实现。通过能量守恒,心脏辐射度计算又可以细分为表面高光、漫反射、次表面单次散射和次表面多次散射的计算。根据双向次表面散射分布函数(bidirectional scattering-surface reflectance distribution function,简称BSSRDF),使用漫反射分布函数近似心脏表面的辐照度卷积,最后通过辐射度的加权叠加拟合,实现基于物理的心脏次表面近似效果。

针对心脏的光照次表面散射绘制效果的提升,仿真环境中的心脏是借鉴三层结构模型[9]进行绘制,心脏的绘制路线概述如图1所示。首先通过初始化进行预处理操作,包括纹理生成和准备心脏三维网格模型等。其次,通过光照计算阶段分别计算相关光照项,根据能量守恒定律再进行叠加混合与后处理,得到最终的绘制效果。

2 心脏次表面散射项改进方法

心脏次表面散射项是心脏材质绘制的关键计算项(图1路线中的虚线框所在步骤),其实现方案的优劣直接影响到最终的绘制效果,以下主要针对次表面散射计算提出心脏次表面散射项改进方法。光线进入心脏后,次表面散射后的结果是渐趋均匀分布在心脏组织中。

心脏软组织中的散射主要由BSSRDF描述,传统方案需要根据该函数精确计算,它的一个特征是模糊表面细节和照明,使整体绘制效果趋向柔和。心脏的完整描述必须使用BSSRDF,其表面出射的辐照度可以根据下列公式[10]计算:

2.1 心脏纹理空间次表面散射

纹理空间,也称为纹理坐标系,Direct3D用u,v值表示纹理坐标,这与x,y坐标表示二维笛卡尔坐标系非常相似。纹理是一个二维数组,其通过纹理空间坐标来声明,所有纹理像素地址的范围都在0.0到1.0之间,包括0.0和1.0。当纹理映射到一个图元时,它的纹理像素地址必须要映射到对象坐标系,然后再映射到屏幕空间。

纹理空间技术可以有效地利用高斯核函数的性质,模拟出心脏的次表面散射效果。本研究中心脏纹理空间次表面散射方法使用扩散解析表达式R(r)描述光在心脏表面扩散的形状,并将其表示成多个高斯函数的线性组合。对于表达式R(r),这里采用高斯核函数之和来近似为

如图2所示,心脏次表面散射绘制步骤可概括如下:

(1)绘制心脏阴影纹理;

(2)拉伸矫正纹理绘制;

(3)绘制光照纹理;

(4)对于R(r)中的每一个高斯函数,都分别在

u、v坐标轴的每个方向上单独进行模糊操作,并缓存用于后续操作。

一般情况下,6个高斯核函数能够有效绘制心脏多层材质的次表面散射效果,尽管继续增加个数能提升心脏的绘制精度,但必然会使绘制效率受到影响。因为高斯核函数的旋转对称性和可分离性,为了进一步简化第4步中的计算,用多个高斯函数和的卷积近似多个高斯核函数卷积之和,分别对原始光照纹理分布在u方向和v方向上进行卷积操作,并存入缓存。

2.2 心脏屏幕空间次表面散射

屏幕空间,也叫投影空间,是一个用于显示最终绘制结果的二维坐标系,世界空间中的3D物体最终可能会投影成屏幕中的一些颜色像素。

在2.1步骤之后,我们已经能够得到视觉上还不错的心脏次表面散射效果,但因为存在近似和简化操作,使得最终的结果存在一些误差。所以,这里再叠加上心脏在屏幕空间次表面散射效果,也就是用BLUR来模拟心脏的多层散射效果。在心脏任意表面计算辐射出射度

如图3所示,屏幕空间的心脏次表面散射绘制步骤可概括如下:

(1)加载心脏纹理,根据纹理坐标确定纹理元素位置;

(2)根据纹理映射原理映射到屏幕空间;

(3)对渲染目标的像素进行筛选标记;

(4)绘制心脏材质,并对渲染目标进行水平和竖直方向高斯模糊,并进行缓存;

2.3 心脏次表面散射混合

针对心脏的次表面散射绘制效果,为了描述真实世界中的心脏特质,就必须描述光线在物体中的分布情形, 也就是BSSRDF。由于单一空间的半透明材质绘制方法难以达到预期的效果,不适合虚拟手术的运用场合。因此,为了实现符合物理规律且更加具有真实感的心脏显示效果,本研究探索性提出基于纹理空间和屏幕空间算法的心脏次表面散射材质绘制方案,用于提升整体的真实感。

对于心脏的次表面散射,本研究主要将其分为两个部分,即上述提到的心脏纹理空间的次表面散射和心脏屏幕空间的次表面散射。其基本思想是将次表面散射材质绘制方程分解到指定的平衡函数上,用这一组子函数的线性组合来逼近原函数,得到更好的次表面散射效果,即

纹理空间的处理和屏幕空间的处理是相互独立的。在纹理空间中,心脏次表面绘制根据阴影贴图进行光照贴图的计算和几何变换并绘制纹理。而在屏幕空间中,心脏次表面绘制将纹理坐标作为纹理元素位置加载纹理并映射到屏幕空间,最终在屏幕空间中对图像进行卷积操作,并将结果作为新的缓存纹理,该过程没有多余的计算。本研究中规定心脏的纹理空间次表面散射为远平面绘制,心脏的屏幕空间次表面散射为近平面绘制。

根据平衡公式(7),将上述产生的缓存纹理进行混合绘制。由于远平面绘制能够提供绝大部分的散射效果。近平面绘制又能弥补纹理空间次表面散射的瑕疵,因而能够生成具有高度真实感的心脏次表面散射绘制效果,基本流程如图4所示。

3 HDR光源照明

为了提升照明真实感,本研究中使用IBL方法[11](image-based light,简称IBL)计算光照影响,即使用真实世界的光照图来照明物体和场景的过程。

因而,这里的光照图需要引进HDR(high dynamic range,简称HDR)来增强模拟真实的光照环境。

另外,为了能全方位的映射光照,需要添加IBL从天空球中映射真实世界照明,则需要添加光照Probe。Probe图像具有类似凸透镜的广视角效果。其原理是通过拍摄相隔九十度的镜像球的两张HDR照片来创建光照Probe图像,并将两个辐射图组合成全球,如图5所示。另外,可在http://www.pauldebevec.com/Probes/网站获取更多的Probe图像,本文使用最后一个进行IBL计算。

4 后处理优化

4.1 心脏绘制反走样

混合绘制后,本研究将反走样作为后处理优化绘制效果,这里使用SMAA[12],即增强型子像素形态学抗锯齿技术,来进行反走样处理。SMAA更好的几何形体和对角形体检测处理机制,通过图形边缘局部特征对比来识别图像的锯齿特征,并通过重建子像素的方式实现抗锯齿功能。图6展示了未经过反走样与经过SMAA反走样处理的对比图。可以看出开启反走样之后,边缘的锯齿柔和许多。

4.2 心脏绘制抖动策略

本研究用可分离近似的方法分别对纹理空间和屏幕空间的心脏次表面散射绘制进行处理,取得了不错的效果。同时,为了避免在高分辨率上的瑕疵,我们使用随机抖动作为后处理步骤。随机抖动, 也称为高斯抖动,是不可预测的电子定时噪声,通常遵循高斯分布或者正态分布。其中,正态分布的概率密度遵循:

其中,μ是分配的平均值或期望值,σ是标准差,σ2是方差。在心脏绘制后,对输出像素的xy坐标上进行随机抖动,其效果是使像素能在原来的位置上产生轻微的偏移。同时,为了避免GPU缓存超负荷,本研究将抖动策略限制在靠近被观察的像素,能解决一部分的视觉瑕疵,从而在一定程度上更好的提升心脏绘制的真实感。

5 心脏次表面散射材质绘制流程

本研究绘制方案中,心脏次表面散射材质绘制是心脏显示真实感仿真的一个重要环节(如图1所示),主要由以下几个部分组成。第一阶段是预处理阶段,该阶段包括渲染凹凸纹理,渲染Beckman纹理等以及准备心臟三维网格模型。第二阶段是光照计算阶段,该阶段分别计算环境光、漫反射光、次表面散射光以及高光,其中次表面散射光主要利用本研究提出的基于纹理空间和屏幕空间的心脏次表面散射材质绘制方法计算,并利用式(7)中的平衡函数进行光照效果混合。第三个阶段是后处理阶段,该阶段分别运用SMAA反走样技术和像素抖动策略,使心脏的边缘更加柔和,并由于偏移,一定程度上掩盖极端条件下绘制的瑕疵。

本研究提出的绘制方案整体流程图如图7所示。

6 实验结果与分析

实验使用一台具有Intel Core(TM) i5-4200 M、2.50 Hz CPU、4 G内存、NVIDIA GeForce GT 755 M 2 G显示卡、运行Windows 7 64 bit操作系统的PC机作为仿真平台,仿真程序基于DirectX 10 API,在Visual Studio 2010开发工具上C++编写。该程序的开发框架为DXUT,着色器部分采用高级着色语言(HLSL)。心脏三维模型主要通过三维建模,贴图和导出,并用MeshConvertor转成所需的sdkmesh格式。Probe图像来源于网上开源素材。

如图8所示,基于纹理空间和屏幕空间混合的心脏次表面绘制方案的实验结果,由于改进原来的次表面散射项的光照计算方法,能更准确地表现心脏材质细节特性,在心脏血管,心脏较薄组织部位等容易出现次表面散射的地方得到了很好的改善,并且可以看出由于使用了反走样的后处理策略,边缘的锯齿状得到了改善,提升心脏显示真实感。

如图9所示,(a)是心脏纹理空间次表面散射材质绘制效果,(b)是本研究提出的心脏次表面散射材质混合绘制的效果。经过放大对比,能发现本方案能够在心血管附近等器官组织较薄的地方更准确地产生轻微的半透明效果,通过屏幕空间的再次绘制,使其更真实地模拟光线的多重散射和处理优化,提升了次表面散射的绘制效果。

如图10所示,(a)未开启反走样,(b)经过反走样处理。通过绘制结果对比,可以看出,经过反走样后处理的心脏绘制结果边缘更加柔和,没有出现明显的锯齿状,而未进行反走样处理的绘制结果则有明显的锯齿。

本研究提出的混合绘制方案改善了之前的方案在细节绘制准确性的不足,并且引进真实光源HDR,在视觉上极大提升了整体的真实感。该方法在一定程度上降低了心脏次表面散射材质绘制难度,有较高的帧率,如表1所示,给出了不同方案以及不同精度模型在相同条件下的心脏次表面散射材质绘制的实验结果。通过实验结果对比,可以看出本方案在分辨率为1280×1280,面数为145501时的帧速率为55 frame/s左右,与纹理空间绘制方法的85 frame/s相比下降不多,但获得了更好的绘制准确性和视觉真实感,具体细节表现如图8到图10绘制效果所示。

7 结论

本文提出一种基于纹理空间和屏幕空间混合的心脏次表面绘制方案。针对光照计算中的次表面散射绘制效果提升,本研究中将纹理坐标作为渲染对象坐标进行卷积运算,使2D纹理能够产生基础的次表面散射效果。同时,结合基于屏幕空间的近似算法弥补纹理空间算法的不足进行混合绘制,并使用后处理优化抗锯齿,产生更好的整体效果。针对光照计算中次表面散射绘制难度上,在纹理空间和屏幕空间的计算处理上通过分离近似求解,所以能很好地控制算法的复杂度。实验结果表明,本研究提出的方法能够在保证绘制速率的同时,提高绘制的准确性和真实感。

虽然该方案在次表面散射材质绘制上的改进使心脏显示真实感有所提升,但仿真效果在高分辨率情况下还会存在少许偏差。同时,由于需要同时处理纹理空间和屏幕空间的次表面散射绘制,多余的光照计算会使渲染速度有所下降。对于进一步的改进,将在今后的研究中继续探讨。

参考文献:

[1]DONG Y, LIN S, GUO B. Overview of Subsurface Light Transport [M]. Berlin :Springer Berlin Heidelberg, 2013.

[2]KOTHARI L G, SHAH K, BARACH P. Simulation based medical education in graduate medical education training and assessment programs[J]. Progress in Pediatric Cardiology,2017,1(2):56-63.

[3]徐庚保, 曾莲芝.计算机仿真系统述评[J].计算机仿真, 2012,29(4): 1-5.

[4]LAFORTUNE E P, WILLEMS Y D. Rendering participating media with bidirectional path tracing[C]// Eurographics Workshop on Rendering Techniques, Vienna: Springer-Verlag, 1996:91-100.

[5]MAISCH S, ROPINSKI T. Spatial Adjacency Maps for Translucency Simulation under General Illumination[C]// Computer Graphics Forum,State of New Jersey: Wiley Online Library,2017:443-453.

[6]FRISVAD J R, HACHISUKA T, KJELDSEN T K. Directional dipole model for subsurface scattering [M].Vol 34.No 1.New York: ACM, 2014: 5.

[7]HOLST D. Real-time rendering of subsurface scattering and skin [D]. Norrkoping : Linkoping University, 2017.

[8]JIMENEZ J, JARABO A, WU X C, et al. Separable Subsurface Scattering [J]. Computer Graphics Forum, 2015, 34(6): 188-197.

[9]赵沁平, 李帅, 郝爱民,等.一种动态物体次表面散射实时绘制方法[J].软件学报, 2010, 21(11): 2959-2970.

[10]JENSEN H W, MARSCHNER S R, LEVOY M, et al. A practical model for subsurface light transport[C]//Proceedings of the 28th annual conference on Computer graphics and interactive techniques. New York: ACM, 2001: 511-518.

[11]LUO B, CAI S, WEN S, et al. Render Synthetic Objects with Background Image According to Image-Based Lighting[C]//proceedings of the Proceedings of the 5th International Conference on Electrical Engineering and Automatic Control. Berlin : Springer-Verlag Berlin Heidelberg, 2016:357-365.

[12]JIMENEZ J, ECHEVARRIA J I, SOUSA T, et al. SMAA: enhanced subpixel morphological antialiasing [J]. Computer Graphics Forum, 2012, 31(2): 355-364.

(責任编辑:周晓南)

猜你喜欢
心脏
心脏增大是怎么回事?
拍打手臂内侧养护心脏
你了解心脏彩超吗
聊聊你的“心”事
心脏移植
巴洛龙有八个心脏
皮肤细胞可以用来治疗心脏创伤
了解心脏
有八颗心脏的巴洛龙
心脏移植小史等3篇