当前位置: 首页 > 专利查询>浙江大学专利>正文

一种自动生成网格与着色器多层次细节的方法技术

技术编号:15331316 阅读:83 留言:0更新日期:2017-05-16 14:35
本发明专利技术公开了一种自动生成网格与着色器多层次细节的方法。多层次细节技术在很多计算机图形相关的应用中被广泛用于优化渲染效率,多种多层次细节,比如几何层面的多层次细节,着色器层面的多层次细节,也相继被发展研究出来,同时催生了很多自动生成这些多层次细节的方法。但是目前这些方法都没有同时考虑几何体与着色器的简化。在本发明专利技术中,一种几何体与着色器联合简化,并生成相应多层次细节的方法被提出,每个层次细节用一对模型和着色器的组合表示,该方法不仅可以在每个层次细节最优化这一组合,并且能够自适应地在不同距离生成层次细节。相比单独使用模型多层次细节或着色器多层次细节的方法,本发明专利技术在平衡渲染效率与质量上做得更好。

Method for automatically generating multi-level detail of mesh and shader

The present invention discloses a method for automatically generating multi-level details of meshes and shaders. Is widely used in the application of LOD technology in many computer graphics to optimize the rendering efficiency, various levels of detail, such as the LOD geometry level, level of detail shader level, have also been developing research, also spawned a lot of automatic generation of these LOD method. However, none of these methods consider the simplification of geometry and shader at the same time. In the present invention, a geometry shader and combined with simplified method and generate the corresponding level of detail is put forward, each represented by a combination of the level of detail model and shaders, the method can not only optimize the level of detail in each combination, and can adaptively generate LOD at different distances. The invention performs better in balancing rendering efficiency and quality than using a model, multiple levels of detail, or multiple levels of shader detail.

