CN112862928B - 天文数据可视化方法、装置、计算机设备及可读存储介质 - Google Patents
天文数据可视化方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN112862928B CN112862928B CN202110205258.5A CN202110205258A CN112862928B CN 112862928 B CN112862928 B CN 112862928B CN 202110205258 A CN202110205258 A CN 202110205258A CN 112862928 B CN112862928 B CN 112862928B
- Authority
- CN
- China
- Prior art keywords
- astronomical
- particle
- coordinates
- pixel
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000013079 data visualisation Methods 0.000 title claims abstract description 46
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 239000002245 particle Substances 0.000 claims abstract description 243
- 239000000463 material Substances 0.000 claims abstract description 26
- 238000012800 visualization Methods 0.000 claims abstract description 19
- 238000009826 distribution Methods 0.000 claims abstract description 7
- 238000004364 calculation method Methods 0.000 claims description 78
- 230000006870 function Effects 0.000 claims description 54
- 238000004590 computer program Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000009877 rendering Methods 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明实施例提供了一种天文数据可视化方法、装置、计算机设备及可读存储介质,其中,该方法包括:将待可视化的天文浮点数据转换为像素数据存入图像文件;在图像处理器中创建粒子,初始化粒子坐标为规则网格分布,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系;读取所述图像文件,根据所述对应关系,将像素的数据赋值给对应的粒子,像素数据包括轨道参数;针对每个粒子,根据赋值所得的像素数据计算每个粒子的天文坐标;根据每个粒子的天文坐标和世界位置偏移属性,将每个粒子对应的像素偏移并显示在最终的天文坐标上。该方案通过GPU实现数据量庞大的天文数据的可视化的同时,有利于满足天文数据可视化的高精度要求。
Description
技术领域
本发明涉及天文数据处理技术领域,特别涉及一种天文数据可视化方法、装置、计算机设备及可读存储介质。
背景技术
本发明所涉及的天文数据通常包含海量的天体数据信息,由于数量巨大,通常以粒子技术进行模拟演示。从可视化角度看,数据类型可分为外观数据和运动数据。
外观数据包括天体的颜色、星等、尺寸、质量等所有可用于定义天体外观的信息,另外如磁场强度、特定物质的含量等等可量化的数据也均可定义为外观的可视化信息。定制外观相对易于实现,可通过定制多边形进行粒子替代,或者直接在粒子材质中将信息输出到自发光、颜色、不透明度等材质通道中实现。
运动数据大致可以分为以下三种:
动态轨道:包括椭圆轨道、抛物线轨道、近抛物线轨道等,通常行星及其卫星、绝大部分小行星、以及绝大部分人造卫星均为椭圆轨道,一部分彗星、小行星为抛物线或近抛物线轨道。这些轨道都可以用6个轨道根数来描述,包括平近点角、升交点黄经、近日点黄经、轨道倾角、偏心率、轨道半长轴,前四个根数均为角度单位,偏心率在0到1之间,决定了轨道是椭圆还是抛物线等形态,半长轴是长度单位;其中平近点角是随时间线性变化的变量,其余5个根数在常规计算中可视为常量。
时序运动数据:一系列在特定时间点采样的离散数据,例如在138亿年的宇宙演化数据中,每1亿多年生成1组包含天体坐标、速度的数据,可将两段临近采样作为起始、终结值做插值计算来获得任意指定时间的天体坐标;
静态天体:如恒星、梅西耶天体、河外星系等,在人类历史尺度的中短期内可视为静止,仅需将粒子定位到指定坐标即可;但在更长期的尺度仍有较小的位移变化,须将速度矢量等信息纳入运动计算,也可采用类似时序数据的插值计算;
除此之外还有更复杂的天文学术领域的数据及计算方法,不在本发明所涉及的领域内,但以上的数据已涵盖了大部分通用应用场景,其中轨道计算涉及到了较为专业的天文计算,其中部分重要天体的轨道要求很高的精度,超出计算机的单精度甚至双精度浮点上限,为科学可视化带来较大的难度。
天文数据的可视化由于其数据量庞大,通常都是在大型机上模拟,普通计算机的许多通用科学软件(包括Python平台)大多使用CPU计算,对GPU(Graphics ProcessingUnit,图形处理器)的支持有限,因此只进行小范围的模拟。而在通用GPU技术领域,如影视动画制作软件、游戏引擎中,其GPU粒子技术大多使用动力学方式如各种力场或者约束算法来控制群体运动,更适于精确度要求较低的视觉特效领域,难以基于大规模输入科学数据来实现逐个粒子的运动控制,因此无法保证科学性,且通用GPU只能达到单浮点精度,无法满足高精度的要求。
发明内容
本发明实施例提供了一种天文数据可视化方法,以解决现有技术中无法满足天文数据可视化的高精度要求的技术问题。该方法包括:
将待可视化的天文浮点数据转换为像素数据存入图像文件;
在图像处理器中创建粒子,初始化粒子坐标为规则网格分布,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系;
读取所述图像文件,根据所述对应关系,将像素的像素数据赋值给对应的粒子,像素数据包括轨道参数;
针对每个粒子,根据赋值所得的像素数据计算每个粒子的天文坐标;
根据每个粒子的天文坐标和世界位置偏移属性,将每个粒子对应的像素偏移并显示在最终的天文坐标上。
本发明实施例还提供了一种天文数据可视化装置,以解决现有技术中无法满足天文数据可视化的高精度要求的技术问题。该装置包括:
数据转换模块,用于将待可视化的天文浮点数据转换为像素数据存入图像文件;
粒子创建模块,用于在图像处理器中创建粒子,初始化粒子坐标为规则网格分布,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系;
数据赋值模块,用于读取所述图像文件,根据所述对应关系,将像素的像素数据赋值给对应的粒子,像素数据包括轨道参数;
天文坐标计算模块,用于针对每个粒子,根据赋值所得的像素数据计算每个粒子的天文坐标;
可视化模块,用于根据每个粒子的天文坐标和世界位置偏移属性,将每个粒子对应的像素偏移并显示在最终的天文坐标上。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的天文数据可视化方法,以解决现有技术中无法满足天文数据可视化的高精度要求的技术问题。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的天文数据可视化方法的计算机程序,以解决现有技术中无法满足天文数据可视化的高精度要求的技术问题。
在本发明实施例中,提出了将天文浮点数据转换为像素数据存入图像文件,然后,在图像处理器中创建粒子,初始化粒子坐标为规则网格分布,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系,进而读取图像文件,根据对应关系,将像素的像素数据赋值给对应的粒子,即可根据赋值所得的像素数据计算每个粒子的天文坐标,最后,根据每个粒子的天文坐标和世界位置偏移属性,即可将每个粒子对应的像素偏移并显示在最终的天文坐标上,实现天文数据可视化。与现有技术中通过CPU或GPU实现天文数据可视化的技术方案相比,本申请通过GPU实现数据量庞大的天文数据的可视化的同时,提出了基于像素的形式在GPU中实现实时计算和天体粒子的精确控制,使得可在通用平台的动画制作软件和游戏引擎中实现数百万天体的实时渲染;此外,以图像文件作为海量天文数据的载体,无须进行复杂的多边形建模,图像文件可一次性直接载入显存,进而在像素着色器中进行计算显示位置,并精确控制将天体的每一个像素偏移到计算所得的显示位置上,不涉及顶点计算,GPU处理过程不依赖顶点着色器(Vertex Shader)等其它处理管线,利用材质即可实现,图像渲染也能够达到像素级精度,有利于满足天文数据可视化的高精度要求。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例提供的一种天文数据可视化方法的流程图;
图2是本发明实施例提供的一种数据纹理的局部放大示意图;
图3是本发明实施例提供的一种天文数据可视化场景的示意图;
图4是本发明实施例提供的一种轨道像素偏移的示意图;。
图5是本发明实施例提供的一种具体实施上述天文数据可视化方法的流程图;
图6是本发明实施例提供的一种计算机设备的结构框图;
图7是本发明实施例提供的一种天文数据可视化装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本发明实施例中,提供了一种天文数据可视化方法,如图1所示,该方法包括:
步骤102:将待可视化的天文浮点数据转换为像素数据存入图像文件;
步骤104:在图像处理器中创建粒子,初始化粒子坐标为规则网格分布,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系;
步骤106:读取所述图像文件,根据所述对应关系,将像素的像素数据赋值给对应的粒子,像素数据包括轨道参数;
步骤108:针对每个粒子,根据赋值所得的像素数据计算每个粒子的天文坐标;
步骤110:根据每个粒子的天文坐标和世界位置偏移属性,将每个粒子对应的像素偏移并显示在最终的天文坐标上。
由图1所示的流程可知,在本发明实施例中,提出了将天文浮点数据转换为像素数据存入图像文件,然后,在图像处理器中创建粒子,初始化粒子坐标为规则网格分布,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系,进而读取图像文件,根据粒子的坐标,确定出粒子与像素的对应关系,根据对应关系,将像素的像素数据赋值给对应的粒子,即可根据赋值所得的像素数据计算每个粒子的天文坐标,最后,根据每个粒子的天文坐标和世界位置偏移属性,即可将每个粒子对应的像素偏移并显示在最终的天文坐标上,实现天文数据可视化。与现有技术中通过CPU或GPU实现天文数据可视化的技术方案相比,本申请通过GPU实现数据量庞大的天文数据的可视化的同时,提出了基于像素的形式在GPU中实现实时计算和天体粒子的精确控制,使得可在通用平台的动画制作软件和游戏引擎中实现数百万天体的实时渲染;此外,以图像文件作为海量天文数据的载体,无须进行复杂的多边形建模,图像文件可一次性直接载入显存,进而在像素着色器中进行计算显示位置,并精确控制将天体的每一个像素偏移到计算所得的显示位置上,不涉及顶点计算,GPU处理过程不依赖顶点着色器(Vertex Shader)等其它处理管线,利用材质即可实现,图像渲染也能够达到像素级精度,有利于满足天文数据可视化的高精度要求。
具体实施时,在将天文浮点数据转换为像素数据存入图像文件的过程中,将天文浮点数据转换为像素数据的具体方式本申请不做具体限定,可以采用现有技术中的转换方式实现。例如,对于最常用的像素格式PF_R8G8B8A8,R、G、B、A每个颜色通道都是8Bit,其取值范围可规格化为0~255而不损失精度,则浮点数据与像素数据各通道的转换关系就相当于10进制与256进制的转换,例如,浮点与像素可以有如下转换关系:
F=R*256^(-1)+G+B*256+A*256^2
其中,F代表天文浮点数据,R通道的位权为256^(-1)=0.00390625,这代表该浮点数的最小精度值。
具体的,像素数据占用的颜色通道数量可以不限于单像素的4个通道,也可以少于一个像素或跨像素存储,例如,仅占用RG通道、或者1个RGBA像素外加RG通道,具体可以根据应用场景所需精度来决定;每增加一个颜色通道,相当于增加一个256进制的数据位。如下为占用6个颜色通道(RGBA+RG)的转换示例:
F=R1*(256^k)+G1**(256^(k+1))+B1*(256^(k+2))+A1*(256^(k+3))+
R2*(256^(k+4))+G2*(256^(k+5))
其中,256^k为最小位权,指数k可以为负值。若浮点数为负数,符号额外占用1个颜色通道。
其他像素格式可根据颜色通道所占位数对转换进制作相应修改,例如,PF_R10G10B10A10的转换进制为2^10=1024,PF_R16G16B16的转换进制为2^16=65536。
具体实施时,将像素数据存入图像文件也可以通过多种存储排列方式实现,例如,可以将1个粒子的n条像素数据分别存储在n个纹理贴图中,也可以将1个粒子的所有像素数据以横向或纵向排列顺序存储在1张贴图中,图2为一个横向顺序排列的像素纹理局部放大截图。存储排列方式只要是结构化的、便于索引的存储方式即可。像素数据采用通用图像格式存储,使得不依赖于平台,便于扩展,有利于计算过程兼顾数据的高精度。
具体实施时,像素数据可以通过多种存储格式来存储,若所需数据量大于GPU图像分辨率上限,可以存储为多帧图像。例如,对于上亿级的超大规模数据,可将浮点数据存为图像序列帧并合成无压缩视频,读取时先将视频解码为单帧图像,再载入显存。
具体实施时,在图像处理器中创建粒子的过程中,可以通过图像处理器中的粒子坐标模块将粒子坐标快速初始化为均匀二维网格分布,例如,粒子均匀分布在水平XY平面第一象限,X轴方向宽度为PX,Y轴方向长度为PY,粒子尺寸和间隔均可以标准化为1个单位;然后,还可以初始化粒子外观形态,可以使用默认形态、或者指定恒星、小行星等特定外观的多边形进行粒子替代。除此之外,由于上述天文数据可视化方法后续的GPU操作仅对粒子的显示位置进行偏移,其真实顶点位置仍在初始位置,大多数图像引擎会自动根据初始位置解算粒子的可视范围,因此为了避免在GPU渲染阶段出现错误遮挡或剔除,还提出了选取若干粒子作为边界粒子,将边界粒子的坐标初始化为所有天体和/或轨道的最远边界,用于标定整个粒子模型的可视范围,边界粒子不参与显示,在场景中保持透明状态,避免影响其他粒子的显示。
具体实施时,在图像处理器中创建粒子后,为了实现粒子坐标与像素UV坐标的对应关系,可以在粒子的材质中将粒子的坐标映射为UV坐标,在GPU计算中,粒子的坐标可以直接传入显存,由于粒子坐标在初始化阶段已经是有序排列,创建粒子的材质,通过将粒子坐标映射为UV值,载入生成的数据纹理后(即存入像素数据的图像文件),可以使每个粒子的坐标与数据纹理的像素UV坐标建立一一对应的关系,无需额外传入其它参数即可完成寻址,降低了CPU和GPU之间的传输代价。
具体的,主流显卡可以支持8K贴图,共6千多万像素。若每个天体粒子包含6个轨道根数浮点数据,每个浮点转换为1个RGBA像素,则一张8K贴图可存储一千万个粒子数据,载入生成的数据纹理后,即可通过UV寻址一次性建立每个粒子的坐标与数据纹理的像素UV坐标的一一对应的关系。
具体实施时,在粒子的材质中将粒子的坐标映射为UV坐标的过程中,由于天文数据在数据纹理中按粒子顺序存储,每组数据占用N个像素,即每一个粒子对应N个像素;则粒子的坐标可映射为图像UV坐标,粒子坐标X、Y与该粒子数据第i个像素的UV坐标的映射关系如下:
U=(X*N+i+0.5)/(PX*N)
V=(Y+0.5)/PY
将粒子坐标映射为图像UV坐标后,由于图像UV坐标落在了每个像素的左上角,由于GPU单精度浮点仅有7位精确数据,第8位是估算值,造成的细微浮点误差可能导致采样UV落在左边或上边的临近像素上,为保证颜色采样精确,寻址UV应向右下偏移0.5像素,通过上述公式可以将像素UV坐标向右下偏移0.5像素,使采样点落到该像素中心上。
具体实施时,根据粒子坐标与像素UV坐标的对应关系,可以将像素的像素数据赋值给对应的粒子,进而即可以根据赋值所得的像素数据计算每个粒子的天文坐标,在计算粒子的天文坐标的过程中,对于精度要求在通用显卡的单精度浮点范围内的,可以通过以下方式计算粒子的天文坐标:像素数据可先转换为浮点数据,作为粒子的轨道参数属性参与轨道计算;向粒子的材质输入时间变量,将轨道参数代入相应轨道公式计算指定时间的轨道坐标,即为天体粒子的天文坐标。具体的,轨道公式可以参考或采用现有的计算公式。
具体实施时,太阳系绝大部分被精确观测的天体如行星、卫星、小行星等均为椭圆轨道,部分重要天体的轨道数据精度可能超出通用显卡的单精度浮点范围,直接将其像素数据转换为单精度浮点,多次计算后会出现累积误差和精度损失,导致近距离观察天体运动时显示为不连续的跳跃状态或像素撕裂。而GPU Shader内置的加、减、乘、除等操作符及sin、cos等内置函数均以单精度浮点为操作数,无法处理更高精度的浮点数据,因此,在本实施例中,对于对高精度数据,提出了可以通过以下方式实现以像素计算代替浮点计算来获取粒子的天文坐标:创建着色器函数、常量算子预计算和三角函数查表法用于高精度计算,其中,所述着色器函数用于基于像素数据进行基础计算,常量算子预计算用于预先存储常量算子的像素数据形式的计算结果,三角函数查表法用于基于像素数据进行三角函数查表;通过所述着色器函数、常量算子预计算和三角函数计算构建轨道公式,将每个粒子的像素数据输入轨道公式,将常量算子预计算结果和三角函数基于三角函数查表法获得的结果代入轨道公式,将轨道公式的计算结果转换为浮点数据,得到每个粒子的天文坐标。
具体的,创建的着色器函数直接对RGBA格式的像素数据进行基础计算,将像素数据代入公式,中间结果也均为像素数据,直至最终结果再转换为浮点数据,可避免多次计算的精度损失导致累积误差。针对绝大部分天体的椭圆轨道计算公式,除了某些常量算子外,还包括加、减、乘、正弦、余弦、反正切6种基础计算,因此本实施例提出对这6种基础计算进行优化即可解决椭圆轨道的高精度问题;同时也能解决时序运动数据插值算法主要涉及的加、减、乘计算。高精度像素计算主要包括以下三方面:
常量算子预计算:对于轨道运动的天体,轨道根数中仅平近点角是随时间变化的变量,其余的升交点黄经n、轨道倾角i、偏心率e等均为常量,因此sin(n)、cos(n)、sin(i)、cos(i)、sqrt(1+e*e)等算子也是常量,在数据初始化阶段先以CPU对这些算子进行高精度预计算,把浮点计算结果转换为同等精度像素数据,存入数据纹理,在后续计算中直接读取并代入公式即可,可保持高精度并节省GPU计算;
256进制基础计算:高精度像素数据相当于256进制数,开发专用Shader(着色器)函数,在像素着色器中执行256进制的加、减、乘、除计算,输出同等精度的像素数据;具体的,着色器函数进行加、减、乘、除等基础计算的原理与现有浮点数据的基础计算的原理相同,区别在于将浮点数据对应转换为256进制数的像素数据进行计算。
三角函数查表法:三角函数的高精度计算采用查表法,先在CPU预处理阶段将正弦、余弦、反正切等轨道计算常用的三角函数从0到360°以所需的高精度间隔执行采样计算,将计算所得浮点数据转换为像素数据,存入一个或多个高分辨率图像文件作为查找表;在GPU计算阶段,将三角函数的输入数据(像素数据)归一化为UV坐标,在查找表图像中快速寻址到对应的像素数据,即得到像素数据格式的三角函数计算结果;作为查找表的数据纹理可以根据精度要求可扩展至多个8K图像,以显存空间的增加换取精度的提升。具体的,该三角函数查表法与现有的三角函数查表法原理相同,区别在于该三角函数查表法将像素数据格式的三角函数结果存入数据纹理,用于查找像素数据格式的三角函数结果。
具体实施时,得到每个粒子的天文坐标后即可将天体粒子的显示位置偏移至最终的天文坐标上,实现天体的可视化,具体的,通过以下步骤将每个天体粒子对应的像素偏移并显示在最终的天文坐标上:
针对每个粒子,计算该粒子的多边形模型上每个像素的绝对世界位置相对该粒子中心坐标的偏移矢量;
将所述偏移矢量与该粒子的天文坐标相加,将相加结果作为最终的天文坐标,将该粒子对应的所有像素偏移并显示在最终的天文坐标上。
具体的,在像素着色器中,先计算在初始状态下粒子的多边形模型上每个像素的绝对世界位置相对该粒子中心坐标的偏移矢量,若数据中包含天体尺寸信息,计算偏移矢量还应乘以相应的尺寸增益,例如,在虚幻4的材质中,初始状态下粒子的多边形模型上每个像素的绝对世界位置为内置变量WorldPostion,粒子多边形的中心坐标为内置变量ParticlePosition。计算所得的天文坐标为P,则P为该粒子多边形在轨道上的新中心坐标。天体尺寸放大倍数为S,若要将粒子的多边形模型上每个像素从原始位置偏移到轨道上,并保持原多边形的形状,其偏移矢量为:
Offset=(WorldPostion-ParticlePosition)*S
将偏移矢量与该粒子的天文坐标相加,结果输出到材质着色器的世界位置偏移属性,即可将该粒子的多边形模型上每个像素的显示位置偏移,并绘制到最终的天文坐标上。具体的,图3是在虚幻4中以此方法实现的星系盘演化的天文可视化实时场景的示意图,数据来自国家天文台提供的AurigaProject,场景中包含200万GPU粒子,实时帧率可达到70FPS。
具体实施时,某些可视化场景需要显示天体的轨道而非天体粒子本身,在显示天体的轨道的过程中也可以采用上述的像素偏移方法实现。显示天体的轨道与显示天体粒子的区别在于显示天体的轨道是偏移整个轨道面而不是粒子多边形,在本实施例中,可以通过以下步骤实现显示天体的轨道:
针对轨道形态的每个粒子,将该粒子以不闭合的圆环多边形进行粒子替代,中心点为原点,计算该粒子的圆环多边形上每个像素的世界坐标相对x轴正方向的方位角;
将每个像素的方位角作为平近点角代入轨道公式,得到轨道中心线在该方位角的天文坐标;
计算该粒子的圆环多边形上每个像素相对圆环中心线的径向偏移量,将径向偏移量与天文坐标相加,根据相加结果将该粒子的圆环多边形上的每个像素偏移并显示到到轨道面上。
具体的,针对轨道形态的每个粒子,以不闭合的圆环多边形进行粒子替代,中心点为原点,在像素着色器中,可以通过以下公式计算圆环多边形上每个像素的世界坐标相对X轴(构建粒子时XY平面的X轴)正方向的方位角A:
A=atan(WorldPostion.y/WorldPostion.x)
其中,WorldPostion.y表示像素世界坐标的Y分量,WorldPostion.x表示像素世界坐标的X分量。
圆环多边形上每个像素的方位角A代表过去一个完整周期(或指定时间段)内该角度像素所对应轨道中心线的平近点角,以方位角A作为平近点角代入椭圆、抛物线或近抛物线轨道公式,或者通过线性转换为时间变量代入其他轨道公式,可得到轨道中心线在该方位角的实时天文坐标;
最后计算圆环多边形上每个像素相对圆环中心线的径向偏移量,与轨道中心线的实时天文坐标相加,即可将圆环多边形上每个像素偏移并绘制到轨道面上。偏移方式如图4所示,其中内圈为粒子的标准圆环,外圈为像素偏移之后的椭圆轨道,虚线表示像素偏移的过程。
具体的,以下结合图5介绍实施上述天文数据可视化方法的过程,如图5所示,该过程包括以下步骤:
步骤1、创建GPU粒子,以边界粒子标定可视范围;
步骤2、将天文浮点数据转换为像素数据存入图像文件;
步骤3、在粒子的材质中将粒子的坐标映射为UV坐标,读取像素数据,以便将像素数据赋值给对应的粒子;
步骤4、根据轨道公式、像素数据计算天体粒子的实时天文坐标,对高精度数据以像素计算代替浮点计算;
步骤5、利用世界位置偏移属性将天体粒子的所有像素偏移到计算所得的天文坐标,绘制粒子;
步骤6、对轨道形态的粒子根据粒子的圆环上每个像素的方位角计算其在轨道面上的偏移量,绘制轨道。
具体实施时,上述天文数据可视化方法通过像素偏移的方法,把天体的每一个像素偏移到计算所得的显示位置,而其真实顶点坐标仍在原始位置,在其它通用场景中若对顶点数据进行碰撞检测可能会导致错误,但由于天体与观察者相距均为天文尺度,不存在交互行为,天体之间的引力作用也都已包含在轨道计算中,仅需考虑视觉表现,因此,像素偏移方法最适用于天文领域的可视化。上述天文数据可视化方法利用材质即可实现,图像渲染也能够达到像素级精度,天文专业工作者只需掌握材质编辑器即可将可视化业务快速转换到通用动画软件和游戏引擎平台,获得通用GPU的加速,实现大规模天文数据的实时计算和渲染。
在本实施例中,提供了一种计算机设备,如图6所示,包括存储器602、处理器604及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的天文数据可视化方法。
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
在本实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的天文数据可视化方法的计算机程序。
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
基于同一发明构思,本发明实施例中还提供了一种天文数据可视化装置,如下面的实施例所述。由于天文数据可视化装置解决问题的原理与天文数据可视化方法相似,因此天文数据可视化装置的实施可以参见天文数据可视化方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是本发明实施例的天文数据可视化装置的一种结构框图,如图7所示,该装置包括:
数据转换模块702,用于将待可视化的天文浮点数据转换为像素数据存入图像文件;
粒子创建模块704,用于在图像处理器中创建粒子,初始化粒子坐标为规则网格分布,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系;
数据赋值模块706,用于读取所述图像文件,根据所述对应关系,将像素的像素数据赋值给对应的粒子,像素数据包括轨道参数;
天文坐标计算模块708,用于针对每个粒子,根据赋值所得的像素数据计算每个粒子的天文坐标;
可视化模块710,用于根据每个粒子的天文坐标和世界位置偏移属性,将每个粒子对应的像素偏移并显示在最终的天文坐标上。
在一个实施例中,粒子创建模块,具体用于在粒子的材质中将粒子的坐标映射为UV坐标,确定出粒子的坐标与像素UV坐标的对应关系,其中,将像素的UV坐标向右下偏移0.5像素。
在一个实施例中,天文坐标计算模块,具体用于创建着色器函数、常量算子预计算和三角函数查表法,其中,所述着色器函数用于基于像素数据进行基础计算,常量算子预计算用于预先存储常量算子的像素数据形式的计算结果,三角函数查表法用于基于像素数据进行三角函数查表;通过所述着色器函数、常量算子预计算和三角函数计算构建轨道公式,将每个粒子的像素数据输入轨道公式,将常量算子预计算结果和三角函数基于三角函数查表法获得的结果代入轨道公式,将轨道公式的计算结果转换为浮点数据,得到每个粒子的天文坐标。
在一个实施例中,可视化模块,具体用于针对每个粒子,计算该粒子的多边形模型上每个像素的绝对世界位置相对该粒子中心坐标的偏移矢量;将所述偏移矢量与该粒子的天文坐标相加,将相加结果作为最终的天文坐标,将该粒子对应的所有像素偏移并显示在最终的天文坐标上。
在一个实施例中,还包括:
边界模块,用于选取若干粒子作为边界粒子,将边界粒子的坐标初始化为所有天体和/或轨道的最远边界。
在一个实施例中,还包括:
方位角计算模块,用于针对轨道形态显示的每个粒子,将该粒子以不闭合的圆环多边形进行粒子替代,中心点为原点,计算该粒子的圆环多边形上每个像素的世界坐标相对x轴正方向的方位角;
轨道天文坐标计算模块,用于将每个像素的方位角作为平近点角代入轨道公式,得到轨道中心线在该方位角的天文坐标;
轨道可视化模块,用于计算该粒子的圆环多边形上每个像素相对圆环中心线的径向偏移量,将径向偏移量与天文坐标相加,根据相加结果将该粒子的圆环多边形上的每个像素偏移并显示到到轨道面上。
本发明实施例实现了如下技术效果:提出了将天文浮点数据转换为像素数据存入图像文件,然后,在图像处理器中创建粒子,初始化粒子坐标为规则网格分布,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系,进而读取图像文件,根据粒子的坐标,确定出粒子与像素的对应关系,根据对应关系,将像素的像素数据赋值给对应的粒子,即可根据赋值所得的像素数据计算每个粒子的天文坐标,最后,根据每个粒子的天文坐标和世界位置偏移属性,即可将每个粒子对应的像素偏移并显示在最终的天文坐标上,实现天文数据可视化。与现有技术中通过CPU或GPU实现天文数据可视化的技术方案相比,本申请通过GPU实现数据量庞大的天文数据的可视化的同时,提出了基于像素的形式在GPU中实现实时计算和天体粒子的精确控制,使得可在通用平台的动画制作软件和游戏引擎中实现数百万天体的实时渲染;此外,以图像文件作为海量天文数据的载体,无须进行复杂的多边形建模,图像文件可一次性直接载入显存,进而在像素着色器中进行计算显示位置,并精确控制将天体的每一个像素偏移到计算所得的显示位置上,不涉及顶点计算,GPU处理过程不依赖顶点着色器(Vertex Shader)等其它处理管线,利用材质即可实现,图像渲染也能够达到像素级精度,有利于满足天文数据可视化的高精度要求。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种天文数据可视化方法,其特征在于,包括:
将待可视化的天文浮点数据转换为像素数据存入图像文件;
在图像处理器中创建粒子,初始化粒子坐标为规则网格分布,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系;
读取所述图像文件,根据所述对应关系,将像素的数据赋值给对应的粒子,像素数据包括轨道参数;
针对每个粒子,根据赋值所得的像素数据计算每个粒子的天文坐标;
根据每个粒子的天文坐标和世界位置偏移属性,将每个粒子对应的像素偏移并显示在最终的天文坐标上;
其中,根据赋值所得的像素数据计算每个粒子的天文坐标,包括:
创建着色器函数、常量算子预计算和三角函数查表法,其中,所述着色器函数用于基于像素数据进行基础计算,常量算子预计算用于预先存储常量算子的像素数据形式的计算结果,三角函数查表法用于基于像素数据进行三角函数查表;
通过所述着色器函数、常量算子预计算和三角函数计算构建轨道公式,将每个粒子的像素数据输入轨道公式,将常量算子预计算结果和三角函数基于三角函数查表法获得的结果代入轨道公式,将轨道公式的计算结果转换为浮点数据,得到每个粒子的天文坐标;
其中,根据每个粒子的天文坐标和世界位置偏移属性,将每个粒子对应的像素偏移并显示在最终的天文坐标上,包括:
针对每个粒子,计算该粒子的多边形模型上每个像素的绝对世界位置相对该粒子中心坐标的偏移矢量;
将所述偏移矢量与该粒子的天文坐标相加,将相加结果作为最终的天文坐标,将该粒子对应的所有像素偏移并显示在最终的天文坐标上。
2.如权利要求1所述的天文数据可视化方法,其特征在于,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系,包括:
在粒子的材质中将粒子的坐标映射为UV坐标,确定出粒子的坐标与像素UV坐标的对应关系,其中,将像素UV坐标向右下偏移0.5像素。
3.如权利要求1至2中任一项所述的天文数据可视化方法,其特征在于,还包括:
针对轨道形态的每个粒子,将该粒子以不闭合的圆环多边形进行粒子替代,中心点为原点,计算该粒子的圆环多边形上每个像素的世界坐标相对X轴正方向的方位角;
将每个像素的方位角作为平近点角代入轨道公式,得到轨道中心线在该方位角的天文坐标;
计算该粒子的圆环多边形上每个像素相对圆环中心线的径向偏移量,将径向偏移量与天文坐标相加,根据相加结果将该粒子的圆环多边形上的每个像素偏移并显示到轨道面上。
4.如权利要求1至2中任一项所述的天文数据可视化方法,其特征在于,还包括:
选取若干粒子作为边界粒子,将边界粒子的坐标初始化为所有天体和/或轨道的最远边界。
5.一种天文数据可视化装置,其特征在于,包括:
数据转换模块,用于将待可视化的天文浮点数据转换为像素数据存入图像文件;
粒子创建模块,用于在图像处理器中创建粒子,初始化粒子坐标为规则网格分布,在粒子的材质中确定出粒子坐标与像素UV坐标的对应关系;
数据赋值模块,用于读取所述图像文件,根据所述对应关系,将像素的像素数据赋值给对应的粒子,像素数据包括轨道参数;
天文坐标计算模块,用于针对每个粒子,根据赋值所得的像素数据计算每个粒子的天文坐标;
可视化模块,用于根据每个粒子的天文坐标和世界位置偏移属性,将每个粒子对应的像素偏移并显示在最终的天文坐标上;
其中,天文坐标计算模块,具体用于创建着色器函数、常量算子预计算和三角函数查表法,其中,所述着色器函数用于基于像素数据进行基础计算,常量算子预计算用于预先存储常量算子的像素数据形式的计算结果,三角函数查表法用于基于像素数据进行三角函数查表;通过所述着色器函数、常量算子预计算和三角函数计算构建轨道公式,将每个粒子的像素数据输入轨道公式,将常量算子预计算结果和三角函数基于三角函数查表法获得的结果代入轨道公式,将轨道公式的计算结果转换为浮点数据,得到每个粒子的天文坐标;
其中,可视化模块,具体用于针对每个粒子,计算该粒子的多边形模型上每个像素的绝对世界位置相对该粒子中心坐标的偏移矢量;将所述偏移矢量与该粒子的天文坐标相加,将相加结果作为最终的天文坐标,将该粒子对应的所有像素偏移并显示在最终的天文坐标上。
6.如权利要求5所述的天文数据可视化装置,其特征在于,还包括:
方位角计算模块,用于针对轨道形态显示的每个粒子,将该粒子以不闭合的圆环多边形进行粒子替代,中心点为原点,计算该粒子的圆环多边形上每个像素的世界坐标相对x轴正方向的方位角;
轨道天文坐标计算模块,用于将每个像素的方位角作为平近点角代入轨道公式,得到轨道中心线在该方位角的天文坐标;
轨道可视化模块,用于计算该粒子的圆环多边形上每个像素相对圆环中心线的径向偏移量,将径向偏移量与天文坐标相加,根据相加结果将该粒子的圆环多边形上的每个像素偏移并显示到轨道面上。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的天文数据可视化方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的天文数据可视化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110205258.5A CN112862928B (zh) | 2021-02-24 | 2021-02-24 | 天文数据可视化方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110205258.5A CN112862928B (zh) | 2021-02-24 | 2021-02-24 | 天文数据可视化方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112862928A CN112862928A (zh) | 2021-05-28 |
CN112862928B true CN112862928B (zh) | 2024-03-15 |
Family
ID=75991118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110205258.5A Active CN112862928B (zh) | 2021-02-24 | 2021-02-24 | 天文数据可视化方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112862928B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114266880A (zh) * | 2021-12-28 | 2022-04-01 | 北京中航双兴科技有限公司 | 数据处理方法及装置 |
CN116932780B (zh) * | 2023-09-13 | 2024-01-09 | 之江实验室 | 天文知识图谱构建方法、资源查找方法、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053945A (zh) * | 2009-11-09 | 2011-05-11 | 中国科学院过程工程研究所 | 一种面向多尺度离散模拟的并行计算系统 |
CN102708227A (zh) * | 2012-04-18 | 2012-10-03 | 国家测绘局卫星测绘应用中心 | 基于sph算法的洪水溃坝过程仿真方法与仿真系统 |
CN106570215A (zh) * | 2016-10-13 | 2017-04-19 | 北京航空航天大学 | 一种基于时变气象数据的热带气旋动态仿真方法 |
CN108919955A (zh) * | 2018-07-02 | 2018-11-30 | 中北大学 | 一种基于多体感设备的虚拟沙画交互结合方法 |
-
2021
- 2021-02-24 CN CN202110205258.5A patent/CN112862928B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053945A (zh) * | 2009-11-09 | 2011-05-11 | 中国科学院过程工程研究所 | 一种面向多尺度离散模拟的并行计算系统 |
CN102708227A (zh) * | 2012-04-18 | 2012-10-03 | 国家测绘局卫星测绘应用中心 | 基于sph算法的洪水溃坝过程仿真方法与仿真系统 |
CN106570215A (zh) * | 2016-10-13 | 2017-04-19 | 北京航空航天大学 | 一种基于时变气象数据的热带气旋动态仿真方法 |
CN108919955A (zh) * | 2018-07-02 | 2018-11-30 | 中北大学 | 一种基于多体感设备的虚拟沙画交互结合方法 |
Non-Patent Citations (2)
Title |
---|
四面体网格化的粒子数据特征可视化;李观;单桂华;高阳;刘俊;;计算机辅助设计与图形学学报(01);全文 * |
大规模天文时序粒子数据的可视化;单桂华;谢茂金;李逢安;高阳;迟学斌;;计算机辅助设计与图形学学报(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112862928A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kirk | Graphics Gems III (IBM Version): Ibm Version | |
CN112862928B (zh) | 天文数据可视化方法、装置、计算机设备及可读存储介质 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
US4677576A (en) | Non-edge computer image generation system | |
US4343037A (en) | Visual display systems of the computer generated image type | |
CN110717005B (zh) | 一种热力图纹理的生成方法、装置及设备 | |
CN110738722B (zh) | 一种热力图纹理的生成方法、装置及设备 | |
CN105096385A (zh) | 一种二维地震剖面三维显示方法 | |
JPH03127282A (ja) | ディジタル・イメージのランド変換装置および方法 | |
CN111476877A (zh) | 一种阴影渲染的方法及装置、电子设备、存储介质 | |
CN109816770B (zh) | 使用神经网络的油画笔划模拟 | |
Chen | Guide to graphics software tools | |
CN112860839A (zh) | 一种基于Unity3D的水环境质量实时监测方法及装置 | |
US5550959A (en) | Technique and system for the real-time generation of perspective images | |
CN103617650A (zh) | 一种复杂三维地形显示方法 | |
GB2061074A (en) | Improved visual display systems for computer generated images | |
She et al. | An efficient method for rendering linear symbols on 3D terrain using a shader language | |
CN116342724A (zh) | 热力图对象生成方法、装置以及计算机可读存储介质 | |
Thorne | Origin-centric techniques for optimising scalability and the fidelity of motion, interaction and rendering | |
US8749559B2 (en) | Mesh sequence file format | |
Mezhenin et al. | Reconstruction of spatial environment in three-dimensional scenes | |
US7268788B2 (en) | Associative processing for three-dimensional graphics | |
CN112802165A (zh) | 游戏场景积雪渲染方法、装置及介质 | |
Amiraghdam et al. | LOOPS: LOcally Optimized Polygon Simplification | |
Timokhin et al. | Computer modeling and visualization of accurate terrain shadows in virtual environment system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |