一种场景精确表达方法技术

技术编号:17880292 阅读:107 留言:0更新日期:2018-05-06 01:44
本发明专利技术公开了一种场景精确表达方法,读取三维场景的三角面片序列与点信息,生成八叉树父节点;将八叉树的父节点进行八叉树细分,形成八叉树子节点;对需要分割处理的三角面片进行分割处理,衍生出新三角面片;对每个八叉树子节点进行是否可以转换成高度场判断,如果能够转换成高度场则改用四叉树细分,如果不能转换成高度场,则继续用八叉树细分;判断当前细分深度是否达到最大深度值,如果当前细分深度已经达到最大深度值,将非空的四叉树子节点作为叶节点,保存叶节点信息和对应的新三角面片和不需分割处理的三角面片的信息;如果当前细分深度未达到最大深度值,继续四叉树细分;最后将不需分割处理的三角面片及分割处理后的新三角面片的信息变换为高度场,并进行渲染呈现。本方法较现有体素八叉树方法大大减少了消耗的内存量。

A method of scene exact expression

The invention discloses a scene accurate expression method, reads the triangle face sequence and point information of the 3D scene, generates the octree parent node, subdivides the octree tree with the father node of the octree, forms the octree sub node, divides the triangle face which needs the segmentation processing, and derives the new triangle slice; If an octree node can be converted into a height field, if it can be converted into a height field, the four forked tree is subdivided. If it can not be converted into a height field, the octree will continue to be subdivided by an octree; determine whether the current subdivision depth reaches the maximum depth value, if the current finer depth has reached the maximum depth value, will be the maximum depth value. The non empty four fork node is used as a leaf node to keep the information of the leaf node and the corresponding new triangular facets and the triangular facets that do not need to be segmented. If the current subdivision depth does not reach the maximum depth, the four forked tree subdivision will be continued; finally, the triangulated slices and the new triangular facets after the segmentation are not required. Information is transformed into height field and rendered. Compared with the existing voxel octree method, this method greatly reduces the amount of memory consumed.