【技术实现步骤摘要】
一种自动生成网格与着色器多层次细节的方法
本专利技术涉及图形渲染
,尤其涉及一种自动生成网格与着色器多层次细节的方法。
技术介绍
在各种计算机图形应用中,实时渲染出复杂而真实模型的问题都是非常受关注的。然而,就算以当前最新的图形硬件配置来看,模型本身复杂程度的增长仍然比硬件渲染能力的提升要快很多。这种压力催生了很多平衡模型复杂度与渲染效率的研究。多层次细节(Level-of-detail,LOD)就是其中被使用得非常广泛的一种技术。多层次细节的基本思想就是使用一些简化表示代替远处较小的模型或者模型的不重要部分。目前已经在不同方面有各种表示方法被研究出来。Luebke在2003年提出基于网格简化方法的几何层面多层次细节技术,并催生了许多相关的优秀算法。随着图形处理单元(GraphicsProcessUnit,GPU)的发展,很多相关应用都广泛使用着色器技术来加强模型显示的保真度。迎合这个趋势的发展,近来的一些工作,比如Olano、He等人研究的自动生成简化着色器多层次细节的方法,以及在各距离下平衡渲染效率与质量的技术也正在开展。但是这些研究都没有考虑同时简化网格与着色器。
技术实现思路
针对现有技术的不足,本专利技术提供了一种自动生成网格与着色器多层次细节的方法。一种自动生成网格与着色器多层次细节的方法,包括:1)使用基于表面信号拟合的着色器自动简化方法,对原始渲染程序进行简化,得到一系列简化渲染程序;2)使用原始渲染程序来进行渲染,基于图像空间的偏差,对原始网格进行简化,得到一系列不同简化程度的简化网格;3)在输入的最近与最远距离之间插入n个距离值,在各距离上搜索所有的简化渲染程序与简化网格,从中找到渲染效率最高的一对网格与渲染程序,作为当前距离的层次细节结果,并按距离增序排列组织成多层次细节;所述的n个距离值呈非均匀分布,保证在距离从小到大排列时,网格绘制并呈现在屏幕上的像素个数是等比减少的。4)在多层次细节中超出过渡偏差阈值的相邻层次间插入新的层次细节,加入多层次细节中,再对其中小于过渡偏差阈值的相邻层次进行合并,得到最终的多层次细节结果。本专利技术中所述的渲染程序是指进行渲染时输入的着色器代码。本专利技术中所述的原始渲染程序中仅包括顶点着色器和像素着色器,且各着色器代码都是使用HLSL语言编写的。本专利技术中原始网格、简化网格都是用OBJ格式编码的模型信息,为简化方法提供模型的顶点以及面数据,简化后的模型依然使用OBJ格式编码并保存,用于渲染。本专利技术中的每个层次细节,包括一个网格与相机的距离值,一个简化网格,以及一个被用于渲染该网格的简化渲染程序。本专利技术中的图像空间的偏差,是指给定的两张图片逐像素颜色的欧氏距离之和,在本专利技术中所有图像偏差都默认是在多个视角计算并取平均值的结果,视角根据用户设定可以是六个或者十二个,前者是将网格放置在正方体中心位置,分别从六个面的中心点观察正方体中心所得到的六个观察视角,而后者是将网格放置在正二十面体的中心,分别从十二个顶点观察正二十面体中心所得到的十二个观察视角。本专利技术所述的步骤1)包括如下步骤:1-1)将输入的原始渲染程序的代码转换成抽象语法树与程序依赖图;1-2)根据程序依赖图,在抽象语法树上对着色器的所有计算操作综合应用三条简化规则,分别是操作移除,代码移动以及移动到参数,得到一系列简化后着色器的抽象语法树,输出它们各自的渲染程序代码;1-3)在输入的最近距离下使用步骤1-2)输出的所有简化渲染程序渲染原始网格,得到它们的渲染效率与图像偏差,根据渲染效率和图像偏差选择所有满足帕累托最优的简化渲染程序;1-4)在输入的最远距离下使用步骤1-2)输出的所有简化渲染程序渲染原始网格,得到它们的渲染效率与图像偏差,根据渲染效率和图像偏差选择所有满足帕累托最优的简化渲染程序;1-5)求1-3)与1-4)中得到的简化渲染程序的并集,结果即最优的一系列简化渲染程序。步骤1-2)中所述的操作移除规则是指删除某次计算操作,比如删除a=a+b计算中的加法以加速计算;代码移动规则是指将原来位于像素着色器中的计算代码移动到顶点着色器或者细分着色器中,以减少该代码的运行次数;移动到参数规则是指将原来在像素着色器中计算的变量值拟合成常量值存储在CPU端,在渲染时直接将其作为参数传入以减少计算。本专利技术所述的步骤2)包括如下步骤:2-1)使用原始渲染程序渲染原始网格得到原始图片Io,并使用原始图片作为当前图片Ic;2-2)对原始网格的每一条边,使用原始渲染程序渲染并计算该边简化后与简化前相比的图像偏差增量,并将其放入以该增量为排序依据升序排列的优先队列Q中;2-3)根据需要采样的简化网格个数,原始面片数以及目标面片数,求出面片数步进s;2-4)抛出优先队列Q中的第一条边并简化,同时更新该边周围受影响的所有边的图像偏差增量,重新按序放到优先队列Q中,并更新当前图片Ic,每当简化面片数达到步进s即输出一个简化网格;2-5)重复步骤2-4)直至当前网格面片数少于目标面片数。步骤2-3)中所述的需要采样的简化网格个数是指,在本次多层次细节生成时,需要采样多少个简化网格样本代表所有可能的简化网格。步骤2-1)中所述的边简化后与简化前相比的图像偏差增量的计算按如下步骤进行:a1)求出在网格上,与该边的任意顶点相接的所有面{F},再求出与{F}所有顶点相接的边{E},使用{E}的所有顶点所在的屏幕空间包围盒H作为受该边简化影响的屏幕像素范围;a2)使用原始渲染程序渲染网格所有在H中或者与H有重叠部分的面片,得到简化图片Ie;a3)使用计算着色器分别计算在H所包含的像素范围内,Ie与Io的图像空间偏差e以及Ic与Io的图像空间偏差e’,e与e’的差即为该边的图像偏差增量。本专利技术中所述的步骤3)中距离值呈指数分布,保证在距离从小到大排列时,网格绘制并呈现在屏幕上的像素个数是等比减少的,距离公式为:其中i表示第几个距离值,dmin与dmax分别为输入的网格与相机间的最近和最远距离,l表示插入后距离值的总个数,包括最近与最远距离。本专利技术所述的步骤3)通过以下步骤找到指定距离下渲染效率最高的一对网格与渲染程序:b1)计算当前距离下的图像偏差阈值E,并按引入的图像偏差大小升序分别排列简化网格与简化渲染程序;b2)从最后一个简化网格开始逐步往前递进,使用原始渲染程序渲染途经的每一个简化网格,直到找到第一个在阈值E内的简化网格,将该网格-渲染程序对作为当前结果S,测量该组合在多个视角下的平均渲染时间tmin;b3)从上一次选中的简化网格开始继续往前递进,使用下一个简化渲染程序渲染途经的每一个简化网格,直到找到第一个在阈值E内的简化网格,测量该网格-渲染程序对在多个视角下的平均渲染时间t,若t小于tmin则将tmin值改为t,并将当前结果S改为本次选出的网格-渲染程序对;b4)重复步骤b3)直到遍历所有简化渲染程序或者简化网格,最终S即为该距离下渲染效率最高的一对网格与渲染程序。步骤b1)中所述的当前距离下的图像偏差阈值是指,使用简化网格及简化渲染程序允许产生的最大图像偏差值,其计算公式为:其中d为当前距离,dmin与dmax分别为输入的最近与最远距离,Q为输入的质量系数,范围是0到1,max_error为输入的在距离dm本文档来自技高网...
一种自动生成网格与着色器多层次细节的方法

