CN102903146B - 用于场景绘制的图形处理方法 - Google Patents

用于场景绘制的图形处理方法 Download PDF

Info

Publication number
CN102903146B
CN102903146B CN201210340220.XA CN201210340220A CN102903146B CN 102903146 B CN102903146 B CN 102903146B CN 201210340220 A CN201210340220 A CN 201210340220A CN 102903146 B CN102903146 B CN 102903146B
Authority
CN
China
Prior art keywords
model
scene
drafting
level
detail
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.)
Expired - Fee Related
Application number
CN201210340220.XA
Other languages
English (en)
Other versions
CN102903146A (zh
Inventor
张晓鹏
鲍冠伯
李红军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN201210340220.XA priority Critical patent/CN102903146B/zh
Publication of CN102903146A publication Critical patent/CN102903146A/zh
Application granted granted Critical
Publication of CN102903146B publication Critical patent/CN102903146B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)

Abstract

本发明公开了一种用于场景绘制的图形处理方法,该方法包括构建复杂场景数据、绘制场景的阴影贴图和绘制视点视锥内的场景。该方法通过半透明线段表示细小的对象,绘制效果保持了丰富的细节信息;通过多遍绘制的方式,避免了小批次数据问题,提高了绘制效率;通过模型合并、几何着色器的单级层次细节(LOD)模型输出以及模型位置点排序,使用带有不同透明度的线段模型来表示不同粗细柱状几何体,从而保证Alpha混合的正确性,实现半透明绘制,保持更多细节。

Description

