CN110807134A - 一种海洋三维标量场可视化方法 - Google Patents
一种海洋三维标量场可视化方法 Download PDFInfo
- Publication number
- CN110807134A CN110807134A CN201910958932.XA CN201910958932A CN110807134A CN 110807134 A CN110807134 A CN 110807134A CN 201910958932 A CN201910958932 A CN 201910958932A CN 110807134 A CN110807134 A CN 110807134A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- voxel
- sampling
- opacity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/904—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种海洋三维标量场可视化方法,包括步骤一:对海洋标量数据进行读取和均匀化处理;步骤二:设置颜色和不透明度传输函数;步骤三:遍历体素进行改进后的重采样;步骤四:进行图像合成,计算二维屏幕上的像素值。本发明设计了权重判定法和有效数据权重计算法对体素的一系列计算操作进行了改进,从减少采样点数量和计算时间方面对光线投射算法进行相应的优化。同时在图像合成这一步骤中根据测试得出的累计不透明度临界值来提前终止累计计算,加快了绘制速度。由此得到的海洋标量场可视化结果不仅提高了算法的绘制效率,还排除了体素内无效数据造成的误差影响,使图像更加精确质量更高。
Description
技术领域
本发明涉及一种海洋三维标量场可视化方法,特别是一种基于重采样优化光线投射算法的海洋三维标量场可视化方法,属于海洋三维可视化领域,涉及海洋环境要素的加速体绘制方法。
背景技术
随着海洋仪器的发展和数据采集技术的提高,海洋数据日益繁复庞大,对海量数据进行高效的管理和利用成为当前海洋研究领域的研究热点。可视化技术通过将具体的数值以图形的方式直观地呈现,在海洋信息研究中发挥着重要作用。这种技术作为数据处理的重要工具,直观地表达了数据的分布规律和信息,有利于更好地探究海洋环境要素标量场的结构特征和变化形态。
三维可视化技术主要依据两大类型的算法,分别是体绘制和面绘制,为了更好的显示海洋标量场的内部信息,体绘制算法是比较好的选择,其中海洋标量要素的三维可视化方法中最为经典的光线投射算法是体绘制应用最为广泛、成像质量较高、适应性强的常用算法。
在现有的专利和文献中也已对海洋标量场的可视化技术进行了研究和发明,例如:文献《支持实时裁剪操作的球面体绘制方法》中,田丰林基于地球球壳模型发明了支持实时裁剪操作的海洋标量场体绘制方法,通过在GPU端利用计算着色器实时计算顶点坐标,可支持海洋水体数据实时裁剪操作,对不同经纬深范围的海洋标量场数据有较好的可视化效果。文献《大规模三维标量场并行可视化技术综述》中,吴玲达等重点研究并行绘制技术对可视化计算的效率提升作用,加快了面绘制和体绘制的计算速度,使海洋数据的可视化效率得到提高。传统的光线投射算法来绘制海洋环境要素场的三维可视化方式可以较为直观清晰地呈现海洋环境要素的特征,在海洋环境要素场内部特征信息呈现方面也具有一定效果,但同时由于该算法是对三维数据场中的每一个体素都进行详细计算,故存在计算量大、绘制速度慢的硬性劣势,且在图像细节的呈现等方面也一些不可忽视的瑕疵问题,需要进一步进行优化改进。光线投射算法分为数据分类、设置颜色和不透明度传输函数、重采样、图像合成等主要步骤,其中重采样和图像合成两个步骤由于计算量较大导致光线投射算法的图像绘制效率较低,耗费大量的时间。重采样环节需要计算从屏幕上像素点发射的每条光线上所有采样点的坐标,并通过三线性插值算法来计算每个采样点的具体颜色值和不透明度值,所以总体用时取决于采样点的数量以及每个采样点的计算时间。图像合成环节则是利用重采样过程的计算结果,按照从前向后的顺序对得到的每条光线上的所有采样点进行累计合成计算,得到屏幕上对应像素点的最终颜色值,其计算效率也和采样点的数量密切相关。
发明内容
针对上述现有技术,本发明要解决的技术问题是提供一种基于重采样优化光线投射算法的海洋三维标量场可视化方法,通过减少重采样过程中,采样点数量和每个采样点的计算时间方面来使得绘制问题得到改善。克服传统光线投射算法绘制海洋三维标量场时存在的计算量大,绘制效率低,图像细节存在瑕疵等问题。
为解决上述技术问题,本发明的一种海洋三维标量场可视化方法,包括以下步骤:
步骤一:对海洋标量数据进行读取和均匀化处理,包括:
步骤1.1:读取海洋标量数据:
将三维数据编码值作为索引值读取原始海洋标量数据文件,然后整合读取的数据构成一个三维数据集原始海洋标量数据是按时间排序的.dat格式二进制文件,文件中包含时间、空间位置、海洋环境要素值、并由数据库进行管理;
步骤1.2:对数据进行深度方向均匀化处理,包括:
将深度方向的数据间隔设置为L,对深度方向上间隔大于L的数据进行插值填充,已知直线上两点坐标(x0,y0)和(x1,y1),区间(x0,x1)里某一位置x在该区间的对应的y的数据值满足:
步骤二:设置颜色和不透明度传输函数,包括:
步骤2.1:数据分类:
数据正常值的最大值向上取整,最小值向下取整,通过两者之间的差值除以4得到等差值,从最小取整值开始与等差值相加,一直加到等于最大取整值,求出五个平均阈值点,以这五个阈值点为界,将数据分为四类,最后数据的缺省值单独归为第五类;
步骤2.2:设置颜色传输函数:
将数据最小临界值设为蓝色,最大临界值设为红色,此范围内的属性值按照线性函数规律映射为颜色值,并将无效数据设置为白色;
步骤2.3:设置不透明度传输函数:
不透明度a为0~1,第一类数据的不透明度值设置为0.35,第二类数据的不透明度值设置为0.3,第三类数据的不透明度值设置为0.25,第四类数据的不透明度值设置为0.2,而第五类无效数据的不透明度值设置为0,完全透明。
步骤三:遍历体素进行改进后的重采样,包括:
步骤3.1:判断光线是否穿过体素,并计算光线与体素的交点和起始点:
将三维数据场的最外层六个表面组成的长方体看作一个包围盒,则光线先后穿过包围盒的两个交点为起始点和终止点,在海洋三维标量场的情况下,三维数据场的三个方向为经度、维度和海水深度,光线上任意采样点的三个空间坐标分量x、y、z计算公式为:
(x0,y0,z0)为像素点转换到物理空间坐标系后的坐标,(a,b,c)为转换后的发射光线方向向量,t为任意常数,立方体包围盒表达式为:
式中Xmin代表三维数据场经度方向X轴包围盒起点值、Xmax代表终点值、Ymin代表纬度方向Y轴包围盒起点值、Ymax代表终点值、Zmin代表深度方向Z轴包围盒起点值、Zmax代表终点值,分三组,即z=Zmin和z=Zmax,x=Xmin和x=Xmax、y=Ymin和y=Ymax三组包围盒扩展平面,根据包围盒表达式的边界条件,两式联立求出光线与包围盒的交点,其中选择离(x0,y0,z0)最近的点为起始点;
步骤3.2:判断是否为等值体素,确定采样步长:
判断体素的8个顶点上的要素值是否相等,若相等则为等值体素,采样步长Δt调整为1,无需进行插值计算,采样点值d取任意顶点值;否则为非等值体素,则使采样步长Δt=0.25;
步骤3.3:判断是否为有效体素,若是则求出体素所有采样点坐标及采样值,否则进入步骤3.4,具体为:
遍历所有光线穿过的体素,判断体素顶点是否含有无效数据值,若全为有效数据,则为有效体素,按照步骤3.1中的光线任意点计算公式和已求得的光线起始点坐标及确定的采样步长计算采样点坐标,然后根据三线性插值算法计算采样点对应的具体数值,若含有无效数据值,则进入步骤3.4;
步骤3.4:对于无效体素,计算无效数据权重后,根据权重判定法和有效数据权重计算法进行插值计算:
设计权重判定法,计算体素中的所有无效数据对采样点的影响权重w,计算公式为:
w=(1-x)(1-y)(1-z)w0+x(1-y)(1-z)w1+x(1-y)zw2
+(1-x)(1-y)zw3+(1-x)y(1-z)w4+xy(1-z)w5
+xyzw6+(1-x)yzw7
wi(i=0,1,...7)代表体素8个顶点的数据类型,无效数据为1,否则为0,当w>0.5,条件不满足,采样点判定为无效采样点,值无效,不计算;否则判定为有效采样点,由三线性插值计算出无效顶点数据值设为0时采样点值d,再由有效数据权重计算法计算采样点最终具体值deff,计算公式为:
deff=d/(1-w)
步骤四:进行图像合成,计算二维屏幕上的像素值,包括:
步骤4.1:根据穿过体素的光线上每个采样点不透明度,计算体素累计的不透明度:
根据计算的采样点数据值,通过不透明度的传递函数映射确定每个采样点的不透明度αj,再根据下式计算合成不透明度Ai:
当Ai大于等于0.9时,终止计算;
步骤4.2:根据每个采样点的颜色值和累计不透明度计算光线对应的像素的颜色值:
根据采样点的数据值,通过设计的颜色传递函数映射求出每个采样点的颜色值ci,再根据下式计算该像素点合成颜色值c(u,v):
步骤4.3:遍历二维屏幕上的所有像素点,重复步骤4.1和4.2,直到求出所有像素值得出二维图像。
本发明的有益效果:本发明一种基于重采样优化光线投射算法的海洋三维标量场可视化方法,主要针对体绘制过程中重采样这一重要环节,设计了权重判定法和有效数据权重计算法对体素的一系列计算操作进行了改进,从减少采样点数量和计算时间方面对光线投射算法进行相应的优化。同时在图像合成这一步骤中根据测试得出的累计不透明度临界值来提前终止累计计算,加快了绘制速度。由此得到的海洋标量场可视化结果不仅提高了算法的绘制效率,还排除了体素内无效数据造成的误差影响,使图像更加精确质量更高。
通过对海洋标量场进行等值体素与有效和无效体素的判别,来减少三线性插值的计算量和所需计算的体素数量,同时通过此方法计算得到的采样点的数据值不仅排除了体素内个别无效数据造成的误差影响,而且是根据各有效数据的权值计算得到,所以不仅提高了算法的绘制效率,还让结果更加精确,另外在图像合成的步骤中由于从前向后的投影方式可以通过设计迭代不透明度到一定值后提前终止该条光线的累计计算,从而加快绘制速度,这些都使得海洋标量场三维可视化的进程得到优化。
附图说明
图1为本发明提出的基于重采样优化的海洋三维标量场的加速光线投射方法的流程图
图2为本发明设定的海水温度颜色传输函数设计模式图
图3为本发明设定的海水不透明度传输函数设计模式图
图4为本发明提出的改进的采样点计算流程图
图5为本发明海洋标量场的三维可视化效果图
具体实施方式
下面结合附图对本发明做进一步说明。
本发明提出了一种加速的光线投射方法来完成海洋标量场的三维可视化,该方法主要针对体绘制过程中重采样这一重要环节,从减少采样点数量和计算时间方面对光线投射算法进行相应的优化。对于减少采样点数量,当采样点所在体素的8个顶点值相等时,对其进行三线性插值就会造成无意义的计算开销;同时,代表陆地、岛屿、海底等非海水类型的数据和在观察某一特定范围内的要素时其他处于范围外的数据都为无效数据,当采样点所在体素的8个顶点中混有无效数据时会造成错误插值结果,从而导致采样点最终颜色值和不透明度值的计算误差,所以不能对同时包含有效数据和无效数据的体素进行三线性插值计算。所以对采样点计算方法进行改进,只有在8个顶点为不等的有效数据时采用三线性插值计算,在其他特殊情况时设计相应的计算方法。对于减少计算时间,根据体素的特点自动调整采样步长,一般经过需要重点关注的体素时采用较小步长,经过不太重要的体素时自动调整为较大步长,从而减少采样点个数,节省采样时间。将自动调整采样步长法加入到改进的采样点计算方法中,进一步提高重采样过程的效率。
如图1所示,基于重采样优化的海洋三维标量场的加速光线投射方法的具体步骤如下:
步骤一:海洋标量数据读取及深度方向均匀化处理。
具体为:
步骤1.1、海洋标量数据读取。
原始的海洋标量数据为一系列按时间排序的.dat格式二进制文件,每个文件中包含时间、空间位置、海洋环境要素值等数据,由数据库进行管理。根据确定的三维数据编码值作为索引值读取相应的原始数据值。首先根据所需确定具体的时间范围、空间范围、分辨率,计算相应的三维数据编码值,将其作为索引值在数据管理系统中读取相应的海洋环境要素的原始数据值。然后将提取的一系列数据进行整合,构成一个三维数据集,得到用户所需的指定地理位置区域的数据。
步骤1.2、对数据进行深度方向均匀化处理。
由于原始数据在深度方向上非均匀分布,数据间隔随着海水深度的增大也会不同程度的增大。为了真实反映原始三维数据场大小形态,使深度方向数据均匀,并且确定合适的插值效率,根据测试经验,将深度方向的数据间隔设置为12.5米,代入下式通过线性插值算法对间隔大于12.5米的数据进行插值,已知直线上两点坐标(x0,y0)和(x1,y1),要得到区间(x0,x1)某一位置x在直线上的值y,代入以下公式求出深度方向上每隔12.5米处的数据值:
式中(x0,y0)和(x1,y1)为区间边界两点的坐标,(x,y)为区间(x0,x1)内插值所求的坐标。据此可补全深度方向上每隔12.5米处的属性值。
步骤二:设置颜色和不透明度传输函数。
具体为:
步骤2.1、数据分类。
数据正常值的最大值像上取整,最小值向下取整,通过两者之间的差值除以4得到等差值,从最小取整值开始与等差值相加,一直加到等于最大取整值,求出五个平均阈值点,以这五个阈值点为界,将数据分为四类,最后数据的缺省值单独归为第五类。以海水温度这个要素为例,根据统计经验,利用阈值分类法对海水温度数据进行分类。设5个阈值分界点ri(i=1,2,···,5),其中r1=-5、r2=5、r3=15、r4=25、r5=35,温度数据点的数值设为I(x,y,z)。满足-5≤I(x,y,z)<5的数据点归为第一类,满足5≤I(x,y,z)<15的数据点归为第二类,满足15≤I(x,y,z)<25的数据点归为第三类,满足25≤I(x,y,z)<35的数据点归为第四类,满足I(x,y,z)=9999的数据点归为第五类。
步骤2.2、设置颜色传输函数。
颜色传输函数采用RGB模型,R、G、B分别代表红、绿、蓝三原色,为了使数据场显示的更常规和美观,按照经验将数据最小临界值设为蓝色,最大临界值设为红色,此范围内的属性值按照线性函数规律映射为颜色值,对应到海水温度值上,将-5℃设为蓝色,35℃设为红色,此范围内的温度值按照线性函数规律映射为颜色值,并将无效数据设置为白色来避免干扰海水温度场的显示。颜色设计如图2所示。
步骤2.3、设置不透明度传输函数。
不透明度传输函数设计为阶梯型的分段函数。不透明度a为0~1,首先由于存在陆地等无效数据,为了避免无效数据遮挡三维温度场,将无效数据不透明度设置为0,即完全透明;根据测试,将第一类数据的不透明度值设置为0.35,第二类数据的不透明度值设置为0.3,第三类数据的不透明度值设置为0.25,第四类数据的不透明度值设置为0.2,使整个温度场的显示达到较好的效果。不透明度传函设计如图3所示。
步骤三:遍历体素进行改进后的重采样
具体为:
步骤3.1、判断光线是否穿过体素,并计算光线与体素的交点和起始点。
将三维数据场的最外层六个表面组成的长方体看作一个包围盒,则光线先后穿过包围盒的两个交点即为起始点和终止点,在海洋三维标量场的情况下,一般三维数据场的三个方向为经度、维度和海水深度。首先由空间直线的标准方程式可得光线的计算公式为:
式中,(x0,y0,z0)为像素点转换到物理空间坐标系后的坐标为,(a,b,c)为转换后的发射光线方向向量,x、y、z代表光线上任意采样点的三个空间坐标分量,设t为任意常数,可得x、y、z的计算公式为:
长方体包围盒的数学表达式为:
式中Xmin代表三维数据场经度方向X轴包围盒起点值、Xmax代表终点值、Ymin代表纬度方向Y轴包围盒起点值、Ymax代表终点值、Zmin代表深度方向Z轴包围盒起点值、Zmax代表终点值,分三组,即z=Zmin和z=Zmax,x=Xmin和x=Xmax、y=Ymin和y=Ymax三组包围盒扩展平面,分别利用公式(3),求出与这三组平面的交点,然后从每组的两个交点中选择距离视点较近的点,得到三个点,再从这三个点中选择距离视点最远的点,作为候选起始点;最后根据公式(4)判断候选起始点与包围盒的位置关系,若此候选起始点不在包围盒内,则光线不穿过体素。若在,则此候选起始点即为所求的光线射入体素的起始点。
步骤3.2、判断是否为等值体素,确定采样步长。
遍历所有光线穿过的体素,判断体素的8个顶点上的要素值是否相等,若相等则说明当前体素为等值体素。根据自动调整采样步长法,当采样点所在体素为等值体素时,说明体素采样无意义,采样步长Δt自动调整为1,说明体素不需进行插值计算,采样点值d取任意顶点值。若为非等值体素,则使其满足采样频率高于待采样数据间隔频率2倍的香农采样定理,即采样步长Δt=0.25。
步骤3.3、判断是否为有效体素,若是则求出体素所有采样点坐标及采样值,否则进入步骤3.4。
首先遍历所有非等值体素,判断体素的8个顶点值中是否含有9999.0000样式的数据值,若有,则代表该体素含有无效数据,那么采用三线性插值算法会造成采样点最终颜色值或不透明度值存在误差,所以不能直接采用三线性插值算法,直接进入步骤3.4。若全为有效数据,则为有效体素,可直接计算。根据设定的采样步长,沿着光线射入方向进行重采样。设采样步长设为Δt,则按照已求得的光线起始点坐标及采样步长,即可依次计算得到该光线上每个采样点的坐标,计算公式如下:
式中,(xnow,ynow,znow)代表该条光线上当前需要计算的采样点坐标,(xbef,ybef,zbef)代表该条光线上的上一个采样点的坐标,Δt代表设定的采样步长,(a,b,c)代表光线的方向向量。计算第一个采样点时,(xbef,ybef,zbef)则为起始点坐标,迭代后算出所有采样点的坐标。然后采用三线性插值算法计算当前采样点的具体数值,每次计算后需先判断所求坐标是否在包围盒内,若不在说明光线已经射出包围盒,结束该条光线的重采样过程。
因为体素一般设置为正方体,则可将(xnow,ynow,znow)以体素边长为单位长度1来进行标准化转换,转换后的坐标为(x,y,z),将其代入如下公式进行插值计算:
其中m000、m001、m010、m011为位于体素立方体顶面四角的点,m100、m101、m110、m111位于体素立方体底面四角的点,八个相邻点的数据值表示为f(mijk)(i,j,k=0,1)。
步骤3.4、对于无效体素,计算无效数据权重后,根据权重判定法和有效数据权重计算法进行插值计算。
设计权重判定法,当体素中混有无效数据时,计算体素中的所有无效数据对采样点的影响权重,权重与无效数据点和采样点间的距离成反比,与无效数据点的个数成正比,计算公式如下:
式中w代表体素内所有无效数据对采样点的影响权重,wi(i=0,1,...7)代表体素的8个顶点的数据类型,若是无效数据则设为1,否则设为0不参与计算。当w>0.5时,说明该体素中无效数据对采样点的影响比有效数据要大,判定不合格,则将该采样点的性质判定为无效采样点,值为无效数据值;否则判定为有效数据区域内的点,然后结合三线性插值算法和权重计算设计以下有效数据权重计算法,计算公式如下:
deff=d/(1-w) (8)
式中deff表示采样点最终具体值,d表示将无效数据值设为0时的三线性插值计算结果,w表示上一步计算的无效数据权重值。
如图4所示,整个步骤三对应的改进的重采样计算流程。
步骤四:进行图像合成,计算二维屏幕上的像素值。
具体为:
步骤4.1、根据穿过体素的光线上每个采样点不透明度,计算体素累计的不透明度。
二维图像的合成过程是首先按照屏幕上像素点的排列顺序,依次发射光线穿过三维数据场,然后从每条光线与包围盒相交的起始点到终止点之间,累积合成其中所有的采样点颜色值。由于从前向后的投影方式可以通过设计迭代不透明度到一定值后提前终止该条光线的累计计算,加快绘制速度,所以选择从前向后的合成方式。
根据步骤三计算的采样点的数据值,通过不透明度的传递函数映射确定每个采样点的不透明度,再根据下式计算合成不透明度:
式中αj表示第j个采样点的不透明度值,Ai为前i-1个采样点的累积不透明度,当不透明度值接近1时,第i个及以后的采样点都对当前像素影响很小,没有必要再继续当前光线的累积合成过程。因此在不影响图像质量的前提下,选择合适的Ai来提前终止光线的累积合成,根据多次测试经验得出,Ai值为0.9时效果最好,根据测试选择Ai达到0.9时终止光线的累积合成。
步骤4.2、根据每个采样点的颜色值和累计不透明度计算光线对应的像素的颜色值。
根据采样点的数据值,通过设计的颜色传递函数映射求出每个采样点的颜色值,再根据下式计算合成颜色值:
式中ci表示该像素点发射光线上的第i个采样点的颜色值,c(u,v)为二维屏幕上坐标值为(u,v)的像素点的合成颜色值。
步骤4.3、遍历二维屏幕上的所有像素点,重复步骤4.1和4.2,求出所有像素值得出二维图像。
本发明具体实施方式还包括:
本发明的基于重采样优化光线投射算法的海洋三维标量场可视化方法,具体步骤如下:
步骤一:对海洋标量数据进行读取和均匀化处理。
具体为:
步骤1.1、读取海洋标量数据。
首先确定三维数据编码值作为索引值,读取由数据库管理的一系列按时间排序的.dat格式二进制原始海洋标量数据文件。然后整合提取的一系列数据,构成一个三维数据集。
步骤1.2、对数据进行深度方向均匀化处理
根据测试经验,对深度方向上间隔大于12.5米的数据进行插值填充,求两端有值的区间(x0,x1)里某一位置x在该区间的值y的插值公式为:
步骤二:设置颜色和不透明度传输函数。
具体为:
步骤2.1、数据分类。
数据正常值的最大值像上取整,最小值向下取整,通过两者之间的差值除以4得到等差值,从最小取整值开始与等差值相加,一直加到等于最大取整值,求出五个平均阈值点,以这五个阈值点为界,将数据分为四类,最后数据的缺省值单独归为第五类。以海水温度为例,温度数据点的数值设为I(x,y,z)。满足-5≤I(x,y,z)<5的数据点归为第一类,满足5≤I(x,y,z)<15的数据点归为第二类,满足15≤I(x,y,z)<25的数据点归为第三类,满足25≤I(x,y,z)<35的数据点归为第四类,满足I(x,y,z)=9999的数据点归为第五类。
步骤2.2、设置颜色传输函数。
为了使数据场显示的更常规和美观,按照经验将数据最小临界值设为蓝色,最大临界值设为红色,此范围内的属性值按照线性函数规律映射为颜色值,并将无效数据设置为白色来避免干扰海水温度场的显示。
步骤2.3、设置不透明度传输函数。
不透明度a为0~1,根据测试,第一类数据的不透明度值设置为0.35,第二类数据设置为0.3,第三类数据设置为0.25,第四类数据设置为0.2,而第五类无效数据设置为0,完全透明,使整个温度场的显示达到较好的效果。
步骤三:遍历体素进行改进后的重采样。
通过对等值体素和无效体素的不同操作来达到改进和加速原始光线投射算法的重采样这一步骤。
具体为:
步骤3.1、判断光线是否穿过体素,并计算光线与体素的交点和起始点。
光线上任意采样点的三个空间坐标分量x、y、z计算公式为
(x0,y0,z0)为像素点转换到物理空间坐标系后的坐标,(a,b,c)为转换后的发射光线方向向量,t为任意常数。而立方体包围盒表达式为:
根据包围盒表达式的边界条件,两式联立求出光线与包围盒的交点,其中离(x0,y0,z0)最近的点为起始点。
步骤3.2、判断是否为等值体素,确定采样步长。
判断体素的8个顶点上的要素值是否相等,若相等则为等值体素,采样步长Δt调整为1,无需计算,采样点值d取任意顶点值。否则为非等值体素,则根据香浓采样定理设定使采样步长Δt=0.25。
步骤3.3、判断是否为有效体素,若是则求出体素所有采样点坐标及采样值,否则进入步骤3.4。
遍历所有光线穿过的体素,判断体素顶点是否含有无效数据值,若全为有效数据,则为有效体素,按照步骤3.1中的光线任意点计算公式和已求得的光线起始点坐标及确定的采样步长计算采样点坐标,然后根据三线性插值算法计算各采样点对应的具体数值。若含有无效数据值,则进入步骤3.4。
步骤3.4、对于无效体素,计算无效数据权重后,根据权重判定法和有效数据权重计算法进行插值计算。
设计权重判定法,计算体素中的所有无效数据对采样点的影响权重w,计算公式为:
w=(1-x)(1-y)(1-z)w0+x(1-y)(1-z)w1+x(1-y)zw2
+(1-x)(1-y)zw3+(1-x)y(1-z)w4+xy(1-z)w5
+xyzw6+(1-x)yzw7
wi(i=0,1,...7)代表体素8个顶点的数据类型,无效数据为1,否则为0。当w>0.5,条件不满足,采样点判定为无效采样点,值无效,不计算;否则判定为有效采样点,由三线性插值计算出无效顶点数据值设为0时采样点值d,再由有效数据权重计算法计算采样点最终具体值deff,计算公式为:
deff=d/(1-w)
步骤四:进行图像合成,计算二维屏幕上的像素值。
具体为:
步骤4.1、根据穿过体素的光线上每个采样点不透明度,计算体素累计的不透明度。
根据计算的采样点数据值,通过不透明度的传递函数映射确定每个采样点的不透明度αj,再根据下式计算合成不透明度Ai:
根据测试,当Ai大于等于0.9时,终止计算。
步骤4.2、根据每个采样点的颜色值和累计不透明度计算光线对应的像素的颜色值。
根据采样点的数据值,通过设计的颜色传递函数映射求出每个采样点的颜色值ci,再根据下式计算该像素点合成颜色值c(u,v):
步骤4.3、遍历二维屏幕上的所有像素点,重复步骤4.1和4.2,直到求出所有像素值得出二维图像。
Claims (1)
1.一种海洋三维标量场可视化方法,其特征在于,包括以下步骤:
步骤一:对海洋标量数据进行读取和均匀化处理,包括:
步骤1.1:读取海洋标量数据:
将三维数据编码值作为索引值读取原始海洋标量数据文件,然后整合读取的数据构成一个三维数据集原始海洋标量数据是按时间排序的.dat格式二进制文件,文件中包含时间、空间位置、海洋环境要素值、并由数据库进行管理;
步骤1.2:对数据进行深度方向均匀化处理,包括:
将深度方向的数据间隔设置为L,对深度方向上间隔大于L的数据进行插值填充,已知直线上两点坐标(x0,y0)和(x1,y1),区间(x0,x1)里某一位置x在该区间的对应的y的数据值满足:
步骤二:设置颜色和不透明度传输函数,包括:
步骤2.1:数据分类:
数据正常值的最大值向上取整,最小值向下取整,通过两者之间的差值除以4得到等差值,从最小取整值开始与等差值相加,一直加到等于最大取整值,求出五个平均阈值点,以这五个阈值点为界,将数据分为四类,最后数据的缺省值单独归为第五类;
步骤2.2:设置颜色传输函数:
将数据最小临界值设为蓝色,最大临界值设为红色,此范围内的属性值按照线性函数规律映射为颜色值,并将无效数据设置为白色;
步骤2.3:设置不透明度传输函数:
不透明度a为0~1,第一类数据的不透明度值设置为0.35,第二类数据的不透明度值设置为0.3,第三类数据的不透明度值设置为0.25,第四类数据的不透明度值设置为0.2,而第五类无效数据的不透明度值设置为0,完全透明。
步骤三:遍历体素进行改进后的重采样,包括:
步骤3.1:判断光线是否穿过体素,并计算光线与体素的交点和起始点:
将三维数据场的最外层六个表面组成的长方体看作一个包围盒,则光线先后穿过包围盒的两个交点为起始点和终止点,在海洋三维标量场的情况下,三维数据场的三个方向为经度、维度和海水深度,光线上任意采样点的三个空间坐标分量x、y、z计算公式为:
(x0,y0,z0)为像素点转换到物理空间坐标系后的坐标,(a,b,c)为转换后的发射光线方向向量,t为任意常数,立方体包围盒表达式为:
式中Xmin代表三维数据场经度方向X轴包围盒起点值、Xmax代表终点值、Ymin代表纬度方向Y轴包围盒起点值、Ymax代表终点值、Zmin代表深度方向Z轴包围盒起点值、Zmax代表终点值,分三组,即z=Zmin和z=Zmax,x=Xmin和x=Xmax、y=Ymin和y=Ymax三组包围盒扩展平面,根据包围盒表达式的边界条件,两式联立求出光线与包围盒的交点,其中选择离(x0,y0,z0)最近的点为起始点;
步骤3.2:判断是否为等值体素,确定采样步长:
判断体素的8个顶点上的要素值是否相等,若相等则为等值体素,采样步长Δt调整为1,无需进行插值计算,采样点值d取任意顶点值;否则为非等值体素,则使采样步长Δt=0.25;
步骤3.3:判断是否为有效体素,若是则求出体素所有采样点坐标及采样值,否则进入步骤3.4,具体为:
遍历所有光线穿过的体素,判断体素顶点是否含有无效数据值,若全为有效数据,则为有效体素,按照步骤3.1中的光线任意点计算公式和已求得的光线起始点坐标及确定的采样步长计算采样点坐标,然后根据三线性插值算法计算采样点对应的具体数值,若含有无效数据值,则进入步骤3.4;
步骤3.4:对于无效体素,计算无效数据权重后,根据权重判定法和有效数据权重计算法进行插值计算:
设计权重判定法,计算体素中的所有无效数据对采样点的影响权重w,计算公式为:
w=(1-x)(1-y)(1-z)w0+x(1-y)(1-z)w1+x(1-y)zw2
+(1-x)(1-y)zw3+(1-x)y(1-z)w4+xy(1-z)w5
+xyzw6+(1-x)yzw7
wi(i=0,1,...7)代表体素8个顶点的数据类型,无效数据为1,否则为0,当w>0.5,条件不满足,采样点判定为无效采样点,值无效,不计算;否则判定为有效采样点,由三线性插值计算出无效顶点数据值设为0时采样点值d,再由有效数据权重计算法计算采样点最终具体值deff,计算公式为:
deff=d/(1-w)
步骤四:进行图像合成,计算二维屏幕上的像素值,包括:
步骤4.1:根据穿过体素的光线上每个采样点不透明度,计算体素累计的不透明度:
根据计算的采样点数据值,通过不透明度的传递函数映射确定每个采样点的不透明度αj,再根据下式计算合成不透明度Ai:
当Ai大于等于0.9时,终止计算;
步骤4.2:根据每个采样点的颜色值和累计不透明度计算光线对应的像素的颜色值:
根据采样点的数据值,通过设计的颜色传递函数映射求出每个采样点的颜色值ci,再根据下式计算该像素点合成颜色值c(u,v):
步骤4.3:遍历二维屏幕上的所有像素点,重复步骤4.1和4.2,直到求出所有像素值得出二维图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958932.XA CN110807134A (zh) | 2019-10-10 | 2019-10-10 | 一种海洋三维标量场可视化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958932.XA CN110807134A (zh) | 2019-10-10 | 2019-10-10 | 一种海洋三维标量场可视化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110807134A true CN110807134A (zh) | 2020-02-18 |
Family
ID=69488098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910958932.XA Pending CN110807134A (zh) | 2019-10-10 | 2019-10-10 | 一种海洋三维标量场可视化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110807134A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111833427A (zh) * | 2020-07-21 | 2020-10-27 | 北京推想科技有限公司 | 对三维图像进行体绘制的方法及装置 |
CN112612777A (zh) * | 2020-12-24 | 2021-04-06 | 浙江大学 | 一种基于MySQL数据库的海洋数据管理与可视化系统和方法 |
CN112634430A (zh) * | 2020-11-17 | 2021-04-09 | 青岛中海潮科技有限公司 | 体可视化方法、装置、设备和存储介质 |
CN112862923A (zh) * | 2021-02-04 | 2021-05-28 | 山东大学 | 特征直方图驱动的二维标量场数据可视化方法及系统 |
CN113157990A (zh) * | 2021-04-27 | 2021-07-23 | 中国石油大学(华东) | 一种Cesium引擎下基于聚类算法的海洋标量可视化方法及系统 |
CN113269206A (zh) * | 2021-05-24 | 2021-08-17 | 山东大学 | 一种色彩嵌入的可视探索方法及系统 |
CN114067037A (zh) * | 2021-11-10 | 2022-02-18 | 中国测绘科学研究院 | 一种湖泊水质标量场体渲染生成方法及其存储介质 |
CN115035233A (zh) * | 2022-08-10 | 2022-09-09 | 中国人民解放军国防科技大学 | 全球多分辨率空间网格球面光线投射可视化方法和装置 |
CN117078501A (zh) * | 2023-10-17 | 2023-11-17 | 中科星图深海科技有限公司 | 一种提高海洋环境数据二维成像效率的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831644A (zh) * | 2012-07-09 | 2012-12-19 | 哈尔滨工程大学 | 一种海洋环境信息三维可视化方法 |
CN108874932A (zh) * | 2018-05-31 | 2018-11-23 | 哈尔滨工程大学 | 一种基于改进的光线投射算法的海洋水声场三维可视化方法 |
-
2019
- 2019-10-10 CN CN201910958932.XA patent/CN110807134A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831644A (zh) * | 2012-07-09 | 2012-12-19 | 哈尔滨工程大学 | 一种海洋环境信息三维可视化方法 |
CN108874932A (zh) * | 2018-05-31 | 2018-11-23 | 哈尔滨工程大学 | 一种基于改进的光线投射算法的海洋水声场三维可视化方法 |
Non-Patent Citations (1)
Title |
---|
温娜: "全球海洋再分析数据管理及可视化技术研究", 《万方数据库》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111833427A (zh) * | 2020-07-21 | 2020-10-27 | 北京推想科技有限公司 | 对三维图像进行体绘制的方法及装置 |
CN112634430A (zh) * | 2020-11-17 | 2021-04-09 | 青岛中海潮科技有限公司 | 体可视化方法、装置、设备和存储介质 |
CN112634430B (zh) * | 2020-11-17 | 2022-06-21 | 青岛中海潮科技有限公司 | 体可视化方法、装置、设备和存储介质 |
CN112612777A (zh) * | 2020-12-24 | 2021-04-06 | 浙江大学 | 一种基于MySQL数据库的海洋数据管理与可视化系统和方法 |
CN112612777B (zh) * | 2020-12-24 | 2023-12-12 | 浙江大学 | 一种基于MySQL数据库的海洋数据管理与可视化系统和方法 |
CN112862923A (zh) * | 2021-02-04 | 2021-05-28 | 山东大学 | 特征直方图驱动的二维标量场数据可视化方法及系统 |
CN113157990B (zh) * | 2021-04-27 | 2023-04-25 | 中国石油大学(华东) | 一种Cesium引擎下基于聚类算法的海洋标量可视化方法及系统 |
CN113157990A (zh) * | 2021-04-27 | 2021-07-23 | 中国石油大学(华东) | 一种Cesium引擎下基于聚类算法的海洋标量可视化方法及系统 |
CN113269206A (zh) * | 2021-05-24 | 2021-08-17 | 山东大学 | 一种色彩嵌入的可视探索方法及系统 |
NL2033087A (en) * | 2021-11-10 | 2023-06-07 | Chinese Acad Surveying & Mapping | Lake water quality scalar field volume rendering generation method and storage medium thereof |
CN114067037B (zh) * | 2021-11-10 | 2022-09-27 | 中国测绘科学研究院 | 一种湖泊水质标量场体渲染生成方法及其存储介质 |
CN114067037A (zh) * | 2021-11-10 | 2022-02-18 | 中国测绘科学研究院 | 一种湖泊水质标量场体渲染生成方法及其存储介质 |
CN115035233B (zh) * | 2022-08-10 | 2022-10-21 | 中国人民解放军国防科技大学 | 全球多分辨率空间网格球面光线投射可视化方法和装置 |
CN115035233A (zh) * | 2022-08-10 | 2022-09-09 | 中国人民解放军国防科技大学 | 全球多分辨率空间网格球面光线投射可视化方法和装置 |
CN117078501A (zh) * | 2023-10-17 | 2023-11-17 | 中科星图深海科技有限公司 | 一种提高海洋环境数据二维成像效率的方法 |
CN117078501B (zh) * | 2023-10-17 | 2023-12-29 | 中科星图深海科技有限公司 | 一种提高海洋环境数据二维成像效率的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110807134A (zh) | 一种海洋三维标量场可视化方法 | |
Hadwiger et al. | Real-time ray-casting and advanced shading of discrete isosurfaces | |
CN107564087B (zh) | 一种基于屏幕的三维线状符号渲染方法 | |
Carr et al. | Meshed atlases for real-time procedural solid texturing | |
Roettger et al. | A two-step approach for interactive pre-integrated volume rendering of unstructured grids | |
CN114219902A (zh) | 气象数据的体绘制渲染方法、装置和计算机设备 | |
US20050068333A1 (en) | Image processing apparatus and method of same | |
CN102117497B (zh) | 一种三维地形建模方法及系统 | |
CN106228594B (zh) | 基于曲面细分的台风模式云动画显示方法 | |
US6573893B1 (en) | Voxel transfer circuit for accelerated volume rendering of a graphics image | |
CN104933749B (zh) | 图形图元的裁剪 | |
EP1519317B1 (en) | Depth-based antialiasing | |
CN1655191A (zh) | 基于可编程图形硬件的多边形网格模型的快速体素化方法 | |
CN108874932B (zh) | 一种基于改进的光线投射算法的海洋水声场三维可视化方法 | |
CN106408626A (zh) | 图形处理系统 | |
Li et al. | Chameleon: An interactive texture-based rendering framework for visualizing three-dimensional vector fields | |
CN103308942A (zh) | 一种可视化地震数据的方法及系统 | |
CN106575429A (zh) | 图形处理单元中的高阶滤波 | |
CN109636894A (zh) | 一种基于像素点栅格化的动态三维热力计算方法及系统 | |
CN114511659A (zh) | 数字地球地形约束下的体绘制渲染优化方法 | |
Rojo et al. | Fourier opacity optimization for scalable exploration | |
Shen et al. | Interactive visualization of three-dimensional vector fields with flexible appearance control | |
KR20230167746A (ko) | 메시 정점 위치에 대한 반복 및 루트 찾기를 사용하여 표면에 근사하는 폴리곤 메시를 생성하기 위한 방법 및 시스템 | |
CN114549714A (zh) | 基于WebGL三维风向图可视化的渲染方法 | |
Chang et al. | Real‐time translucent rendering using GPU‐based texture space importance sampling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200218 |