LED体三维显示BCC采样体素化
2014-12-31林品武孔凡国魏盼盼
林品武,孔凡国,魏盼盼
(五邑大学,广东 江门 529020)
0 引言
目前,三维显示主要是在二维平面上根据人眼的特点显示三维物体,而立方体三维显示是在三维空间中显示三维物体[1],是三维显示领域的重要发展方向。在体三维显示的数据采样中,一般采用三维笛卡尔采样[2],而三维笛卡尔采样所需的体素量较多,精度也不是很理想[3]。本文采用BCC采样算法,通过实验与笛卡尔采样进行比较。
1 BCC采样
以8个相邻的采样点作为顶点形成一个立方体[4],这是笛卡尔栅格采样,而BCC采样栅格只要在笛卡尔栅格立方体的中心处多加一个采样点[5],经过修正处理后,就可以得出采样点的序列图,如图1所示。
图1 BCC采样阵列
很明显,两个笛卡尔栅格在空间中交错在一起形成了BCC采样栅格。所以,可以看出利用BCC采样在原理上可以节省采样空间,从而能减少采样的体素量,提高精度。为了证明这一猜想,本文以“牛”模型为例,对笛卡尔采样和BCC采样进行比较。
2 实验与分析
下面利用BCC采样和笛卡尔采样两种采样栅格方法对“牛”模型进行体素化处理,然后对体素化产生的结果进行比较和分析。
2.1 实验设计
如果笛卡尔栅格的体素为,那么BCC栅格的体素为,如果这两种栅格采样的点数量相等,则我们可以得出下列等式:
若Rcc分别取(80,128,160),根据式(1),则对应的Rbcc可近似取为(64,102,127)。另外如果将采样点的数量减少到70%×,这时BCC采样栅格的Rbcc对应为(56,90,113)。
表1给出了在实验中所用到的分辨率,以R[mn](m,n=1,2,3)表示。在表1中,可以看到第1列的分辨率与第2列同行分辨率的采样点数量差不多相等,而第3列的分辨率所表示采样点的数量是第1列或第2列同行的70%。
表1 采样栅格分辨率R[m n]
本文利用C++语言编程,其运行环境为Visual C++6.0,利用OpenGL函数库绘制图形。实验的平台是1台512MB内存和Intel PentiumIV 1.8GHz CPU的PC机。
2.2 结果和分析
建立模型“牛”,采用笛卡尔栅格以1603的分辨率体素化(采样点数量为4 096 000),BCC栅格以2·1273的分辨率体素化(采样点数量为4 096 766),两种方法的采样点数量非常接近,可以认为相等。表2给出了“牛”的3DS模型经过体素化实验后得到的数据,分辨率R[mn]的对应值在表1中查得。
以单个体素为单位利用OpenGL在计算机上绘制体素模型。两种采样方式得到的体素模型分别如图2(b)、2(c)所示。可以看到,图2(b)、2(c)体素化模型能很好地再现原模型(如图2(a)所示)。
相比图2(b)的体素模型,图2(c)中的体素模型的细节更加丰富,表面轮廓更加清晰,更接近原模型,这一点从模型的尾部、蹄部及腿细节的比较中均能看出来。由表2可知,图2(b)模型的体素量是40 069,而图2(c)模型的体素量是29 019,相比图2(b)减少了27.6%。
表2 “牛”的3DS模型体素化数据
图2 “牛”的3DS体素模型
将采样点数量4 096 000降低70%,即变为2 885 794,这时分辨率为2×1133,得到“牛”的体素模型如图2(d)所示。可以看出图2(b)和图2(d)中的体素模型有十分相仿的视觉效果,说明这两种采样方式采获的信息量大致相等。而图2(d)模型的实际体素量是22 691,相比图2(b)减少了43.4%。
3 结论
在采样点数量相等的情况下,与笛卡尔采样栅格得到的体素模型相比,采用BCC采样得到的体素模型,提高了精度,而且减少了体素量。如果将BCC栅格采样的数量降低到笛卡尔采样数量的70%后,两种方式获得的体素化模型精度非常接近,而由BCC采样得到的模型的体素量要比笛卡尔采样得到的模型体素量减少43.4%。很明显,这样可以较大地节省程序运行时间和数据存储空间,可见BCC采样栅格在三维显示图像处理方面具有明显的优势。
[1]李元奎,姚剑敏,林志贤,等.基于FPGA的LED体三维显示方案研究[J].光电子技术,2010,30(1):22-23.
[2]刘珂珂,刘锦高.体三维模型数据采集技术研究[J].信息技术,2011(7):130-131.
[3]姜太平,占涛,王帅.基于体绘制的真三维显示中体素路径优化算法分析[J].航空电子技术,2011,42(2):21-25.
[4]邢建芳,龚华军,沈春林,等.面向体三维显示器的图形算法设计[J].南京航空航天大学学报,2011,42(6):786-792.
[5]陆海霞,郑文庭,陈为,等.彩色体三维显示系统上基于GPU的实时均匀体素化算法[J].计算机辅助设计与图形学学报,2010,22(3):373-381.