用于场景绘制的图形处理方法
技术领域
本发明涉及图形、图像处理领域,特别涉及基于图形处理器的大规模场景的绘制。
背景技术
大规模复杂三维场景的实时绘制是计算机图形学领域和虚拟现实领域的一个具有挑战性的问题。其中的困难除了的场景中三维几何模型的几何复杂度过高外,还有由于场景中包含了大量模型所带来的小批次调用问题(The small batch problem)。
Liu等人提出了基于图形处理器的动态四分数据流方法(DQS)(参考:F.Liu,W.Hua,and H.J.Bao,Gpu-based dynamic quad stream for forestrendering,Science China-Information Sciences,vol.53,pp.1539-1545,Aug2010)。DQS采用分级的层次深度图像表示植物模型。在预处理阶段,预先从多个角度生成一组的广告牌图像来近似表示植物模型。在场景绘制阶段,把这些图像数据做成数据流传送给GPU(GPU数据流方法),以图像边缘投影到屏幕视口上的长度作为度量依据,利用可编程GPU的几何着色器(Geometry shader)渐进地产生新片元(Primitive)来细分模型的图像,实现视点相关的森林场景漫游。该方法是把图像表示法与GPU数据流方法相结合,能够以很快的速度绘制大规模的场景。然而使用图像方式表示的模型几何信息少,无法计算每个叶片每个顶点的光照,真实度不高。
Deng等人在提出了多分辨率叶子简化森林绘制算法(MRF)(参考:Q.Deng,X.Zhang,G.Yang,and M.Jaeger,Multiresolution foliage for forestrendering,Computer Animation and Virtual Worlds,vol.21,pp.1-23,2010)。MRF采用纯三维网格模型的方式在GPU中对树木叶片进行简化。在场景绘制时,模型的叶片根据距离视点的远近实时地进行合并与还原。模型的层次细节(Level ofdetails,LOD)是连续平滑过渡的,没有不同级别LOD模型间切换时的跳跃现象。使用该方法简化后的植物模型适合于进行复杂的光照阴影计算。但是没有考虑到处理叶片纹理,在绘制大规模场景时,需要读入整个模型数据进行绘制,不适合于网络环境中的应用。
Gumbau等人提出了基于视线相关的剪枝绘制方法(VDP)(参考:J.Gumbau,M.Chover,I.Remolar,and C.Rebollo,View-dependent pruning forreal-time rendering of trees,Computers&Graphics,vol.35,pp.364-374,Apr2011)。VDP绘制前,先将植物模型的树冠部分成小组,在植物模型周围预先设置的一些观察点,每个组的可见性在各个观察点的可见性,在实时绘制阶段,计算当前视点下每个小组的可见度,根据可见度,裁剪掉被认为是遮挡住的小组。以剪枝的方式来减少绘制时模型的几何复杂度,同时保持植物模型的整体外观。但是该方种方法不能有效地处理实时阴影效果,因为在生成阴影贴图阶段,该方法需要在光源视锥内再进行一次计算,带来额外的负担。
Bao等人提出了一种森林场景的真实感绘制方法(RRS)(参考:G.Bao,H.Li,X.Zhang,W.Dong.Large-scale forest rendering:real-time,realistic,andprogressive,Computers&Graphics,pp.140-151,2012),该方法采用几何压缩和LOD阴影图计算方式能实时绘制场景的动态阴影,并使用实例化方法来避免小批次调用问题,从而绘制大规模场景。但是,该方法不能处理半透明模型,并且由于相邻的模型LOD之间是离散的,在漫游时会有明显的跳跃感。
所谓小批次处理问题是由Wloka在游戏开发者大会上提出的。Wloka指出在Direct3D中,每绘制一个批次需要发起一个图形绘制命令(DrawCall),而一个主频为1GHz的CPU每秒钟只能绘制10000到40000的批次(参考:Wloka,M.,2003.Batch,batch,batch:What does it reallymean?Presentation at Game Developers Conference 2003)。假设在现在的新CPU上,每秒能发起100000到400000次的图形绘制命令(速度快10倍),若要达到20FPS(Frames Per Second),那每帧调用的图形绘制命令是5000到20000次。即使绘制一个三维几何模型只使用一个图形绘制命令,那也只能绘制5000到20000个模型,这还是不考虑三维几何模型的几何复杂度的理论情况。
Carucci等人总结了早期时人们为了克服小批次调用问题所采用的方法(Carucci,F.,andStudios,L.2005.GPU Gems 2:Chapter 3.Inside GeometryInstancing.Addison-Wesley Professional)。最常用的方法是,在这每帧绘制时,由CPU进行三维几何模型的视锥裁剪和LOD模型选择计算,然后将选择好的三维几何模型组织成几个大的顶点数组对象,连同顶点变换矩阵一起传递给GPU,最后在GPU中完成实例化绘制。这种方法大大地减少了图形绘制命令的调用,但是仍然需要CPU来完成视锥裁剪和LOD模型选择操作。Shopf等人在2008年提出了一种实例化绘制方法(参考:Shopf,J.,Barczak,J.,OAT,C.,and Tatarchuk,N.2008.March of the froblins:simulation and rendering massive crowdsof intelligent and detailed creatureson gpu.In ACM SIGGRAPH2008classes,ACM,New York,NY,USA,SIGGRAPH′08,52-101)。该方法第一次实现了完全在GPU上进行的三维几何模型的视锥裁剪、LOD模型选择和绘制操作,无需CPU交互。然而,这种方法不是为现代的GPU设计的,这种方法的主要缺陷是程序设计复杂,区分3级LOD模型需要5遍绘制。近年来,GPU硬件的性能越来越强,可编程性也不断提高,特别是NVidia Fermi架构的GPU和OpenGL 4的出现,使得设计一种性能更高,算法更直观的实例化绘制方法成为可能。
由于树木模型是复杂场景中的典型代表,它们本身结构是十分复杂,这给场景的实时和高真实感的绘制带来了很大的资源消耗。
发明内容
(一)要解决的技术问题
本发明的目的在于解决广泛应用于数字娱乐、虚拟视景仿真、城市园林规划设计和数字农林业等领域的大规模复杂场景的真实感快速绘制的技术问题。
(二)技术方案
为了解决上述技术问题,本发明提供了一种用于场景绘制的图形处理方法,所述方法包括如下步骤:构建复杂场景数据;绘制场景的阴影贴图;绘制视点视锥内的场景;所述场景数据包括模型文件,场景配置文件和纹理材质文件;所述绘制场景的阴影贴图包括第一遍层次细节裁剪选择绘制、第二遍异步查询绘制以及使用一个绘制循环绘制阴影贴图;所述绘制视点视锥内的场景包括多遍循环绘制、细小线状几何模型的半透明绘制、细小线状模型实例化绘制、半透明对象组成场景的半透明混合、动态连续层次细节绘制以及宽屏幕视口尺寸设置。
优选地,所述层次细节裁剪选择绘制包含顶点着色器和几何着色器。所述顶点着色器用于完成三维几何模型的视锥裁剪功能,根据每个三维几何模型的位置点和该点上三维几何模型的包围盒信息,来判断位于该点的模型是否是在视锥内;所述几何着色器完成视锥内层次细节模型的级别选择功能。
优选地,所述第二遍异步查询绘制将所述第一遍层次细节裁剪选择绘制得到的三维几何模型的位置点信息作为输入。所述使用一个绘制循环绘制阴影贴图是指依次在每个光源视锥里进行第一遍层次细节裁剪选择绘制和第二遍异步查询绘制来生成所述每个子视锥对应的阴影图。
优选地,对于所述多遍循环绘制,如果需要绘制的三维几何模型的层次细节级别多于N时,通过设置层次细节距离控制参数,首先在第一次绘制循环中先绘制前N级相邻的层次细节模型,然后依次在下一次绘制循环中绘制下一组相邻的N级层次细节模型直至所有层次细节级别的三维几何模型都绘制好,其中N为顶点流的级数且为自然数。对绘制对象中细小线状的部分,采用半透明线段表示,使得带有不同透明度的线段可以准确表示粗细不同的圆柱状几何模型形状;对绘制对象中半透明的部件,采用半透明多边形表示。在场景漫游时相邻两级层次细节进行连续层次细节模型的实时绘制,实现场景漫游时对象不同层次细节模型的连续、实时的平滑过渡。对于所述宽屏幕视口尺寸设置,首先计算环幕的长宽像素的比例,将其设置为程序视口的比例,并将绘制视口的宽度只设置为图形界面库的最大宽度值,然后在该视口下进行实时的绘制。
(三)有益效果
本发明所提出的方法,克服了现有技术中图形处理器中顶点流数量的限制,能够绘制任意多级的LOD模型,能够实时绘制包含数十万个(甚至上百万个)以上复杂三维几何模型的场景,并带有实时阴影效果。
附图说明
图1为根据本发明的用于场景绘制的图形处理方法的流程图;
图2为图1的细化说明示意图;
图3为根据本发明的出视点视锥内化绘制方法的流程图;
图4为根据本发明在同一个没有叶子遮挡的冬季森林场景中,直接使用方法RRS进行绘制的结果;
图5为图4右上角的放大图;
图6为根据本发明的在一个叶子稀少的冬季森林场景中,使用方法RRS进行绘制的结果;
图7为图6右上部分的放大图;
图8为根据本发明所提供的方法把树木模型变为两部分的示意图;
图9为根据本发明的K种树木模型合并成一个模型;
图10为根据本发明的带有透明度的树木细枝绘制效果;
图11为图10上部细节的放大图;
图12为图10所示场景的不排序的例子;
图13为图12上部细节的放大图;
图14为根据本发明的带有透明度的树木细枝绘制效果;
图15为根据本发明的带有树木叶片的半透明细枝的高空俯视绘制效果;
图16为根据本发明的带有叶片的树木的半透明细枝的林间漫游效果图绘制效果;
图17为根据本发明的为环幕渲染的夏季场景图像的平面图;
图18为图17的左半部分的细节图;
图19为图17的右半部分的细节图;
图20为夏季场景的环幕展示效果图;
图21为根据本发明的环幕渲染的冬季场景图像的平面图;
图22为图21的左半部分的细节图;
图23为图21的右半部分的细节图;
图24为冬季场景的环幕展示效果图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本发明所提供的方法包括如下三个步骤:
步骤1:复杂场景数据的构建;
步骤2:绘制场景的阴影深度纹理即阴影贴图;
步骤3:绘制视点视锥内的场景。
图1为根据本发明的用于场景绘制的图形处理方法的流程图,展示了步骤2和步骤3。图2为图1的细化说明。下面结合附图对各个步骤进行详细说明。
步骤1:复杂场景数据的构建。
由于树木是复杂场景中的典型代表,它们本身结构是十分复杂,这给场景的实时和高真实感的绘制带来了很大的困难,因此本发明采用树木的三维几何模型为对象来说明本发明所提出的方法。
通过各种建模方法获取复杂度较高真实感较强的树木三维几何模型,提取每一个三维几何模型的L级LOD模型序列模型。使用传统递进简化方法对于建筑、雕塑等表面比较平滑的模型的简化非常有效。整个简化过程被纪录下来用于构造多分辨率模型。但是对于树木这种拓扑结构复杂而且树叶纷繁杂乱的模型,传统的递进简化方法的效果并不好。对树木模型这类非连通复杂对象的递进简化方法,按照局部空间占有度,定义新的简单的局部几何对象替代原来复杂的几何对象,递归这个替代过程直到生成最简单的模型来表示。
本发明所采用的递进简化方法先将一个点集的空间占有度定义为以下四个点组成的四面体的体积:第一个点和第二个点分别为该集合直径的两个端点,第三个点为该集合中到二者距离之和的最大者,而第四个点为该集合中到三者距离之和的最大者。最大占有度的四边形为这四个点按照第1、3、2、4的顺序来连接。该递进简化方法也保持纹理坐标的简化与几何信息的简化一致,纹理坐标保持的基本原则是纹理图像长的方向与集合直径方向一致。对于树木模型中的树叶纹理,在递进简化的时候,把原来树叶的复杂的网格模型用定向四边形包围盒代替。其纹理坐标以(0,0),(1,0),(1,1),(0,1)代替。四边形顶点的序号以这个四边形的法向量为轴的方向构成右手系为正方向进行纹理映射。若对树叶进一步简化,则相邻的两个四边形合并为一个大的四边形,重新计算这个面的法向量,再以右手规则确定顶点序号顺序和纹理坐标。
对于树木叶片的简化,通过定义一个二次曲面函数来得到叶子的网格模型。通过指定叶脉函数的参数本发明可以构造叶序模型。然后把生成的多分辨率序列模型输出为标准三维数据格式的文件。构建场景配置文件和纹理材质文件。
生成多分辨率模型以后,选择具体三维几何模型来构建多分辨率模型列表(MR模型序列)。本发明使用的模型选择规则是依据该模型的复杂度离开视点的距离来确定的。模型的复杂度以模型所含有的多边形个数来定义。多边形的个数与它离视点的距离成函数关系。这个函数关系是线性函数或非线性函数(包括分段函数)。对于分段函数,就将距离分为N段,距离的分段点分别为{di}i=0,1,...,N且0≤d0≤d1≤...≤dN,则N+1个分段点把非负距离空间划分成N个区间,各个区间的模型的多边形个数分别为{ni}i=1,2,...N且n1≥n2≥...≥nN≥0,其中n1为复杂度最高的几何模型,ni+1=s×ni,1≤i≤N,0<s<1。参数s是一个压缩系数,表示模型的简化率,可以由用户自主定义。
把生成的多分辨率序列模型导出为标准三维数据格式的文件。这里所说的标准三维几何模型数据的文件的内容包含三维几何模型各个顶点的三维坐标、顶点之间的连接关系即面信息、纹理坐标、材质文件名称和材质信息。文件的组织结构为顶点坐标、法向量、纹理坐标和面的信息构成一个组,每组指定一个材质信息。每一个面需指定顶点序号,也同时指定法向量序号或纹理坐标序号或者两者都指定。每个文件由一个组或者多个组构成。每个文件指定一个材质文件。
三维数据文件的编码为这些列表的记录,而顶点信息和面片信息的编码纪录顺序与模型简化过程有关。这个关系体现在:顶点坐标的排序为递进减化过程中点被简化的逆顺序,对应的法向量坐标和纹理坐标使用遵守顺序。面的排序依靠顶点排列顺序,一个面的更多顶点在排序中如果靠前,自己的排序也在所有面的排序中靠前。在具体编码的时候,面顺序与顶点顺序的混合,其中顶点信息包括坐标、法向量坐标和纹理坐标。面顺序是主体,而顶点顺序依赖面顺序,要求每一个面的顶点都排在其前边,而且尽量靠近自己。
除了模型文件,还需要构建场景配置文件和纹理材质文件。场景配置文件需要描述每个场景的布局,包括每个三维几何模型的缩放、位置、旋转角度。纹理材质文件包括每个组的纹理的环境光、漫射光、反射光、透明度、纹理图像等材质属性。此外,每个场景再配置一个地形模型,含高程图和纹理文件或者输入一张地形图像作为地形模型。以地形图像作为地形模型时,其高度信息以图像的亮度值进行缩放后得到。
步骤2:绘制场景的阴影深度纹理即阴影贴图。
在绘制阴影时,采用平行视锥阴影贴图(Parallel Split Shadow Mapping)方法(参考:Fan Zhang,Hanqiu Sun,LeileiXu,Lee Kit Lun,Parallel-splitshadow maps for large-scale virtual environments,Proceedings of the 2006ACM International conference on Virtual reality continuum and its applications,June 14-April 17,2006,Hong Kong,China)来生成阴影,该算法首先按照某种规则将视点视锥平行的分割成多个部分,再对每个部分使用相同尺寸的深度纹理生成阴影图,使得屏幕采样率与阴影图的采样率一致,从而达到了很好的反锯齿效果。该算法在大规模场景的阴影生成中应用十分广泛。在每一个子视锥的阴影图绘制是采用实例化绘制方式进行两遍绘制,绘制时将多分辨率模型序列组织成顶点数组对象输入到显存,加快绘制速度。阴影深度纹理采用多分辨率的方式,离视点最近的深度纹理每帧都更新并且尺寸最大,离视点越远更新频率越低尺寸也随之减小,采用多渲染对象(Multiple Render Targets)方式同时生成各个视锥中的深度纹理图。本发明依次要进行LOD裁剪选择绘制和异步查询绘制,包括如下步骤:
步骤21:第一遍LOD裁剪选择绘制。第一遍LOD裁剪选择绘制通过调用OpenGL的命令:glEnable(GL_RASTERIZER_DISCARD),不进行图形流水线的光栅化步骤,从而不产生任何的颜色输出。它将此次绘制计算得到的各级LOD位置数据记录到缓冲区对象(Buffer Objects)中,用于进行第二遍的异步查询绘制。LOD裁剪选择绘制包含一个顶点着色器和一个几何着色器。
顶点着色器完成三维几何模型的视锥裁剪功能,根据每个三维几何模型的位置点和该点上三维几何模型的包围盒信息,来判断位于该点的模型是否是在视锥内。所有三维几何模型的位置点和包围盒信息以顶点数组对象(Vertex Array Objects)的形式传输入到GPU中。OpenGL是以状态机的方式工作,状态的改变会带来性能的下降,为了尽可能多地减少OpenGL的状态变化,本发明把使用同一种纹理和材质的三角面片组织成一个顶点数组对象进行统一绘制。顶点着色器并行地计算每个位置点的一个布尔型的变量flag,根据位于该点模型的包围盒,计算其包围盒的八个顶点在视口坐标系下的坐标值,若这八个顶点在视口坐标系下的投影均不在视口范围内,则该模型被裁减掉,flag标记为假(False),表示该位置点的三维几何模型不在当前视锥内,不进行绘制。否则,标记flag为真(True),表示该位置的三维几何模型在当前视锥范围之内,需要进行绘制。标记好flag的值传递给几何着色器。
几何着色器完成视锥内LOD模型的级别选择功能。从OpenGL 3.0开始提供变换反馈(Transform Feedback)特性,该特性可以记录几何着色器输出的几何元素,并把记录的结果(就是模型的位置信息)传给绑定的缓冲区,用于第二遍的异步查询绘制。这样,若模型在视锥内,几何着色器就将该点的位置输出到缓冲区里,若模型不在视锥内,几何着色器不把该点的位置输出到缓冲区里。OpenGL 4中的变换反馈特性有了新的功能,它可以将几何着色器生成的几何图元输出到不同的顶点流里(在目前很多高性能显卡上,OpenGL最多只支持4个顶点流的输出)。本发明利用这个新提供的功能,通过当前保存的视点变换矩阵计算该位置点到当前视点的距离d。d与做比较,确定d所属的第k个区间(1<k<N),最后将该位置点输出到对应的第k个顶点流里。本发明预先设置了缓冲区对象(BufferObjects)来记录顶点流中的数据,并使用它和异步查询绘制进行数据传输,在异步查询绘制中直接使用。
步骤22:第二遍异步查询绘制。第二遍异步查询绘制,要将第一遍LOD裁剪选择绘制得到的三维几何模型的位置点信息(绑定的缓冲区对象)作为输入。模型的每一级LOD的数量visibleTrees通过OpenGL的异步查询命令(Asynchronous Query)来获得。若查询的返回结果visibleTrees大于零,则遍历三维几何模型的每个组,使用中的实例数组绘制(InstancedArrays)对使用相同纹理和材质的组进行绘制。在像素着色器中,根据生成的阴影贴图对每个像素着色,以此来得到实时的阴影效果。若visibleTrees的查询结果为0,说明在视点视锥内没有这种的LOD模型,就不进行绘制。
步骤23:仅使用一个绘制循环绘制阴影贴图。依次在每个光源视锥里进行步骤21和步骤22来生成每个子视锥对应的阴影图,这样依然能保持原来阴影图的LOD生成方式。当模型的LOD级别大于4级时,本发明采用了不同的绘制策略,通过控制选择LOD距离,把第三级LOD以后的模型换成最简单的模型,这样可以不增加LOD裁剪选择绘制和异步查询绘制,同时又减少了绘制阴影时的几何量。
步骤3:绘制视点视锥内的场景。
采用实例化绘制方式进行两遍绘制并结合循环绘制方法,同时由第二步生成的阴影贴图,在像素着色器中以基于阴影贴图的方法来生成动态实时的阴影效果。多细节绘制包含细的线状几何模型的半透明绘制、细的线状模型实例化绘制、半透明对象组成场景的半透明混合(Alpha混合)技术以及动态连续LOD绘制。最后根据环幕的长宽比例尺寸对视口大小进行设置,把结果送到环幕上进行展示。步骤3包括以下步骤:
步骤31:多遍循环绘制。目前OpenGL 4只能支持有限的N个顶点流,对目前很多高性能的GPU,例如NVidia GTX 470和560Ti最多只支持4个顶点流的输出。因此在一次绘制循环中只能区分4级LOD模型。使用越多的模型LOD级别会有更好的平滑过渡的效果,因此本发明设计了一种循环绘制的方式来克服需要绘制的模型的LOD级别数L大于N的情形。本发明从第一级LOD模型开始,以N个最相邻的模型为一组,结合区分这N个级别的距离判断参数进行绘制,当绘制完毕后再进入下一个绘制循环,绘制下一组模型,直至所有的模型绘制完毕,总共的绘制循环次数为[L/N],这里[L/N]表示L除以N的商向上取整。
步骤32:细的线状几何模型的半透明绘制。复杂场景中,细的线状几何模型往往小于单个像素,半透明线段的绘制有利于保持细节,因为此时多边形的光栅化绘制会浪费在亚像素(Sub-pixel)的计算上。在复杂森林场景中,树木的细枝是典型的细的线状几何模型,常常会变得小于单个像素,本发明使用细枝来描述细的线状几何模型的半透明绘制。树木模型也需要线模型和网格模型的混合表示。当树的侧枝在屏幕上的投影宽度小于一个像素时,就用线段来表示,并依据该宽度确定线的透明度,使得模型中的每段细枝带有不同的透明度α(0<α<1),透明度等于投影宽度所占用像素的个数。通常越远处细枝的透明度越高(α值越小)。半透明细枝按α∶1-α的比例与背景进行混合,实现半透明效果。在漫游时,各级LOD间的半透明细枝以及背景处的树木侧枝产生渐入渐出的效果。附图4说明细枝半透明绘制的必要性。
本发明优选为预先生成了树木模型带有透明度的各级LOD模型{TreeModelij=(Trunkij,TinBranchij)|1≤i≤K,1≤j≤L},K为树种个数,L为LOD级别数。每个模型TreeModelij由两个Wavefrontobj模型格式(.obj格式)的文件组成。其中一个模型文件是不透明的枝干组成的多边形网格模型Trunkij(Trunk),另一个模型文件是带有不同透明度的细枝组成的线状模型ThinBranchij(Thinbranch),通常j越大,模型中各个细枝线段的α值越小。对于场景中所有的线状模型Thinbranch,本发明所采用的半透明绘制方法如下:
(1)读入线状模型Thinbranch,以线段的形式把Thinbranch中所有的顶点组成一个大的顶点缓冲区对象(Vertex buffer object/VBO)vertexThinbranch。vertexThinbranch中的每个点pi包含7个分量:局部坐标系中的顶点位置(x,y,z),法向量(a,b,c)和由该点所组成的线段的透明度α。(P2i,P2i+1)组成一条线段,其中i=0,1,2...。
(2)为了得到帧缓存里正确的颜色信息,本发明先绘制地面和天空,然后绘制不透明多边形网格模型Trunk,最后绘制带有透明度的细枝。本发明把视锥内的细枝模型Thinbranch在CPU中使用快速排序算法按到视点的距离由远及近进行排序,然后按照排好的顺序由远及近进行绘制。
(3)在Thinbranch的顶点着色器里计算每个点的裁剪坐标(Clipcoordinate),计算法向量和光源到该点的入射向量,连同该点的裁剪坐标和α值传递给片元着色器。在片元着色器中采用Phong光照模型计算该像素的颜色,并根据传入的透明度α值设置该像素点的α值。
步骤33:细的线状模型实例化绘制。本发明以树木为典型对象而描述细的线状模型实例化绘制方法。
(1)本发明采用把所有K种模型TreeModelij的同一级LOD合并成一个模型(TreePatch)的方式减弱此类错误。所有K种模型的第j级LOD均合并到TreePatchj(1≤j≤L)中,TreePatchj包含不透明的枝干模型TrunkPatchj和带有不同透明度的细枝模型ThinbranchPatchj
(2)对ThinbranchPatchj本发明从远到近每次只区分出1级LOD的位置点,依次绘制第L级到第1级的LOD模型。在每一次绘制循环时,几何着色器只输出1级LOD模型的位置点。
步骤34:半透明对象组成场景的半透明混合(Alpha混合)技术。目前的实例化(实例化绘制是指对一个几何体绘制多个实例,每个实例在位置,方向和大小上有差异)技术不支持半透明对象,本发明方法能够弥补这个不足,从而实现半透明对象组成场景的半透明混合(Alpha混合)技术。对象绘制顺序是一个技术关键。如果没有到视点的距离由远到近的排序,后绘制的更远的对象因为无法通过深度测试而不能全部绘制出来。本发明使用快速排序算法在CPU中将instanceBO中每一个对象出现的顺序按其到视点的距离由远到近排序,进一步纠正位置排顺错误而引起的半透明混合错误,保证Alpha混合的正确性,实现半透明的硬件实例化绘制。
步骤35:动态连续LOD绘制。由于模型的LOD是离散的,在场景漫游时相邻两级LOD模型在切换时难免会产生跳变现象。虽然通过增加LOD级别可以减弱跳变,但是因此会带来数据存储量和人工工作量的增加。本发明利用OpenGL(目前使用OpenGL 4)的曲面细分可编程功能分别对模型的每一个分组(例如树木的枝干和树冠属于不同的分组)进行连续层次细节模型的实时绘制。本发明使用曲面细分功能对不同的线段进行不同等级的细分,在几何着色器中改变几何图元的拓扑结构。这样可以对枝干的线状骨架模型进行不同程度的细分,然后转换成三角网格模型。对于树冠模型实现多边形叶子模型与广告牌模型之间渐进的相互转换。从而实现场景漫游时相邻两级层次细节模型的连续、实时的平滑过渡。
步骤36:宽屏幕视口尺寸设置。首先计算环幕的长宽像素的比例,将其设置为程序视口的比例,并将绘制视口的宽度只设置为图形界面库的最大宽度值;然后在该视口下进行实时的绘制,通过渲染到纹理(Render totexture)的方式将视口场景渲染到帧缓冲区对象(Frame buffer object)中去,根据不同的投影仪在边界上的颜色差异,使用Mean Value Coordinates方法(Z.Farbman,G.Hoffer,Y.Lipman,D.Cohen-Or,D.Lischinski,Coordinatesfor instant image cloning.In:SIGGRAPH’09:ACM SIGGRAPH 2009papers,pp.1-9.)对帧缓冲区对象中的像素值进行快速图像融合,最后将融合结果输出到投影仪,在环幕上进行展示,以增强身临其境的感觉。
下面是根据本发明所提供的方法的实验结果。在所有实验中,均采用C++语言和OpenGL 4.2图形函数库实现本发明所描述的方法。所有实验都是在一台Core i7 2.67GHz的CPU、3GB内存、NVidia GTX560显示芯片、操作***为Windows 7的PC机上完成的。应该理解,本发明并不局限于上面的实施例。
在一个大规模复杂场景A里,其中场景中的总共包含有1,039,358个复杂的树木模型;视锥中的树木数量有56,220棵;视锥内有一千一百多万个多边形;场景中的模型种类为5种;场景中的每种模型有8级LOD。绘制的窗口分辨率为1920×1082。通过比较是否在视线视锥内进行实例化绘制和是否在光线视锥内进行实例化绘制,每种策略的每帧中图形绘制命令的数量和FPS如表1所示。表1为场景A有100万棵树,视锥内有3.8万棵树的大场景中,每种策略的每帧中图形绘制命令的数量和FPS的比较。
表1
在一个场景B里(其规模比A要略小一些),其中:场景中的树木总数:43,350;视锥中的树木数量:6,618;视锥内有两百多万个多边形;场景中的模型种类为5种;场景中的每种模型有8级LOD。绘制的窗口分辨率为1920×1082。
通过比较是否在视线视锥内进行实例化绘制和是否在光线视锥内进行实例化绘制,每种策略的每帧中图形绘制命令的数量和FPS如表2所示。表2为场景B有4万棵树,视锥内有6618棵树的场景中,每种策略的每帧中图形绘制命令的数量和FPS的比较。
表2
视点视锥内每帧图形绘制命令的数量为K×numLOD×numGroup。光源视锥内每帧图形绘制命令的数为numShadowSplits×K×N×numGroup。因此绘制每一帧图形绘制命令的复杂度为O(K×numLOD[L/N])([L/N]表示不大于L/N的最大整数)。K为场景中三维几何模型的种类,numLOD为三维几何模型LOD的级别数,numGroup是三维几何模型使用不同纹理的组别。numShadowSplits是场景中阴影的划分个数。
每帧中TrunkPatchj的draw call数量的复杂度为O([L/N]×numGroup),numGroup是TrunkPatchj使用不同材质的组别数。ThinbranchPatchj的图形绘制命令数量的复杂度为O(L)。因此绘制每一帧图形绘制命令的总复杂度为O(L×numGroup)。表3为各种情况下细枝场景每帧中图形绘制命令的数量与FPS的对比,如表3所示,在改进后的情况下,FPS提高了近50%。
表3
  细枝绘制方式   图形绘制命令的数量   FPS
  无实例化绘制   2406-2433   11.44
  改进1   63-90   19.32
  改进2   63-90   17.14
  改进3   69-91   16.65
