CN111681307A - 一种应用于三维软件的动态三维坐标轴的实现方法 - Google Patents
一种应用于三维软件的动态三维坐标轴的实现方法 Download PDFInfo
- Publication number
- CN111681307A CN111681307A CN202010509345.5A CN202010509345A CN111681307A CN 111681307 A CN111681307 A CN 111681307A CN 202010509345 A CN202010509345 A CN 202010509345A CN 111681307 A CN111681307 A CN 111681307A
- Authority
- CN
- China
- Prior art keywords
- axis
- dimensional
- scale
- coordinate axis
- background
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种应用于三维软件的动态三维坐标轴的实现方法,具体包括以下步骤:S1、调用本发明的接口,开始执行生成三维坐标系的指令,S2、初始化坐标轴的所有相关参数,S3、数据预处理,S4、生成坐标轴空间,S5、实例化轴线单元,S6、更新轴线单元,S7、监测更新,本发明涉及三维设计技术领域。该应用于三维软件的动态三维坐标轴的实现方法,应用性强,本发明实现的三维坐标轴,具有功能完备、标定准确、适配性、可操作性、自定义程度高、三维立体感强和视角全面优点,适应面广,在三维软件的各应用领域,均可采用本发明实现的三维坐标轴,移植性能好,跨平台能力强,计算流畅度,同时具有很好的可拓展性。
Description
技术领域
本发明涉及三维设计技术领域,具体为一种应用于三维软件的动态三维坐标轴的实现方法。
背景技术
坐标轴是数学中一种用于空间计算的事物,包括一维、二维、三维的坐标轴,在一些常规的设计与计算软件中,常见的是一维或者二维的坐标轴,相对而言,三维空间中的三维坐标轴,因为三维视角的独特性,实现及表述困难,在常规的三维应用软件中,缺少三维坐标轴的实现方法,即使在一些三维软件中提供三维坐标轴,也只是提供静态的三维坐标轴,目前只有在一些专业的计算工具,如矩阵计算软件matlab等中,提供三维空间坐标轴功能模块,该模块也是仅仅服务于计算核心本身,表现方式过于二维化,同时仅仅作用于软件本身,无法扩展到广大的应用领域,并非是一种通用的解决方案。
根据上述考虑,本发明采用当前最成熟的三维软件开发框架和技术,从坐标轴设计的原点开始,实现了一种从基于的点、线、面等基础元素绘制的三维空间轴,以unity3d引擎构建具有全视角的720度三维基础空间,使用OpenGL、ComputeShader等三维渲染与计算技术,在绝对空间的三维环境下,实现原点、轴、箭头、标注、标题、刻度、底面背景、网格等坐标轴元素的建立,从而形成了一个构成元素丰富的三维坐标轴系统,并在这个自由度非常高的三维空间中,通过自动和主动适配算法,并实现该坐标轴的各种动态变换。
本发明实现的三维空间坐标轴,是存在于自由度很高的三维空间中,辅助于三维可视化更好呈现,应用范围广阔,可使用于包括科学计算、三维设计、教学培训、空间计量、仪器软件等应用场景,作为一个从底层开始建立的三维坐标系统,可作为辅助模块单元嵌入到各种自定义的三维软件之中。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种应用于三维软件的动态三维坐标轴的实现方法,主要针对是三维空间直角坐标轴,可拓展为极坐轴,是在720度自由度的三维空间中,实现的一种动态的、可适配观察区域、高性能低消耗的三维空间坐标轴,能够很好的用于辅助三维可视化软件和项目。
(二)技术方案
为实现以上目的,本发明通过以下技术方案予以实现:一种应用于三维软件的动态三维坐标轴的实现方法,具体包括以下步骤:
S1、调用本发明的接口,开始执行生成三维坐标系的指令;
S2、初始化坐标轴的所有相关参数,即通过接口获得三维坐标系每一个轴线单元的相关属性;
S3、数据预处理,根据获得的数据计算出三维空间坐标轴的长宽比例,按照空间适配方法进行适配处理,在完成数据预处理后,开始执行坐标轴实例化操作;
S4、生成坐标轴空间,根据背景面的适配方法对轴的长、宽、高比例搭建一个坐标轴空间,在绝对三维空间,设置左、后、右、前、底共5个单向的背景面片,面片的法线与镜头视线的夹角低于90度时才可见,并按照背景面的渲染算法,来计算背景面的纹理;
S5、实例化轴线单元,根据轴线单元的属性,生成轴线、箭头、刻度线、刻度和轴标题;
S6、更新轴线单元,通过轴的动态变化适配方法根据轴线单元的属性,更新轴线、箭头、刻度线、刻度、轴标题的位置、大小和角度,更新刻度、轴标题的内容和镜头变化产生的适配;
S7、监测更新,在三维软件每个计算循环(帧),监测镜头的变化,以及坐标轴控制的输入,如果没有输入,则不考虑计算节省计算消耗,如果存在更新,则按照分层更新机制来重新实例化或者更新实例。
优选的,所述步骤S2中形成一个条轴单元相关的参数包括轴单元起始位置、轴单元结束位置、轴单元线宽、箭头大小、刻度线宽度、刻度线长度、刻度线步径、刻度字体的大小、刻度字体内容比例、刻度的步径、网格线宽、网格步径、是否显示轴线、是否显示刻度线、是否显示刻度以及轴标题。
优选的,所述步骤S3中空间适配方法具体包括以下步骤:
a1、首先确定以垂直方向为参照方向,设置高度为-5-5之间;
a2、其次在水平方向的两个轴,判断两个轴中的长度的最大值,设置该轴的长度为-5-5之间,同时按照一定比例设置另一条轴的长度,最短轴的长度不应低于2,如果低于2则通过补全的方式,适配至大小为2。
优选的,所述步骤S4中背景面的适配方法是通过背景面采用单向可视的面片模型,即将镜头的视线与平面法线的夹角,即入射角小于90度时,该背景面才可视,视线为镜头中点至背景面中点的那条线,采用该方法,可以让三维坐标轴中的三维对象在任意镜头下均可有很好的可视度,让背景面无法遮挡三维对象。
优选的,所述步骤S4中背景面的渲染算法具体包括以下步骤:
b1、纹理初始化,设置纹理的大小规格,即将纹理贴图的像素全部设置为指定的背景色,纹理的大小按照被动适配规则生成;
b2、渲染网格,根据轴线单元的网格属性,在纹理上生成网格,网格的颜色可以指定,将网格直接渲染到底面背景,能够在二、三级更新中,取得更高的性能表现;
b3、渲染AO,对纹理的边缘,实现一个5像素的渐变的阴影,大小可以指定;
b4、根据像素数据,生成最终的纹理图片。
优选的,所述步骤S5中轴线单元的实例化,是指将轴线单元的一系列的相关元素,生成具体的对象,具体为通用的画线工具生成带有轴线和刻度线的三维网格,使用顶点渲染的方式实现线的渲染,刻度与轴标题通用三维空间字体工具生成三维网格与纹理,箭头则通过三维网格编辑的主式生成三维网格,以及通过顶点渲染的方式实现,三维网格编辑是设置三维网格的顶点、三角面、法线和颜色三维网格属性,即可实例化一个三维网格。
优选的,所述步骤S6中轴的动态变化适配方法具体包括以下步骤:
c1、对前、左、后、右四个背景面进行分类,在绝对空间中,以左侧的背景面开始,按顺时针方向分为1、2、3、4;
c2、循环计算四个背景面与镜头视线的夹角;
c3、剔除小于0的入射角,提取其中的最小视角的背景面,取得该背景面的编号,最大视角的那个背景面的左侧边缘,即为垂直轴线单元的位置;
c4、根据获得的编号,动态计算轴线、刻度、刻度线、箭头、标注、轴标题的相应位置,即按照每一个编号设定轴线单元相关元素的三维空间属性(位置、角度、大小)。
优选的,所述步骤S7中分层更新机制将更新类别分为三层:
d1、一级更新:更新轴线单元的尺寸时(长宽)、网格刻度时,需要更新轴的尺寸,导致坐标轴空间的重构,以及重新进行轴线单元的实例化;
d2、二级更新:更新刻度线步径、刻度步径、网格步径导致的刻度线、刻度需要进行重构;
d3、三级更新:更新轴线的起始/终止位置、镜头变换、刻度比例、轴线宽度和刻度线宽度,仅需要改变上述单元的属性即可。
(三)有益效果
本发明提供了一种应用于三维软件的动态三维坐标轴的实现方法。与现有技术相比具备以下有益效果:
(1)、该应用于三维软件的动态三维坐标轴的实现方法,应用性强,本发明实现的三维坐标轴,具有功能完备、标定准确、适配性、可操作性、自定义程度高、三维立体感强和视角全面优点。
(2)、该应用于三维软件的动态三维坐标轴的实现方法,适应面广,在三维软件的应用领域,包括科研、统计、仪器、机械、教育培训、航天和军事领域,均可采用本发明实现的三维坐标轴。
(3)、该应用于三维软件的动态三维坐标轴的实现方法,移植性能好,本发明实现的三维坐标轴,采用底层设计的方式,相关算法不依赖于第三方代码库,可移植于其他的三维软件,只有软件具有基本的点、线、面绘制方法,不限开发语言种类,即可移植本发明实现的三维坐标系模块。
(4)、该应用于三维软件的动态三维坐标轴的实现方法,跨平台能力强,本发明实现的三维坐标轴,适用于多平台,包括但不于PC端、网页端、安卓或ios终端平台,以及应用于仪器设备上的操作系统。
(5)、该应用于三维软件的动态三维坐标轴的实现方法,计算流畅度,本方法同时调用了中央处理器(cpu)和图形处理器(gpu)的运算能力,充分利用了内存(ram)的性能,获得了极高的渲染帧数,避免三维坐标轴模块调用太多的计算能力,出现卡顿或高能耗现象。
(6)、该应用于三维软件的动态三维坐标轴的实现方法,具有可拓展性,本发明的算法原理,可拓展的三维空间坐标轴包括但不限于直角坐标系、极坐标系、基于经纬度的地球坐标系。
附图说明
图1为本发明的工作原理图;
图2为本发明坐标轴的硬件渲染原理图;
图3为本发明三维渲染的原理图;
图4为本发明背景纹理生成流程图;
图5为本发明第一类型三维坐标轴的示意图;
图6为本发明第二类型三维坐标轴的示意图;
图7为本发明背景面的适配的射线原理图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实现的三维坐标轴,主要针对是三维空间直角坐标轴,可拓展为极坐轴,是在720度自由度的三维空间中,实现的一种动态的、可适配观察区域、高性能低消耗的三维空间坐标轴,用于辅助三维可视化软件和项目。
本发明说明了三维坐标轴的元素构成、坐标轴在随着镜头换变时的变化规则、背景的形成规则、计算机渲染原理、被动适配规则以及主动设置的功能。
坐标轴的构成:一个三维坐标轴由三条轴线单元构成,每一条轴线单元都有对应的元素,包括轴线、箭头、刻度线、刻度、标注、轴的标题、背景、网络等,三条轴线单元共用一个原点。
坐标轴的实例化:坐标轴的实例化是指基于坐标轴的相关参数属性,生成一个在三维虚拟空间的三维坐标轴的过程。
请参阅图1-7,本发明实施例提供一种技术方案:一种应用于三维软件的动态三维坐标轴的实现方法,具体包括以下步骤:
S1、调用本发明的接口,开始执行生成三维坐标系的指令;
S2、初始化坐标轴的所有相关参数,即通过接口获得三维坐标系每一个轴线单元的相关属性;
S3、数据预处理,根据获得的数据计算出三维空间坐标轴的长宽比例,按照空间适配方法进行适配处理,在完成数据预处理后,开始执行坐标轴实例化操作;
S4、生成坐标轴空间,根据背景面的适配方法对轴的长、宽、高比例搭建一个坐标轴空间,在绝对三维空间,设置左、后、右、前、底共5个单向的背景面片,面片的法线与镜头视线的夹角低于90度时才可见,并按照背景面的渲染算法,来计算背景面的纹理;
S5、实例化轴线单元,根据轴线单元的属性,生成轴线、箭头、刻度线、刻度和轴标题;
S6、更新轴线单元,通过轴的动态变化适配方法根据轴线单元的属性,更新轴线、箭头、刻度线、刻度、轴标题的位置、大小和角度,更新刻度、轴标题的内容和镜头变化产生的适配;
S7、监测更新,在三维软件每个计算循环(帧),监测镜头的变化,以及坐标轴控制的输入,如果没有输入,则不考虑计算节省计算消耗,如果存在更新,则按照分层更新机制来重新实例化或者更新实例。
本发明中,步骤S2中形成一个条轴单元相关的参数包括轴单元起始位置、轴单元结束位置、轴单元线宽、箭头大小、刻度线宽度、刻度线长度、刻度线步径、刻度字体的大小、刻度字体内容比例、刻度的步径、网格线宽、网格步径、是否显示轴线、是否显示刻度线、是否显示刻度以及轴标题。
轴线单元的属性可让三维坐标轴以数字化的形式存在,即只需要保存相关数据,即可实例化一个三维坐标轴。
空间的适配:在坐标轴实例化之前,根据坐标轴的相关属性,通过算法进行比例的适配,可以使得在有限的可视空间中,让坐标轴充满更多的空间,从而使坐标轴的显示效果更好。
本发明中,步骤S3中空间适配方法具体包括以下步骤:
a1、首先确定以垂直方向为参照方向,设置高度为-5-5之间;
a2、其次在水平方向的两个轴,判断两个轴中的长度的最大值,设置该轴的长度为-5-5之间,同时按照一定比例设置另一条轴的长度,最短轴的长度不应低于2,如果低于2则通过补全的方式,适配至大小为2。
本发明中,步骤S4中背景面的适配方法是通过背景面采用单向可视的面片模型,即将镜头的视线与平面法线的夹角,即入射角小于90度时,该背景面才可视,视线为镜头中点至背景面中点的那条线,采用该方法,可以让三维坐标轴中的三维对象在任意镜头下均可有很好的可视度,让背景面无法遮挡三维对象,如图7所示。
如图4所示,背景面的渲染:轴面背景是用于生成一个背景平面,为三维空间中的显示对象,提供一个在坐标轴内的背景,从而使影像更为直观,提高观赏度,轴面背景是通过一张纹理贴图来进行渲染的,纹理贴图是可以一次性获得的,有基于CPU和基于GPU的两种获得方式。GPU模式的效率较高,但不适用于不支持ComputeShader的网页端以及没有显卡的设备;CPU渲染速度慢,但适用于所有平台。可通过不同的应用环境来选择纹理计算方法,在存在轴面背景时,会将网格、环境光遮蔽(AO)同时生成到纹理贴图中,本发明实现的三维坐标轴实现了一种仿真的环境光遮蔽功能,简称AO,即在两个坐标平面交汇的地方,实现一个阴影效果,让三维坐标轴更具立体效果。
本发明中,步骤S4中背景面的渲染算法具体包括以下步骤:
b1、纹理初始化,设置纹理的大小规格,即将纹理贴图的像素全部设置为指定的背景色,纹理的大小按照被动适配规则生成;
b2、渲染网格,根据轴线单元的网格属性,在纹理上生成网格,网格的颜色可以指定,将网格直接渲染到底面背景,能够在二、三级更新中,取得更高的性能表现;
b3、渲染AO,对纹理的边缘,实现一个5像素的渐变的阴影,大小可以指定;
b4、根据像素数据,生成最终的纹理图片。
本发明中,步骤S5中轴线单元的实例化,是指将轴线单元的一系列的相关元素,生成具体的对象,具体为通用的画线工具生成带有轴线和刻度线的三维网格,使用顶点渲染的方式实现线的渲染,刻度与轴标题通用三维空间字体工具生成三维网格与纹理,箭头则通过三维网格编辑的主式生成三维网格,以及通过顶点渲染的方式实现,三维网格编辑是设置三维网格的顶点、三角面、法线和颜色三维网格属性,即可实例化一个三维网格。
在本发明中,在轴线单元相关参数已确定的情况下,轴线单元的位置在三维空间中不是固定的,会随着镜头的改变。防止轴线单元遮挡住三维对象,影响三维对象的浏览体验。
本发明中,步骤S6中轴的动态变化适配方法具体包括以下步骤:
c1、对前、左、后、右四个背景面进行分类,在绝对空间中,以左侧的背景面开始,按顺时针方向分为1、2、3、4;
c2、循环计算四个背景面与镜头视线的夹角;
c3、剔除小于0的入射角,提取其中的最小视角的背景面,取得该背景面的编号,最大视角的那个背景面的左侧边缘,即为垂直轴线单元的位置;
c4、根据获得的编号,动态计算轴线、刻度、刻度线、箭头、标注、轴标题的相应位置,即按照每一个编号设定轴线单元相关元素的三维空间属性(位置、角度、大小)。
分层更新机制:坐标轴会随着镜头以及坐标轴参数的变化,会产各种变化,因此在CPU层根据算法进行判断分类,以判断是整体变化,还是局部变化,通过分层更新的方式,大幅度减少渲染压力。
本发明中,步骤S7中分层更新机制将更新类别分为三层:
d1、一级更新:更新轴线单元的尺寸时(长宽)、网格刻度时,需要更新轴的尺寸,导致坐标轴空间的重构,以及重新进行轴线单元的实例化;
d2、二级更新:更新刻度线步径、刻度步径、网格步径导致的刻度线、刻度需要进行重构;
d3、三级更新:更新轴线的起始/终止位置、镜头变换、刻度比例、轴线宽度和刻度线宽度,仅需要改变上述单元的属性即可。
由图2所示,坐标轴的硬件渲染原理具体如下:
T1、中央处理器会个系统设定的渲染节点(帧),判断是否需要实例化或者更新三维坐标轴的参数,如果需要更新,执行T2;如果不需要更新,直接执行T10;
T2、影响坐标轴渲染的条件发生变化,中央处理器会判断会发生了哪些变化,可见坐标轴的变化规则;然后进行被动的适配;中央处理器会对变化因素进行预处理,以判断需要GPU进行浮点运算的任务,并通过内存和显存发送计算任务,CPU将数据以及处理参数,传递给内存。
T3、内存将数据以及处理参数,传递给显存;
T4、显存将数据以及处理参数,传递给GPU;
T5、通过系统支持的ComputeShader方法,采用高阶着色器语言(HLSL),根据获得的数据与处理参数,计算出背景纹理,并将背景纹理传递给显存;
T6、显存将背景纹理传递给内存;
T7、内存将背景纹理传递给CPU;
T8、CPU将纹理存储在内存中,以供实时调用;
T9、CPU将纹理赋予网格,并将三维渲染信息包括网格、纹理、渲染器发送给内存;
T10、内存将三维渲染信息发送给显存;
T11、显存将三维渲染信息发送给GPU;
T12、GPU基于顶点渲染和片断渲染的方式将三维坐标轴渲染出来;
T13、GPU通过显示接口,将三维坐标轴显示在屏幕上。
如图3所示,三维渲染:计算机的三维渲染是由三维网格、纹理、渲染器、着色器等要素构成的,在本发明中,三维网格采用三维网络编辑的方式,程序运行时根据算法自动生成三维网格,不依赖于三维网格数据,纹理是通过计算像素的方法生成的,也不依赖于纹理数据,着色器采用HLSL高阶着色语言编写的,具有强高的性能和优秀的显示效果。
坐标控制器(主动控制):本发明通过设置一个坐标轴控制器,可以主动设置坐标轴的一些参数,来改变坐标轴的关键参数,从而改变三维坐标轴的具体呈像,可设置的参数包括形成坐标的三个轴线单元,每个轴线单元起始位置、轴单元结束位置、轴单元线宽、箭头大小、刻度线宽度、刻度线长度、刻度线步径、刻度字体的大小、刻度字体内容比例、刻度的步径、网格线宽、网格步径、是否显示轴线、是否显示刻度线、是否显示刻度,轴标题等,在设置坐标轴的每个参数时,每次变动会实时改变坐标轴的属性,并按照分层更新规则,重新生成三维坐标系。
辅助工具包括辅助点、线、面,与三维坐标轴相互结合,进行三维空间的定位与定量。
拓展性:本发明可拓展至极坐标空间轴,相关实现方法基本一致。
综上,本发明是在一个三维引擎的环境下,采用基础的点、线、面、文字构成,具有720度自由视角,适用于特定或定制性的,应用于计算、仿真、教学、测量等类型的三维软件的三维坐标轴的方法。
本发明是将一个三维坐标轴,分成三个轴线单元,每个轴线单元均具有轴线、箭头、刻度线、刻度、标注、轴的标题、背景、网络等元素,并将这些元素数据化参数化,通过三维网格编辑创建三维网格,采用像素编辑生成纹理贴图,采用高阶着色器语言建立渲染器,最后进行顶点渲染或片断渲染的方法将三维坐标轴图形化,显示在显示器的屏幕上。
本发明采用被动适配算法,通过空间的适配、背景面的适配、轴的动态变化乱配等算法,让三维空间有更优秀的视觉体验,让坐标轴的标注更为直观。
本发明在两个背景面接触的地方,采用环境光遮蔽,设置阴影,让坐标轴的三维立体感更加强烈。
本发明利用了GPU和CPU的两类型处理器计算规则,充分利用GPU强大的浮点运算能力,将计算性能消耗比较多的算法通过GPU来计算,从而大幅提高三维坐标轴的运行效率。
本发明采用分层更新机制。在三维空间中,变化因素过多,导致坐标轴会实时跟随变化,本发明采用了分层更新机制,根据三维坐标轴运行的特点,将更新方法分成三个级别,通过精细化的更新处理,让三维坐标轴以占用更小的系统资源,获得流畅的运行效果。
同时本说明书中未作详细描述的内容均属于本领域技术人员公知的现有技术。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (8)
1.一种应用于三维软件的动态三维坐标轴的实现方法,其特征在于:具体包括以下步骤:
S1、调用本发明的接口,开始执行生成三维坐标系的指令;
S2、初始化坐标轴的所有相关参数,即通过接口获得三维坐标系每一个轴线单元的相关属性;
S3、数据预处理,根据获得的数据计算出三维空间坐标轴的长宽比例,按照空间适配方法进行适配处理,在完成数据预处理后,开始执行坐标轴实例化操作;
S4、生成坐标轴空间,根据背景面的适配方法对轴的长、宽、高比例搭建一个坐标轴空间,在绝对三维空间,设置左、后、右、前、底共5个单向的背景面片,面片的法线与镜头视线的夹角低于90度时才可见,并按照背景面的渲染算法,来计算背景面的纹理;
S5、实例化轴线单元,根据轴线单元的属性,生成轴线、箭头、刻度线、刻度和轴标题;
S6、更新轴线单元,通过轴的动态变化适配方法根据轴线单元的属性,更新轴线、箭头、刻度线、刻度、轴标题的位置、大小和角度,更新刻度、轴标题的内容和镜头变化产生的适配;
S7、监测更新,在三维软件每个计算循环,监测镜头的变化,以及坐标轴控制的输入,如果没有输入,则不考虑计算节省计算消耗,如果存在更新,则按照分层更新机制来重新实例化或者更新实例。
2.根据权利要求1所述的一种应用于三维软件的动态三维坐标轴的实现方法,其特征在于:所述步骤S2中形成一个条轴单元相关的参数包括轴单元起始位置、轴单元结束位置、轴单元线宽、箭头大小、刻度线宽度、刻度线长度、刻度线步径、刻度字体的大小、刻度字体内容比例、刻度的步径、网格线宽、网格步径、是否显示轴线、是否显示刻度线、是否显示刻度以及轴标题。
3.根据权利要求1所述的一种应用于三维软件的动态三维坐标轴的实现方法,其特征在于:所述步骤S3中空间适配方法具体包括以下步骤:
a1、首先确定以垂直方向为参照方向,设置高度为-5-5之间;
a2、其次在水平方向的两个轴,判断两个轴中的长度的最大值,设置该轴的长度为-5-5之间,同时按照一定比例设置另一条轴的长度。
4.根据权利要求1所述的一种应用于三维软件的动态三维坐标轴的实现方法,其特征在于:所述步骤S4中背景面的适配方法是通过背景面采用单向可视的面片模型,即将镜头的视线与平面法线的夹角,即入射角小于90度时,该背景面才可视,视线为镜头中点至背景面中点的那条线。
5.根据权利要求1所述的一种应用于三维软件的动态三维坐标轴的实现方法,其特征在于:所述步骤S4中背景面的渲染算法具体包括以下步骤:
b1、纹理初始化,设置纹理的大小规格,即将纹理贴图的像素全部设置为指定的背景色,纹理的大小按照被动适配规则生成;
b2、渲染网格,根据轴线单元的网格属性,在纹理上生成网格,网格的颜色可以指定,将网格直接渲染到底面背景,能够在二、三级更新中,取得更高的性能表现;
b3、渲染AO,对纹理的边缘,实现一个5像素的渐变的阴影,大小可以指定;
b4、根据像素数据,生成最终的纹理图片。
6.根据权利要求1所述的一种应用于三维软件的动态三维坐标轴的实现方法,其特征在于:所述步骤S5中轴线单元的实例化具体为通用的画线工具生成带有轴线和刻度线的三维网格,使用顶点渲染的方式实现线的渲染,刻度与轴标题通用三维空间字体工具生成三维网格与纹理,箭头则通过三维网格编辑的主式生成三维网格,以及通过顶点渲染的方式实现,三维网格编辑是设置三维网格的顶点、三角面、法线和颜色三维网格属性,即可实例化一个三维网格。
7.根据权利要求1所述的一种应用于三维软件的动态三维坐标轴的实现方法,其特征在于:所述步骤S6中轴的动态变化适配方法具体包括以下步骤:
c1、对前、左、后、右四个背景面进行分类,在绝对空间中,以左侧的背景面开始,按顺时针方向分为1、2、3、4;
c2、循环计算四个背景面与镜头视线的夹角;
c3、剔除小于0的入射角,提取其中的最小视角的背景面,取得该背景面的编号,最大视角的那个背景面的左侧边缘,即为垂直轴线单元的位置;
c4、根据获得的编号,动态计算轴线、刻度、刻度线、箭头、标注、轴标题的相应位置,即按照每一个编号设定轴线单元相关元素的三维空间属性。
8.根据权利要求1所述的一种应用于三维软件的动态三维坐标轴的实现方法,其特征在于:所述步骤S7中分层更新机制将更新类别分为三层:
d1、一级更新:更新轴线单元的尺寸时、网格刻度时,需要更新轴的尺寸,导致坐标轴空间的重构,以及重新进行轴线单元的实例化;
d2、二级更新:更新刻度线步径、刻度步径、网格步径导致的刻度线、刻度需要进行重构;
d3、三级更新:更新轴线的起始/终止位置、镜头变换、刻度比例、轴线宽度和刻度线宽度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010509345.5A CN111681307B (zh) | 2020-06-08 | 2020-06-08 | 一种应用于三维软件的动态三维坐标轴的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010509345.5A CN111681307B (zh) | 2020-06-08 | 2020-06-08 | 一种应用于三维软件的动态三维坐标轴的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111681307A true CN111681307A (zh) | 2020-09-18 |
CN111681307B CN111681307B (zh) | 2023-10-20 |
Family
ID=72454370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010509345.5A Active CN111681307B (zh) | 2020-06-08 | 2020-06-08 | 一种应用于三维软件的动态三维坐标轴的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111681307B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115733938A (zh) * | 2021-08-31 | 2023-03-03 | 北京字跳网络技术有限公司 | 视频处理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286240A (zh) * | 2008-04-22 | 2008-10-15 | 北京航空航天大学 | 一种可快速配置和实时渲染的安防三维电子地图 |
CN101477702A (zh) * | 2009-02-06 | 2009-07-08 | 南京师范大学 | 计算机显卡的植入式真三维立体驱动方法 |
CN106971417A (zh) * | 2017-05-17 | 2017-07-21 | 成都四方伟业软件股份有限公司 | 一种在浏览器中显示三维散点图的方法及系统 |
WO2018039871A1 (zh) * | 2016-08-29 | 2018-03-08 | 北京清影机器视觉技术有限公司 | 三维视觉测量数据的处理方法和装置 |
CN108109105A (zh) * | 2017-12-10 | 2018-06-01 | 西北工业大学 | 基于Qt框架与OpenGL可编程管线的数据可视化系统 |
CN111127610A (zh) * | 2019-12-23 | 2020-05-08 | 武汉真蓝三维科技有限公司 | 一种点云数据三维可视化渲染方法与计算方法 |
-
2020
- 2020-06-08 CN CN202010509345.5A patent/CN111681307B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286240A (zh) * | 2008-04-22 | 2008-10-15 | 北京航空航天大学 | 一种可快速配置和实时渲染的安防三维电子地图 |
CN101477702A (zh) * | 2009-02-06 | 2009-07-08 | 南京师范大学 | 计算机显卡的植入式真三维立体驱动方法 |
WO2018039871A1 (zh) * | 2016-08-29 | 2018-03-08 | 北京清影机器视觉技术有限公司 | 三维视觉测量数据的处理方法和装置 |
CN106971417A (zh) * | 2017-05-17 | 2017-07-21 | 成都四方伟业软件股份有限公司 | 一种在浏览器中显示三维散点图的方法及系统 |
CN108109105A (zh) * | 2017-12-10 | 2018-06-01 | 西北工业大学 | 基于Qt框架与OpenGL可编程管线的数据可视化系统 |
CN111127610A (zh) * | 2019-12-23 | 2020-05-08 | 武汉真蓝三维科技有限公司 | 一种点云数据三维可视化渲染方法与计算方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115733938A (zh) * | 2021-08-31 | 2023-03-03 | 北京字跳网络技术有限公司 | 视频处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111681307B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
US7250948B2 (en) | System and method visible surface determination in computer graphics using interval analysis | |
US9275493B2 (en) | Rendering vector maps in a geographic information system | |
CN113593051B (zh) | 一种实景可视化方法及大坝可视化方法及计算机设备 | |
Zhao | Application of 3D CAD in landscape architecture design and optimization of hierarchical details | |
CN105718643A (zh) | 一种基于最优化视角的船舶生产设计审图器实现方法 | |
CN114820990B (zh) | 一种基于数字孪生的流域防洪可视化方法及系统 | |
RU2422902C2 (ru) | Двумерная/трехмерная комбинированная визуализация | |
CN111583398B (zh) | 图像显示的方法、装置、电子设备及计算机可读存储介质 | |
CN111986303A (zh) | 流体渲染方法、装置、存储介质及终端设备 | |
CN111915710A (zh) | 基于实时渲染技术的建筑渲染方法 | |
CN117011492B (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN111681307A (zh) | 一种应用于三维软件的动态三维坐标轴的实现方法 | |
CN112580213A (zh) | 电场线的显示图像的生成方法和装置、存储介质 | |
CN113192173B (zh) | 三维场景的图像处理方法、装置及电子设备 | |
Li et al. | Research on 3D International River Visualization Simulation Based on Human‐Computer Interaction | |
CN111599011A (zh) | 基于WebGL技术的电力系统场景快速构建方法及系统 | |
CN117745915B (zh) | 一种模型渲染方法、装置、设备及存储介质 | |
Huirong et al. | The visualization of 3D terrain based on VRML | |
CN114004920A (zh) | 一种在画面中添加火焰特效的方法和装置 | |
Lin et al. | Breakthroughs and Applications of Augmented Reality (AR) Technology in the Digital Media Field | |
KR100789424B1 (ko) | 게임 특수효과 구현 시스템 및 방법 | |
CN113989439A (zh) | 一种基于ue4的可视域分析方法及装置 | |
CN114842127A (zh) | 地形渲染方法及装置、电子设备、介质及产品 | |
CN114241117A (zh) | 一种阴影渲染方法、装置、设备及存储介质 |
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 |