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个距离值,在各 ...
【技术保护点】
一种自动生成网格与着色器多层次细节的方法,其特征在于,包括: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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。