【技术实现步骤摘要】
一种场景精确表达方法
本专利技术属于信息处理
,涉及一种场景的精确识别和表达的方法。
技术介绍
场景的表达是计算机图形学中主要的研究热点,场景即数据,场景表达即将数据转化到屏幕上呈现给用户的过程,场景的表达方式主要有高度场表达、三角网格表达以及体素的表达。高度场表达方法,编码了物体表面到平面的垂直距离,是关于z=f(x,y)的函数,具有存储量较小,易于调度更新的优点,高度场表达的局限性在于智能建模垂直方向上的模型表面,对于物体内部的体特征建模无能为力。体素表达方法,可以理解为体积像素表达,体素化即将三维模型用“体积像素”的小立方体统一表示,这一表达方法表达出的场景最接近实际场景,它不仅包含表面信息,而且能描述场景内部属性,但是体素表达方式过程非常复杂,包含了大量的细节,因此对存储量有很高的要求。近年来,得益于图形显卡处理能力的大大增强,有学者提出了优化体素数据存储的算法,Laine与Karras提出了有效的稀疏体素八叉树(SVO:SparseVoxelOctree),将体素与一对平行平面的相交来获得三维模型的近似轮廓,用近似轮廓在高分辨率下取代体素,从而实现有效的压缩。尽管SVO表达方法,减少了一部分的存储量,但是三角形网格体素化,在高分辨率下仍会消耗大量内存,SVO体素生成效率低。因此如何实现仅用较小的存储量尽可能的表达三维场景是业界主要研究的方向。
技术实现思路
本专利技术主要解决的技术问题是提供一种能够利用较小的内存精确渲染三维场景。为解决上述技术问题,本专利技术的场景精确表达方法采用的技术方案是:包括以下步骤:步骤一,读取三维场景的三角面片序列与点信息,求出三维场景在标准坐标轴X方向上的最大值xmax、最小值xmin,在标准坐标轴Y方向上的最大值ymax、最小值ymin,和在标准坐标轴Z方向上的最大值zmax、最小值zmin,并以点(xmin,ymin,zmin)和点(xmax,ymax,zmax)为对角顶点构成一个包围盒,并生成八叉树的父节点;步骤二:将所述八叉树的父节点进行八叉树细分,形成八叉树子节点;步骤三:对所述八叉树子节点分别计算关联的边界盒;步骤四:根据所述三角面片序列中每个三角面片所处边界盒的区域,将三角面片分成需要分割处理的三角面片和不需分割处理的三角面片,对所述需要分割处理的三角面片进行分割处理,衍生出新三角面片;步骤五:对每个所述八叉树子节点进行判断,当八叉树子节点为空节点时,不做处理;当八叉树子节点为非空节点时,如果该八叉树子节点可以转换为单一高度场,则将该八叉树子节点作为四叉树根节点,执行步骤六;如果该八叉树子节点不能转换成单一高度场,则将该八叉树子节点作为新的八叉树的父节点,返回步骤二;步骤六:对四叉树根节点进行四叉树细分,得到四叉树子节点;步骤七:判断当前细分深度是否达到最大深度值Lmax,如果当前细分深度已经达到最大深度值,将非空的四叉树子节点作为叶节点,执行步骤九;如果当前细分深度未达到最大深度值,执行步骤八;步骤八:对每个所述四叉树子节点进行判断,当四叉树子节点为空节点时,不做处理;当四叉树子节点为非空节点时,将该四叉树子节点作为新的四叉树根节点,执行步骤六;步骤九:保存所述叶节点信息和对应的不需分割处理的三角面片和新三角面片的信息;步骤十:将不需分割处理的三角面片及分割处理后的新三角面片的信息变换为高度场;步骤十一:对高度场进行渲染呈现三维场景。进一步优选地,在步骤四中,对三角面片进行分割处理的方法包括:将相邻的边界盒的相交面定义为ax+by+cz+d=0,其中,a,b,c,d为已知常数,a2+b2+c2=1;则三角面片的边与相交面的交点的计算公式为:其中,矢量是相交面的法向量,Ci为三角面片的边与相交面的交点的坐标,Ti为三角面片顶点坐标。进一步优选地,在步骤十一中,新三角面片信息变换为高度场的步骤包括:步骤3-1,每个边界盒内的新三角面片沿三个标准坐标轴X轴、Y轴和Z轴分别进行投影(Ti)k,其中,k=0,1,2,0代表Z轴投影,1代表X轴投影,2代表Y轴投影;步骤3-2,选择主导轴,主导轴是指相交的面积Sproj(Pk)小于αthrd,其中,Pk=T1k∩T2k…∩Tik…∩Tmk,αthrd为设置的阈值参数,αthrd在[0,0.1]之间;步骤3-3,主导轴和新三角面片在顶点着色器和像素着色器中生成高度场纹理。进一步优选地,在步骤六中,当所述八叉树子节点内的所述新三角面片沿设置的主导轴方向上的二维投影无交集时,则该八叉树子节点能够转换为单一高度场;当所述八叉树子节点内的所述新三角面片沿设置的主导轴方向上的二维投影有交集时,则该八叉树子节点不能转换为单一高度场。进一步优选地,在步骤十一中,对高度场进行渲染的方法采用光线投射方法。进一步优选地,所述光线投射方法包括:在光线迭代时,利用相交规则进行光线与三角面片相交测试,在每个迭代位置,如果光线与三角面片相交,则输出当前交点的颜色纹理,渲染在屏幕上;如果光线与三角面片不相交,不需处理;所述相交规则为:Den≤HeightorDex≤Height,其中,Height为光线射入的单元高度,Den是从光线射入单元边界Hen到主导轴对应的投影平面plane的距离,Dex是从光线射出单元边界Hex到主导轴对应的投影平面plane的距离。进一步优选地,所述最大深度值Lmax设定为8~10。本专利技术的有益效果是:本专利技术提供的场景精确表达的方法,本方法先对三维场景进行八叉树细分,判断八叉树细分出的八叉树子节点能够转换成单一高度场,则将该八叉树子节点再进行四叉树细分,最后转换成高度场表示。首先采用了八叉树能够精确的表达三维场景,当八叉树子节点能够用高度场表示,不再进行八叉树细分,而是利用四叉树转换成高度场表示,高度场表达存储量远远小于体素的表达存储量。这样在既保证能够精确的表达了三维场景,同时也大大减少了现有技术中一直采用八叉树细分消耗的内存量。本方法能够极大的减少存储量,具有较高的光线投射效率,表达三维场景取得较好的效果。附图说明图1是本专利技术的场景精确表达方法的实施例的流程图;图2是本专利技术的场景精确表达方法的实施例的构建结构示意图;图3是本专利技术的场景精确表达方法的实施例中三角面片分割示意图;图4是本专利技术的场景精确表达方法的实施例中高度场变换流程示意图;图5是本专利技术的场景精确表达方法的实施例的试验场景图。具体实施方式下面详细描述本专利技术的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。本
技术人员可以理解的是,本专利技术中涉及到的相关模块及其实现的功能是在改进后的硬件及其构成的装置、器件或系统上搭载现有技术中常规的计算机软件程序或有关协议就可实现,并非是对现有技术中的计算机软件程序或有关协议进行改进。例如,改进后的计算机硬件系统依然可以通过装载现有的软件操作系统来实现该硬件系统的特定功能。因此,可以理解的是,本专利技术的创新之处在于对现有技术中硬件模块的改进及其连接组合关系,而非仅仅是对硬件模块中为实现有关功能而搭载的软件或协议的改进。本
技术人员可以理解的是,本发本文档来自技高网
...
一种场景精确表达方法

