伴随着船舶制造业的迅速发展,世界主流船舶制造公司在提高设计水平、生产能力等方面做了大量的工作。目前,主流的船舶制造公司采用的三维建模软件包括CATIA,CREO,SolidWorks等,三维建模的精确程度与结构件开发周期、成本密切相关。在船舶部件的三维建模过程中,模型渲染能够提高船舶部件的真实感,客观反映船舶的设计水平。在模型三维渲染过程中,图像的纹理绘制和渲染是关键环节,通过纹理渲染,可以在三维建模过程中将材料的属性显示出来,比如钢材、油漆、表面防腐处理等,从而提升三维模型的真实感。
本文重点介绍纹理映射的概念和原理,基于GPU图像处理器研究船舶三维图像绘制的细节增强技术。
1 船舶三维建模中图像纹理映射的研究现状 1.1 坐标转换在模型的三维渲染过程中,图像的纹理映射是表明渲染的重要技术,纹理映射是将二维空间点的信息通过映射关系赋予三维空间点,可以实现映射的信息包括颜色、亮度等,利用纹理映射能够提升模型的真实感,使三维建模的细节和可读性大大增强。
三维模型的纹理映射涉及图像空间、相机空间及像素空间的转化,空间中的实际物体坐标通过摄像机镜头和屏幕转化为图像坐标,图像坐标在进行纹理映射时转换为像素坐标。纹理映射过程中的坐标转换如下:
1)物体坐标与图像坐标转换
图像坐标是指实际物体通过摄像产生的坐标,建立物体坐标系和相机坐标系如图1所示。
图像坐标与物体实际坐标之间满足共线条件方程,如下式:
$\begin{split}& x - {x_u} = - f\frac{{{a_1}\left( {X - {X_{\text{c}}}} \right) + {b_1}(Y - {Y_c}) + {c_1}\left( {Z - {Z_c}} \right)}}{{{a_3}\left( {X - {X_c}} \right) + {b_3}\left( {Y - {Y_c}} \right) + {c_3}\left( {Z - {Z_c}} \right)}} \text{,} \\ &y - {y_u} = - f\frac{{{a_2}\left( {X - {X_c}} \right) + {b_2}\left( {Y - {Y_c}} \right) + {c_2}\left( {Z - {Z_c}} \right)}}{{{a_3}\left( {X - {X_c}} \right) + {b_3}\left( {Y - {Y_c}} \right) + {c_3}\left( {Z - {Z_c}} \right)}} \text{。}\end{split} $ |
式中:
$ \begin{split} {a_1} =& \cos \varphi \cos \kappa - \sin \varphi \sin \omega \sin \kappa ,\\ {a_2} =& - \cos \varphi \sin \kappa - \sin \varphi \sin \omega \cos \kappa ,\\ {a_3} =& - \sin \varphi \cos \omega ,\\ {b_1} =& \cos \omega \sin \kappa ,\\ {b_2} =& \cos \omega \cos \kappa ,\\ {b_3} =& - \sin \omega ,\\ {c_1} =& \sin \varphi \cos \kappa + \cos \varphi \sin \omega \sin \kappa ,\\ {c_2} =& - \sin \varphi \sin \kappa + \cos \varphi \sin \omega \cos \kappa ,\\ {c_3} =& \cos \varphi \cos \omega 。\end{split} $ |
式中,
2)图像平面坐标与像素坐标间的转换
像平面的单位一般为毫米,在将像平面坐标转换为纹理坐标时,首先需要转化为像素坐标,转换关系为:
$ \left[ {\begin{array}{*{20}{c}} m \\ n \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{f_m}}&0&{{m_0}} \\ 0&{{f_n}}&{{n_0}} \\ 0&0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} x \\ y \\ 1 \end{array}} \right] \text{。} $ |
式中:
纹理映射过程中需要重点考虑光影效果,光的散射同时会影响光的方向和频率,在纹理映射建模时需要将散射抑制。本文在进行船舶三维图像纹理映射增强中,首先建立光源映射方程:
$ I(s) = I\left( {{s_0}} \right){e^{ - t\left( {{s_0},t} \right)}} + \int_{{s_0}}^s q (s){e^{ - t\left( {{s_0},s} \right)}}{\rm{d}}s \text{,} $ |
光源的深度为:
$ t\left( {{s_1},{s_2}} \right) = \int_{{s_1}}^{{s_2}} k (s){\rm{d}}s \text{。} $ |
式中:
船舶三维图像纹理映射增强流程如图2所示。
由于船舶三维模型包含的装配体和结构件数量众多,这些部件的总装模型的存储空间可达10 GB以上,如果针对每个部件再进行三维渲染和图像纹理细节增强,那对计算机的图像处理器有很高的要求。因此,在进行船舶三维图像绘制纹理细节增强时,采用GPU图像处理器,利用GPU的并行架构提高图像纹理细节增加的效果。
GPU图像处理器不仅在并行运算方面有明显的优势,在浮点处理能力和存储器速度上与传统的CPU相比也优势明显。此外,GPU图像处理器的兼容性良好,可以外接并行处理单元和存储器单元,进一步提升图像处理的性能。
图3为GPU图像处理器的工作流程图。
GPU图像处理首先从CPU中读取输入数据,生成图形流水线的顶点数据,然后通过着色器处理和图元生成模块,进行图像的光栅化和像素处理,最后将图像输出至GPU的缓存区。关键环节包括:
1)顶点数据处理
这阶段GPU图像处理器读取描述3D图形外观的顶点数据并根据顶点数据确定3D图形的形状及位置关系,建立起3D图形的骨架。目前通用的GPU中VertexShader(定点着色器)负责完成该功能。
2)光栅化
计算机显示器中的图像由大量像素构成,GPU在处理图像时需要首先将图像的点、线转换到对应屏幕的像素点。将一个矢量图像转换为像素点的过程就称为光栅化。
3)纹理映射
顶点数据只能生成物体图像的轮廓,必须要通过纹理映射才能实现图像的填充,使图像的真实感大幅提高。GPU的TMU单元负责纹理映射功能,这也是船舶三维图像细节增强的主要硬件单元。
4)像素处理和输出
GPU中Pixel Shader能够实现像素的处理功能,为像素确定最终的属性。处理后的图像发送至GPU的缓存区中。
2.2 视线纹理切片理论在提高船舶三维图像绘制纹理的特征时,首先将经过明暗处理的船舶模型数据放入缓存区中,生成具有亮度、颜色等相关属性的图像。然后利用纹理坐标在视觉平面进行一系列切片,最后对这些纹理切片进行映射和增强。图4为视线纹理切片的示意图。
可知,给定了视线方向和纹理切片的数目,纹理采样的图像多边形是确定的,图中的纹理切片为8个多边形,根据多边形的位置可以唯一确定一个体素值,根据体素值可以实现纹理的映射和增强。
2.3 基于GPU的船舶三维图像绘制纹理细节增强基于Windows10平台和Mobility Radeon R9 M295XGPU处理器,进行船舶结构件三维建模的图像细节渲染与增加,基本流程如图5所示。
建立船舶三维图像的信号模型为:
$ g\left( {x,y} \right) = {g_{{\rm{in}}}}\left( {x,y} \right) \times {g_{{\rm{out}}}}\left( {x,y} \right) \text{。} $ |
式中:
$ \ln g\left( {x,y} \right) = \ln {g_{{\rm{in}}}}\left( {x,y} \right) + \ln {g_{{\rm{out}}}}\left( {x,y} \right) \text{。} $ |
在GPU处理器中建立图像纹理的映射方程
$ H\left( {x,y} \right) = \frac{{{R_h} - {R_l}}}{{1 - \exp {{\left( {c\cdot K\left( {x,y} \right)} \right)}^{2\text{π} }}}} \text{。} $ |
式中,
最终得到船舶三维图像的纹理增强模型:
$ F\left( {x,y} \right) = \frac{{{e^{\left( {{R_h} - {R_l}} \right)}}}}{{1 - \exp {{\left( {c\cdot H\left( {x,y} \right)} \right)}^{2\text{π} }}}} 。$ |
图6为船舶钣金结构件细节增强前后的对比示意图。
[1] |
王泽民, 田阳. 基于多点式结构光的三维地形纹理映射系统[J]. 应用激光, 2022, 42(5): 95-101. WANG Ze-min, TIAN Yang. 3D terrain texture mapping system based on multi-point structured light[J]. Application Laser, 2022, 42(5): 95-101. |
[2] |
彭川来. 基于两步法纹理映射的曲面零件激光打标技术研究[J]. 山西大同大学学报(自然科学版), 2021, 37(4): 14-16. PENG Chuan-lai. Research on laser marking technology for curved parts based on two-step texture mapping[J]. Journal of Shanxi Datong University (Natural Science Edition), 2021, 37(4): 14-16. |
[3] |
庞瑞, 朱琳, 张旺. 基于映射适应卷积理论的半球面纹理映射[J]. 现代计算机, 2021(7): 95-99. PANG Rui, ZHU Lin, ZHANNG Wang. Hemispherical texture mapping based on mapping adaptive convolution theory[J]. Modern Computer, 2021(7): 95-99. DOI:10.3969/j.issn.1007-1423.2021.07.021 |
[4] |
王一. 一种基于梯度和与一致性组合策略的无缝纹理映射方法研究[J]. 测绘工程, 2017, 26(11): 6-11. WANG Yi. Research on a seamless texture mapping method based on gradient sum and consistency combination strategy[J]. Surveying and Mapping Engineering, 2017, 26(11): 6-11. DOI:10.19349/j.cnki.issn1006-7949.2017.11.002 |