图4为根据本发明在同一个没有叶子遮挡的冬季森林场景中,直接使用方法RRS进行绘制的结果,场景没有采用半透明绘制,其中共有36134棵树木对象,包含了4种树木模型,每种模型有8级LOD;此时视点视锥内有2030棵树,包含了88万个多边形,FPS为16.63,绘制的窗口分辨率为1024×768像素。图5为图4右上角的放大图。
图6为根据本发明的在一个叶子稀少的冬季森林场景中,使用方法RRS进行绘制的结果,场景没有采用线段模型来表示细枝,其中共有300916棵树,包含了4种树木模型,每种模型有8级LOD。此时视点视锥内有11903棵树,包含了一千两百万个多边形,FPS为10.82,绘制的窗口分辨率为1024×768像素。图7为图6右上部分的放大图。
图8为根据本发明所提供的方法把树木模型变为两部分的示意图。
图9为根据本发明的K种树木模型合并成一个模型。
图10为根据本发明的带有透明度的树木细枝绘制效果,其中共有36134棵树,包含了4种树木模型,每种模型有8级LOD;此时视点视锥内有2030棵树,包含了88万个多边形,FPS为16.63,绘制的窗口分辨率为1024×768像素。图11为图10上部细节的放大图。
图12为根据本发明的不排序的例子,包含了4种树木模型,每种模型有8级LOD,此时视点视锥内有2030棵树,包含了88万个多边形,FPS为18.09,绘制的窗口分辨率为1024×768像素。图13为图12上部细节的放大图。
图14为根据本发明的带有透明度的树木细枝绘制效果,其中共有45776棵树,包含了4种树木模型,每种模型有8级LOD,此时视点视锥内有2742棵树,包含了121万个多边形,FPS为13.11,绘制的窗口分辨率为1024×768像素。
图15为根据本发明的带有树木叶片的半透明细枝的高空俯视绘制效果,其中共有44537棵树,包含了4种树木模型,每种模型有8级LOD。每个树木包含少量叶片。此时视点视锥内有2156棵树,包含了408万个多边形,FPS为13.43,绘制的窗口分辨率为1024×768像素。
图16为根据本发明的带有叶片的树木的半透明细枝的林间漫游效果图绘制效果,其中共有44537棵树木,包含了4种树木模型,每种模型有8级LOD。每个树木包含少量叶片。此时视点视锥内有1756棵树,包含了611万个多边形,FPS为11.33,绘制的窗口分辨率为1024×768像素。
图17为根据本发明的为环幕渲染的夏季场景图像的平面图,其中场景中的总共包含有1,593,132个复杂的树木模型(每个树木包含很多叶片),视锥中的树木数量有85,023棵,视锥内有一千七百多万个多边形,场景中的有5种模型种类,场景中的每种模型有8级LOD。绘制的窗口分辨率为5760×1080像素,FPS为10.88。图18为图17的左半部分的细节图。图19为图17的右半部分的细节图。
图20为夏季场景的环幕展示效果图。图21为根据本发明的环幕渲染的冬季场景图像的平面图,其中场景中的总共包含有1,031,971个复杂的树木模型,视锥中的树木数量有46,736棵,视锥内有一千五百多万个多边形,场景中的有5种模型种类,场景中的每种模型有8级LOD。绘制的窗口分辨率为5760×1080像素,FPS为11.41。图22为图21的左半部分的细节图。图23为图21的右半部分的细节图。图24为冬季场景的环幕展示效果图。
由上可知,本发明不仅在视点视锥中使用了实例化绘制的方法,而且在生成阴影贴图时,在光线视锥内也采用了这种方法,同时保持了阴影贴图的LOD生成的特性。本发明克服了目前OpenGL 4中顶点流的数量最多为N的限制,通过进行循环绘制的方式能绘制任意即的LOD模型。同时在生成各个阴影图时,当LOD级数多于N级时不增加绘制趟数。本发明还通过合并多个模型对象,在几何着色器中控制单级LOD的输出以及位置点排序的方式,对带有不同透明度的线状模型进行实例化绘制,使用基于GPU的曲面细分功能实现场景漫游时不同层次细节模型的连续、实时的平滑过渡,FPS提高了近50%。
本发明所提供的方法与目前三个具有代表性的森林场景绘制方法:基于GPU的动态四分数据流方法(DQS)、多分辨率叶子简化森林绘制算法(MRF),视线相关的剪枝绘制方法(VDP),以及森林场景阴影LOD绘制方法(RRS)进行比较。表4从是否支持实例化绘制、实时阴影、反走样处理、真实感、是否有树叶纹理、模型的几何保真度、内存显存的消耗以及是否支持连续的LOD模型等九个方面对上述的几种方法进行比较。
表4
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种用于场景绘制的图形处理方法,所述方法包括:
步骤1:构建复杂场景数据,其中所述场景数据包括模型文件、场景配置文件和纹理材质文件;
步骤2:绘制场景的阴影贴图,具体包括:
步骤21:第一遍层次细节裁剪选择绘制,其中所述层次细节裁剪选择绘制是通过顶点着色器和几何着色器来实现的,所述几何着色器利用OpenGL 4的变换反馈特性将生成的几何图元输出到不同顶点流中,完成所述层次细节的选择;
步骤22:第二遍异步查询绘制;
步骤23:仅使用一个绘制循环绘制阴影贴图;
步骤3:绘制视点视锥内的场景,具体包括:
步骤31:多遍循环绘制;
步骤32:细小线状几何模型的半透明绘制;
步骤33:细小线状模型实例化绘制;
步骤34:半透明对象组成场景的半透明混合,其中使用快速排序算法在CPU中将每一个所述半透明对象出现的顺序按其到视点的距离由远到近排序,以进一步纠正位置排序错误而引起的半透明混合错误,保证Alpha混合的正确性,实现了半透明的硬件实例化绘制;
步骤35:动态连续层次细节绘制,所述动态连续层次细节绘制采用OpenGL 4的曲面细分可编程功能来实现;
步骤36:宽屏幕视口尺寸设置。
2.如权利要求1所述的方法,其特征在于,所述顶点着色器用于完成三维几何模型的视锥裁剪功能,根据每个三维几何模型的位置点和该点上三维几何模型的包围盒信息,来判断位于该点的模型是否是在视锥内。
3.如权利要求1所述的方法,其特征在于,所述第二遍异步查询绘制将所述第一遍层次细节裁剪选择绘制得到的三维几何模型的位置点信息作为输入。
4.如权利要求1所述的方法,其特征在于,所述使用一个绘制循环绘制阴影贴图是指依次在每个光源视锥里进行第一遍层次细节裁剪选择绘制和第二遍异步查询绘制来生成所述每个子视锥对应的阴影图。
5.如权利要求1所述的方法,其特征在于,所述多遍循环绘制包括如果需要绘制的三维几何模型的层次细节级别多于N时,通过设置层次细节距离控制参数,首先在第一次绘制循环中先绘制前N级相邻的层次细节模型,然后依次在下一次绘制循环中绘制下一组相邻的N级层次细节模型直至所有层次细节级别的三维几何模型都绘制好,其中N为顶点流的级数且为自然数。
6.如权利要求1所述的方法,其特征在于,采用半透明线段表示绘制对象中细小线状的部分;采用半透明多边形表示对绘制对象中半透明的部件。
7.如权利要求1所述的方法,其特征在于,在场景漫游时,使用曲面细分功能,相邻两级层次细节进行连续层次细节模型的实时绘制,实现场景漫游时对象不同层次细节模型的连续、实时的平滑过渡。
8.如权利要求1所述的方法,其特征在于,所述宽屏幕视口尺寸设置包括计算环幕的长宽像素的比例,将所述环幕设置为程序视口的比例,并将绘制视口的宽度只设置为图形界面库的最大宽度值,然后在该视口下进行实时的绘制,通过渲染到纹理的方式将视口场景渲染到帧缓冲区对象中,并根据不同的投影仪在边界上的颜色差异,对所述帧缓冲区对象中的像素进行图像融合,最后将融合结果输出到所述投影仪,在所述环幕上进行展示。
CN201210340220.XA 2012-09-13 2012-09-13 用于场景绘制的图形处理方法 Expired - Fee Related CN102903146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210340220.XA CN102903146B (zh) 2012-09-13 2012-09-13 用于场景绘制的图形处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210340220.XA CN102903146B (zh) 2012-09-13 2012-09-13 用于场景绘制的图形处理方法