【技术保护点】
一种场景精确表达方法,其特征在于,包括:步骤一,读取三维场景的三角面片序列与点信息,求出三维场景在标准坐标轴X方向上的最大值xmax、最小值xmin,在标准坐标轴Y方向上的最大值ymax、最小值ymin,和在标准坐标轴Z方向上的最大值zmax、最小值zmin,并以点(xmin,ymin,zmin)和点(xmax,ymax,zmax)为对角顶点构成一个包围盒,并生成八叉树的父节点;步骤二:将所述八叉树的父节点进行八叉树细分,形成八叉树子节点;步骤三:对所述八叉树子节点分别计算关联的边界盒;步骤四:根据所述三角面片序列中每个三角面片所处边界盒的区域,将三角面片分成需要分割处理的三角面片和不需分割处理的三角面片,对所述需要分割处理的三角面片进行分割处理,衍生出新三角面片;步骤五:对每个所述八叉树子节点进行判断,当八叉树子节点为空节点时,不做处理;当八叉树子节点为非空节点时,如果该八叉树子节点可以转换为单一高度场,则将该八叉树子节点作为四叉树根节点,执行步骤六;如果该八叉树子节点不能转换成单一高度场,则将该八叉树子节点作为新的八叉树的父节点,返回步骤二;步骤六:对四叉树根节点进行四叉树细分,得到四叉树子节点;步骤七:判断当前细分深度是否达到最大深度值Lmax,如果当前细分深度已经达到最大深度值,将非空的四叉树子节点作为叶节点,执行步骤九;如果当前细分深度未达到最大深度值,执行步骤八;步骤八:对每个所述四叉树子节点进行判断,当四叉树子节点为空节点时,不做处理;当四叉树子节点为非空节点时,将该四叉树子节点作为新的四叉树根节点,执行步骤六;步骤九:保存所述叶节点信息和对应的新三角面片和不需分割处理的三角面片的信息;步骤十:将不需分割处理的三角面片及分割处理后的新三角面片的信息变换为高度场;步骤十一:对高度场进行渲染呈现三维场景。...

【技术特征摘要】
1.一种场景精确表达方法,其特征在于,包括:步骤一,读取三维场景的三角面片序列与点信息,求出三维场景在标准坐标轴X方向上的最大值xmax、最小值xmin,在标准坐标轴Y方向上的最大值ymax、最小值ymin,和在标准坐标轴Z方向上的最大值zmax、最小值zmin,并以点(xmin,ymin,zmin)和点(xmax,ymax,zmax)为对角顶点构成一个包围盒,并生成八叉树的父节点;步骤二:将所述八叉树的父节点进行八叉树细分,形成八叉树子节点;步骤三:对所述八叉树子节点分别计算关联的边界盒;步骤四:根据所述三角面片序列中每个三角面片所处边界盒的区域,将三角面片分成需要分割处理的三角面片和不需分割处理的三角面片,对所述需要分割处理的三角面片进行分割处理,衍生出新三角面片;步骤五:对每个所述八叉树子节点进行判断,当八叉树子节点为空节点时,不做处理;当八叉树子节点为非空节点时,如果该八叉树子节点可以转换为单一高度场,则将该八叉树子节点作为四叉树根节点,执行步骤六;如果该八叉树子节点不能转换成单一高度场,则将该八叉树子节点作为新的八叉树的父节点,返回步骤二;步骤六:对四叉树根节点进行四叉树细分,得到四叉树子节点;步骤七:判断当前细分深度是否达到最大深度值Lmax,如果当前细分深度已经达到最大深度值,将非空的四叉树子节点作为叶节点,执行步骤九;如果当前细分深度未达到最大深度值,执行步骤八;步骤八:对每个所述四叉树子节点进行判断,当四叉树子节点为空节点时,不做处理;当四叉树子节点为非空节点时,将该四叉树子节点作为新的四叉树根节点,执行步骤六;步骤九:保存所述叶节点信息和对应的新三角面片和不需分割处理的三角面片的信息;步骤十:将不需分割处理的三角面片及分割处理后的新三角面片的信息变换为高度场;步骤十一:对高度场进行渲染呈现三维场景。2.根据权利要求1所述场景精确表达方法,其特征在于,在步骤四中,对三角面片进行分割处理的方法包括:将相邻的边界盒的相交面定义为ax+by+cz+d...

【专利技术属性】
技术研发人员:罗健欣高艺裘杭萍权冀川唐斌吴波刘勇段伟伟张琦张雁飞
申请(专利权)人:中国人民解放军陆军工程大学南京小吉狗网络科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1