伴随着船舶制造业的迅速发展,世界主流船舶制造公司在提高设计水平、生产能力等方面做了大量的工作。目前,主流的船舶制造公司采用的三维建模软件包括CATIA,CREO,SolidWorks等,三维建模的精确程度与结构件开发周期、成本密切相关。在船舶部件的三维建模过程中,模型渲染能够提高船舶部件的真实感,客观反映船舶的设计水平。在模型三维渲染过程中,图像的纹理绘制和渲染是关键环节,通过纹理渲染,可以在三维建模过程中将材料的属性显示出来,比如钢材、油漆、表面防腐处理等,从而提升三维模型的真实感。
本文重点介绍纹理映射的概念和原理,基于GPU图像处理器研究船舶三维图像绘制的细节增强技术。
1 船舶三维建模中图像纹理映射的研究现状 1.1 坐标转换在模型的三维渲染过程中,图像的纹理映射是表明渲染的重要技术,纹理映射是将二维空间点的信息通过映射关系赋予三维空间点,可以实现映射的信息包括颜色、亮度等,利用纹理映射能够提升模型的真实感,使三维建模的细节和可读性大大增强。
三维模型的纹理映射涉及图像空间、相机空间及像素空间的转化,空间中的实际物体坐标通过摄像机镜头和屏幕转化为图像坐标,图像坐标在进行纹理映射时转换为像素坐标。纹理映射过程中的坐标转换如下:
1)物体坐标与图像坐标转换
图像坐标是指实际物体通过摄像产生的坐标,建立物体坐标系和相机坐标系如图1所示。
![]() |
图 1 物体坐标系和相机坐标系示意图 Fig. 1 Sketch map of object coordinate system and camera coordinate system |
图像坐标与物体实际坐标之间满足共线条件方程,如下式:
x−xu=−fa1(X−Xc)+b1(Y−Yc)+c1(Z−Zc)a3(X−Xc)+b3(Y−Yc)+c3(Z−Zc),y−yu=−fa2(X−Xc)+b2(Y−Yc)+c2(Z−Zc)a3(X−Xc)+b3(Y−Yc)+c3(Z−Zc)。 |
式中:
a1=cosφcosκ−sinφsinωsinκ,a2=−cosφsinκ−sinφsinωcosκ,a3=−sinφcosω,b1=cosωsinκ,b2=cosωcosκ,b3=−sinω,c1=sinφcosκ+cosφsinωsinκ,c2=−sinφsinκ+cosφsinωcosκ,c3=cosφcosω。 |
式中,
2)图像平面坐标与像素坐标间的转换
像平面的单位一般为毫米,在将像平面坐标转换为纹理坐标时,首先需要转化为像素坐标,转换关系为:
[mn1]=[fm0m00fnn0001][xy1]。 |
式中:
纹理映射过程中需要重点考虑光影效果,光的散射同时会影响光的方向和频率,在纹理映射建模时需要将散射抑制。本文在进行船舶三维图像纹理映射增强中,首先建立光源映射方程:
I(s)=I(s0)e−t(s0,t)+∫ss0q(s)e−t(s0,s)ds, |
光源的深度为:
t(s1,s2)=∫s2s1k(s)ds。 |
式中:
船舶三维图像纹理映射增强流程如图2所示。
![]() |
图 2 船舶三维图像纹理映射增强流程 Fig. 2 Enhancement process of ship 3D image texture mapping |
由于船舶三维模型包含的装配体和结构件数量众多,这些部件的总装模型的存储空间可达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(x,y)=gin(x,y)×gout(x,y)。 |
式中:
lng(x,y)=lngin(x,y)+lngout(x,y)。 |
在GPU处理器中建立图像纹理的映射方程
H(x,y)=Rh−Rl1−exp(c⋅K(x,y))2π。 |
式中,
最终得到船舶三维图像的纹理增强模型:
F(x,y)=e(Rh−Rl)1−exp(c⋅H(x,y))2π。 |
图6为船舶钣金结构件细节增强前后的对比示意图。
![]() |
图 6 船舶钣金结构件细节增强前后的对比示意图 Fig. 6 Comparison diagram of ship sheet metal structure before and after detail enhancement |
[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 |