Publications (2)

Publication Number Publication Date
CN102903146A CN102903146A (zh) 2013-01-30
CN102903146B true CN102903146B (zh) 2015-09-16

Family

ID=47575358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210340220.XA Expired - Fee Related CN102903146B (zh) 2012-09-13 2012-09-13 用于场景绘制的图形处理方法

Country Status (1)

Country Link
CN (1) CN102903146B (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473800B (zh) * 2013-07-05 2016-09-21 南京地心坐标信息科技有限公司 一种三维模型综合动态调度方法
CN103700143B (zh) * 2013-12-30 2017-07-07 四川九洲电器集团有限责任公司 一种基于gpu多遍绘制的三维动态海洋模拟方法
CN104951036B (zh) * 2014-03-27 2017-12-15 腾讯科技(深圳)有限公司 一种界面调整方法及终端
CN103927395A (zh) * 2014-05-05 2014-07-16 曾志明 结构简化图像三维几何及材质纹理的数据结构及渲染方法
CN104050689A (zh) * 2014-06-10 2014-09-17 黄淮学院 一种虚拟场景中可视物体的二维裁剪生成方法
WO2016054800A1 (en) * 2014-10-10 2016-04-14 Empire Technology Development Llc Scene image generator
KR102197064B1 (ko) * 2014-10-10 2020-12-30 삼성전자 주식회사 Lod를 조절할 수 있는 그래픽스 프로세싱 유닛, 이의 작동 방법, 및 상기 그래픽스 프로세싱 유닛을 포함하는 장치들
US20160140761A1 (en) * 2014-11-19 2016-05-19 Microsoft Technology Licensing, Llc. Using depth information for drawing in augmented reality scenes
CN104657333B (zh) * 2015-02-11 2017-06-20 中国海洋大学 基于gpu的动态二维矢量场流线可视化算法
CN104952103B (zh) * 2015-05-19 2018-03-09 中国人民解放军理工大学 一种视点依赖的阴影贴图创建方法
US9786098B2 (en) * 2015-07-06 2017-10-10 Mediatek Inc. Apparatus for performing tessellation operation and methods utilizing the same
CN105488841B (zh) * 2015-12-28 2018-02-23 北京像素软件科技股份有限公司 一种公告板的渲染方法和装置
CN108475327A (zh) * 2016-01-13 2018-08-31 虞晶怡 三维采集与渲染
CN107633140A (zh) * 2017-09-22 2018-01-26 康勖萍 园林工程图纸绘制和自动化工程核算方法
CN107846584B (zh) * 2017-11-02 2019-05-07 中国电子科技集团公司第二十八研究所 基于场景管理开发库的虚拟现实自适应桌面同步投影方法
CN109389662B (zh) * 2018-10-16 2019-11-19 成都四方伟业软件股份有限公司 一种三维场景可视化配置方法及装置
CN109887078B (zh) * 2019-03-12 2023-04-07 阿波罗智联(北京)科技有限公司 天空绘制方法、装置、设备和介质
CN110134752B (zh) * 2019-05-16 2021-01-15 洛阳众智软件科技股份有限公司 三维大场景建模数据处理方法及装置
US11120591B2 (en) * 2019-05-31 2021-09-14 Apple Inc. Variable rasterization rate
CN112070651A (zh) * 2019-06-10 2020-12-11 华夏芯(北京)通用处理器技术有限公司 一种基于双Buffer架构下的纹理贴图硬件加速器
CN111275607B (zh) * 2020-01-17 2022-05-24 腾讯科技(深圳)有限公司 界面显示方法、装置、计算机设备及存储介质
CN112184789B (zh) * 2020-08-31 2024-05-28 深圳大学 植物模型生成方法、装置、计算机设备和存储介质
CN112257865B (zh) * 2020-09-09 2023-11-03 中国科学院信息工程研究所 一种gpu上的基于着色优化的置信传播方法
CN112215935B (zh) * 2020-12-02 2021-04-16 江西博微新技术有限公司 Lod模型自动切换方法、装置、电子设备及存储介质
CN112288842B (zh) * 2020-12-29 2021-03-12 中国人民解放军国防科技大学 基于阴影图算法的地形可视域定量分析方法和装置
CN113706696B (zh) * 2021-09-02 2023-09-19 长春理工大学 基于对象视觉显著性的3d几何模型细节层次自适应选择方法
CN113744123B (zh) * 2021-11-05 2022-01-25 四川见山科技有限责任公司 一种基于全局实例化的大规模动态对象绘制方法及***
CN114937110B (zh) * 2022-05-31 2024-04-12 国网北京市电力公司 一种gpu加速的引流线建模方法、***、设备及介质
CN118096985A (zh) * 2023-07-11 2024-05-28 北京艾尔飞康航空技术有限公司 虚拟森林场景实时渲染方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114383A (zh) * 2006-07-28 2008-01-30 中国科学院自动化研究所 一种树叶渐进简化方法
CN101488235A (zh) * 2008-01-16 2009-07-22 中国科学院自动化研究所 针叶类植物冠层的层次细节模型构造方法
CN101661628A (zh) * 2008-08-28 2010-03-03 中国科学院自动化研究所 植物场景的快速渲染及漫游方法
CN101751694A (zh) * 2008-12-10 2010-06-23 中国科学院自动化研究所 一种对复杂叶片的快速简化和绘制方法
WO2012083508A1 (zh) * 2010-12-24 2012-06-28 中国科学院自动化研究所 互联网上复杂场景真实感快速绘制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114383A (zh) * 2006-07-28 2008-01-30 中国科学院自动化研究所 一种树叶渐进简化方法
CN101488235A (zh) * 2008-01-16 2009-07-22 中国科学院自动化研究所 针叶类植物冠层的层次细节模型构造方法
CN101661628A (zh) * 2008-08-28 2010-03-03 中国科学院自动化研究所 植物场景的快速渲染及漫游方法
CN101751694A (zh) * 2008-12-10 2010-06-23 中国科学院自动化研究所 一种对复杂叶片的快速简化和绘制方法
WO2012083508A1 (zh) * 2010-12-24 2012-06-28 中国科学院自动化研究所 互联网上复杂场景真实感快速绘制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Continuous LOD Model of Coniferous Foliage;Qingqiong Deng et al.;《The International Journal of Virtual Reality》;20071231;第6卷(第4期);摘要、第III-VI部分、图5,6,7 *
Guanbo Bao et al..Large-scale forest rendering: Real-time, realistic, and progressive.《Computers Graphics》.2012,第36卷(第3期), *

Also Published As

Publication number Publication date
CN102903146A (zh) 2013-01-30

Similar Documents

Publication Publication Date Title
CN102903146B (zh) 用于场景绘制的图形处理方法
CN113674389B (zh) 场景渲染方法、装置、电子设备及存储介质
CN108984169B (zh) 一种跨平台多元集成开发***
CN100547616C (zh) 一种基于分级层次化深度网格的森林绘制方法
CN111275802B (zh) 一种基于vray的pbr材质渲染方法和***
CN110291563A (zh) 图形处理中的多个着色器进程
CN103180881A (zh) 互联网上复杂场景真实感快速绘制方法
CN106030663A (zh) 具有共享数据信道的着色器管线
CN113593051B (zh) 一种实景可视化方法及大坝可视化方法及计算机设备
CN106780709A (zh) 一种确定全局光照信息的方法及装置
CN103426199B (zh) 一种三维几何场景的低噪声实时全局光照绘制方法
CN101271585A (zh) 一种在图形处理器上拾取三维几何图元的方法
CN105184843B (zh) 一种基于OpenSceneGraph的三维动画制作方法
CN109102560A (zh) 三维模型渲染方法及装置
CN105205861A (zh) 基于Sphere-Board的树木三维可视化模型实现方法
CN102915563A (zh) 三维网格模型透明绘制的方法及其***
CN112419511A (zh) 三维模型文件处理方法、装置、存储介质及服务器
CN107689076B (zh) 一种用于虚拟手术***切割时的高效渲染方法
Xue et al. Efficient GPU out-of-core visualization of large-scale CAD models with voxel representations
Zhang et al. When a tree model meets texture baking: an approach for quality-preserving lightweight visualization in virtual 3D scene construction
CN109598672A (zh) 一种地图道路渲染方法及装置
Bao et al. Billboards for tree simplification and real-time forest rendering
Liang et al. Automatic Mesh and Shader Level of Detail
WILLCOCKS Sparse volumetric deformation
Guo et al. Animating Prairies Simulation with Shell Method in Real-time.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150916