舰船科学技术  2022, Vol. 44 Issue (22): 128-131    DOI: 10.3404/j.issn.1672-7649.2022.22.024   PDF    
船舶三维图像绘制纹理细节增强方法研究
李谷雨     
河南省智慧教育与智能技术应用工程技术研究中心,河南 郑州 450000
摘要: 船舶结构件三维建模是船舶设计与开发过程中的关键环节。在概念设计阶段,为了提高船舶三维模型的逼真程度,往往需要采用三维渲染技术提升模型的外观特性。其中,纹理映射是一种应用较广、效果良好的三维渲染手段。本文介绍纹理映射技术的原理与发展现状,结合GPU图像处理技术进行舰船三维图像绘制纹理细节的增强方法研究。
关键词: 三维图像     渲染     纹理映射     GPU     图像增强    
The texture detail enhancement technology of ship 3D image rendering
LI Gu-yu     
Henan Provincial Research Center of Wisdom Education and Intelligent Technology Application Engineering Technology, Zhengzhou 450000, China
Abstract: 3D modeling of ship structures is a key link in the process of ship design and development. In the conceptual design stage, in order to improve the fidelity of the ship 3D model, it is often necessary to use 3D rendering technology to improve the appearance characteristics of the model. Among them, texture mapping is a widely used and effective 3D rendering method. This paper describes the principle and development of texture mapping technology, and studies the method of enhancing texture details in 3D ship image rendering based on GPU image processing technology.
Key words: 3D image     rendering     texture mapping     GPU     image enhancement    
0 引 言

伴随着船舶制造业的迅速发展,世界主流船舶制造公司在提高设计水平、生产能力等方面做了大量的工作。目前,主流的船舶制造公司采用的三维建模软件包括CATIA,CREO,SolidWorks等,三维建模的精确程度与结构件开发周期、成本密切相关。在船舶部件的三维建模过程中,模型渲染能够提高船舶部件的真实感,客观反映船舶的设计水平。在模型三维渲染过程中,图像的纹理绘制和渲染是关键环节,通过纹理渲染,可以在三维建模过程中将材料的属性显示出来,比如钢材、油漆、表面防腐处理等,从而提升三维模型的真实感。

本文重点介绍纹理映射的概念和原理,基于GPU图像处理器研究船舶三维图像绘制的细节增强技术。

1 船舶三维建模中图像纹理映射的研究现状 1.1 坐标转换

在模型的三维渲染过程中,图像的纹理映射是表明渲染的重要技术,纹理映射是将二维空间点的信息通过映射关系赋予三维空间点,可以实现映射的信息包括颜色、亮度等,利用纹理映射能够提升模型的真实感,使三维建模的细节和可读性大大增强。

三维模型的纹理映射涉及图像空间、相机空间及像素空间的转化,空间中的实际物体坐标通过摄像机镜头和屏幕转化为图像坐标,图像坐标在进行纹理映射时转换为像素坐标。纹理映射过程中的坐标转换如下:

1)物体坐标与图像坐标转换

图像坐标是指实际物体通过摄像产生的坐标,建立物体坐标系和相机坐标系如图1所示。

图 1 物体坐标系和相机坐标系示意图 Fig. 1 Sketch map of object coordinate system and camera coordinate system

图像坐标与物体实际坐标之间满足共线条件方程,如下式:

$\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} $

式中: $ \left( {X,Y,Z} \right) $ 为物体的空间坐标, $ \left( {{X_c},{Y_c},{Z_c}} \right) $ 为摄像中心的空间坐标, $ \left( {x,y} \right) $ 为像素坐标, $ \left( {{x_u},{y_u}} \right) $ 为二维空间的中心坐标,f为方位像素, $\left( {{a_i},{b_i},{c_i},\;i = 1,2,3} \right)$ 为3个方位角的方向余弦,用下式计算:

$ \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} $

式中, $ \left( {\varphi ,\omega ,\kappa } \right) $ 为影像的姿态角。

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{。} $

式中: $ \left( {{f_m},{f_n}} \right) $ 分别为一个像素点在图像坐标系下的长度和宽度; $ \left( {m,n} \right) $ 为像素坐标; $ \left( {{m_0},{n_0}} \right) $ 为原点像素坐标。

1.2 纹理映射增强流程

纹理映射过程中需要重点考虑光影效果,光的散射同时会影响光的方向和频率,在纹理映射建模时需要将散射抑制。本文在进行船舶三维图像纹理映射增强中,首先建立光源映射方程:

$ 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{。} $

式中: $ {s_0} $ 为光源起始位置;S为终止位置;t为光的衰减系数。