【技术保护点】
一种自动生成网格与着色器多层次细节的方法,其特征在于,包括:1)使用着色器自动简化方法,对原始渲染程序进行简化,得到一系列简化渲染程序;2)使用原始渲染程序来进行渲染,基于图像空间的偏差,对原始网格进行简化,得到一系列不同简化程度的简化网格;3)在输入的最近与最远距离之间插入n个距离值,在各距离上搜索所有的简化渲染程序与简化网格,从中找到渲染效率最高的一对网格与渲染程序,作为当前距离的层次细节结果,并按距离增序排列组织成多层次细节;4)在多层次细节中超出过渡偏差阈值的相邻层次间插入新的层次细节,加入多层次细节中,再对其中小于过渡偏差阈值的相邻层次进行合并,得到最终的多层次细节结果。

【技术特征摘要】
1.一种自动生成网格与着色器多层次细节的方法,其特征在于,包括:1)使用着色器自动简化方法,对原始渲染程序进行简化,得到一系列简化渲染程序;2)使用原始渲染程序来进行渲染,基于图像空间的偏差,对原始网格进行简化,得到一系列不同简化程度的简化网格;3)在输入的最近与最远距离之间插入n个距离值,在各距离上搜索所有的简化渲染程序与简化网格,从中找到渲染效率最高的一对网格与渲染程序,作为当前距离的层次细节结果,并按距离增序排列组织成多层次细节;4)在多层次细节中超出过渡偏差阈值的相邻层次间插入新的层次细节,加入多层次细节中,再对其中小于过渡偏差阈值的相邻层次进行合并,得到最终的多层次细节结果。2.如权利要求1所述的自动生成网格与着色器多层次细节的方法,其特征在于,所述的层次细节包括一个网格与相机的距离值,一个简化网格,以及一个被用于渲染该简化网格的简化渲染程序。3.如权利要求1所述的自动生成网格与着色器多层次细节的方法,其特征在于,所述的n个距离值呈非均匀分布,保证在距离从小到大排列时,网格绘制并呈现在屏幕上的像素个数是等比减少的。4.如权利要求1所述的自动生成网格与着色器多层次细节的方法,其特征在于,所述的两个层次细节之间的过渡偏差值,是指将两层次的网格均放置在两层次中较远的距离上,分别使用各自的渲染程序渲染到图片,并计算它们在图像空间的偏差所得到的值。5.如权利要求1或4所述的自动生成网格与着色器多层次细节的方法,其特征在于,所述的在图像空间的偏差,简称图像偏差,是指给定的两张图片逐像素颜色的欧氏距离之和。6.如权利要求1所述的自动生成网格与着色器多层次细节的方法,其特征在于,所述步骤1)包括如下步骤:1-1)将输入的原始渲染程序的代码转换成抽象语法树与程序依赖图;1-2)根据程序依赖图,在抽象语法树上对着色器的所有计算操作进行简化,得到一系列简化后着色器的抽象语法树,输出它们各自的渲染程序代码;1-3)在输入的最近距离下使用步骤1-2)输出的所有简化渲染程序渲染原始网格,得到它们的渲染效率与图像偏差,根据渲染效率和图像偏差选择所有满足帕累托最优的简化渲染程序;1-4)在输入的最远距离下使用步骤1-2)输出的所有简化渲染程序渲染原始网格,得到它们的渲染效率与图像偏差,根据渲染效率和图像偏差选择所有满足帕累托最优的简化渲染程序;1-5)求步骤1-3)与步骤1-4)中得到的简化渲染程序的并集,结果即最优的一系列简化渲染程序。7.如权利要求1所述的自动生成网格与着色器多层次细节的方法,其特征在于,所述步骤2)包括如下步骤:2-1)对原始网格的每一条边,使用原始渲染程序渲染并计算该边简化后与简化前相比的图像偏差增量,并将其放入以该增量为排序依据升序排列的优先队列Q中;2-2)根据需要采样的简化网格个数,原始面片数以及目标面片数,求出面片数步进s;2-3)抛出优先队列Q中的第一条边并简化,同时更新该边周围受影响的所有边的图像偏...

【专利技术属性】
技术研发人员:鲍虎军王锐胡天磊宋麒袁亚振
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江,33

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

1