船舶三维图像纹理映射增强流程如图2所示。

图 2 船舶三维图像纹理映射增强流程 Fig. 2 Enhancement process of ship 3D image texture mapping
2 基于GPU的船舶三维图像绘制纹理细节增强技术研究 2.1 GPU图像处理技术的发展现状

由于船舶三维模型包含的装配体和结构件数量众多,这些部件的总装模型的存储空间可达10 GB以上,如果针对每个部件再进行三维渲染和图像纹理细节增强,那对计算机的图像处理器有很高的要求。因此,在进行船舶三维图像绘制纹理细节增强时,采用GPU图像处理器,利用GPU的并行架构提高图像纹理细节增加的效果。

GPU图像处理器不仅在并行运算方面有明显的优势,在浮点处理能力和存储器速度上与传统的CPU相比也优势明显。此外,GPU图像处理器的兼容性良好,可以外接并行处理单元和存储器单元,进一步提升图像处理的性能。

图3为GPU图像处理器的工作流程图。

图 3 GPU图像处理器的工作流程图 Fig. 3 Workflow of GPU image processor

GPU图像处理首先从CPU中读取输入数据,生成图形流水线的顶点数据,然后通过着色器处理和图元生成模块,进行图像的光栅化和像素处理,最后将图像输出至GPU的缓存区。关键环节包括:

1)顶点数据处理

这阶段GPU图像处理器读取描述3D图形外观的顶点数据并根据顶点数据确定3D图形的形状及位置关系,建立起3D图形的骨架。目前通用的GPU中VertexShader(定点着色器)负责完成该功能。

2)光栅化

计算机显示器中的图像由大量像素构成,GPU在处理图像时需要首先将图像的点、线转换到对应屏幕的像素点。将一个矢量图像转换为像素点的过程就称为光栅化。

3)纹理映射

顶点数据只能生成物体图像的轮廓,必须要通过纹理映射才能实现图像的填充,使图像的真实感大幅提高。GPU的TMU单元负责纹理映射功能,这也是船舶三维图像细节增强的主要硬件单元。

4)像素处理和输出

GPU中Pixel Shader能够实现像素的处理功能,为像素确定最终的属性。处理后的图像发送至GPU的缓存区中。

2.2 视线纹理切片理论

在提高船舶三维图像绘制纹理的特征时,首先将经过明暗处理的船舶模型数据放入缓存区中,生成具有亮度、颜色等相关属性的图像。然后利用纹理坐标在视觉平面进行一系列切片,最后对这些纹理切片进行映射和增强。图4为视线纹理切片的示意图。

图 4 视线纹理切片的示意图 Fig. 4 Schematic diagram of line of sight texture slice

可知,给定了视线方向和纹理切片的数目,纹理采样的图像多边形是确定的,图中的纹理切片为8个多边形,根据多边形的位置可以唯一确定一个体素值,根据体素值可以实现纹理的映射和增强。

2.3 基于GPU的船舶三维图像绘制纹理细节增强

基于Windows10平台和Mobility Radeon R9 M295XGPU处理器,进行船舶结构件三维建模的图像细节渲染与增加,基本流程如图5所示。

图 5 船舶结构件三维建模的图像细节渲染流程 Fig. 5 Image detail rendering process for 3D modeling of ship structures

建立船舶三维图像的信号模型为:

$ g\left( {x,y} \right) = {g_{{\rm{in}}}}\left( {x,y} \right) \times {g_{{\rm{out}}}}\left( {x,y} \right) \text{。} $

式中: ${g_{{\rm{in}}}}\left( {x,y} \right)$ 为光源入射分量; ${g_{{\rm{out}}}}\left( {x,y} \right)$ 为光源折射分量。模型取对数如下:

$ \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) $

$ H\left( {x,y} \right) = \frac{{{R_h} - {R_l}}}{{1 - \exp {{\left( {c\cdot K\left( {x,y} \right)} \right)}^{2\text{π} }}}} \text{。} $

式中, $ {R_h} $ $ {R_l} $ 均为图像映射的像素增益。

最终得到船舶三维图像的纹理增强模型:

$ 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为船舶钣金结构件细节增强前后的对比示意图。

图 6 船舶钣金结构件细节增强前后的对比示意图 Fig. 6 Comparison diagram of ship sheet metal structure before and after detail enhancement
3 结 语

三维建模是船舶产品设计开发的基础和关键环节,本文针对船舶三维模型的图像绘制纹理细节的渲染和增强进行研究,详细介绍纹理映射原理和GPU图像处理器工作原理,并基于Windows平台进行了船舶钣金件模型的细节增强验证。

参考文献
[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