基于speedtree的拍摄公告板贴图的方法及装置与流程

文档序号:13949315阅读:1706来源:国知局
基于speedtree的拍摄公告板贴图的方法及装置与流程

本发明涉及基于speedtree的拍摄公告板贴图的方法及装置,属于计算机图形技术领域。



背景技术:

公告板(billboard)技术,也常译为广告牌技术,通常是利用多边形总是朝向观察者这一特性,来达到某些特定的效果。它是一种通过简单方式实现许多没有固定表面效果的一项非常实用的技术,它可以四两拨千斤地完成很多神奇的效果。例如公告板技术加上纹理的alpha混合与动画在一起使用,可以实现很多没有固定表面的特效,如烟雾、火焰、爆炸、能量盾、云彩、水滴,树木,森林,喊话窗口,甚至npc人物等等。

在3d游戏开发过程中需要有植被系统,以前的植被系统都是只做树模型,最多也就是做一片公告板,并且没有多个方向的公告板,也没有公告板的四季过度变化,使场景树的效果比较单调绘制效率也比较低下。这种公告板对于远景树能减少几何体绘制,提高绘制效率,在铺满远景树的情况下,公告板树能带来很好的模拟3d树的效果。在有季节变化的时候,这种公告板可以做出四季的效果,加上有3d树的四季效果,可以让玩家有身临其境般的感受,即使在游戏的世界也能享受真实四季。

目前,针对树木的建模方法包括有基于交互的建模方法。用户使用通用的三维建模软件完全手动的构建树木的每个细节,例如使用autodesk公司的3dsmax软件。该建模方法的控制精度较高,但建模工作量较大。有一些建模方法通过提供内置的树木模型,例如idv公司的speedtree软件工具包,用户通过交互修改已有树木模型的参数得到期望的树木模型。该建模方法速度得到了很大提升,但要求用户对建模参数具有一定的理解和掌握,并且构建与真实树木图像相似的树木模型比较困难。关于这些背景技术,引用专利文献cn102306386a,供读者参考。



技术实现要素:

基于背景技术,提出一种基于speedtree的拍摄公告板贴图的方法及装置,对于远景树能减少几何体绘制,提高绘制效率。

本发明的技术方案一方面为一种基于speedtree的拍摄公告板贴图的方法,所述方法包括以下步骤:

a、保留主绘制流程的环境设置;

b、获取需要拍摄公告板的参数;

c、拍摄每个面的公告板;

d、把拍摄的所有公告板对应的指定目标图画到一张主纹理图上。

在步骤a中,所述环境设置包括rendertargetview、depthview、viewport的参数;所述步骤b包括把在模型编辑器的时间轴设置时间点、设置需要保存的贴图路径、贴图大小的参数。

进一步,所述步骤d包括:把拍摄的所有公告板对应的rendertargetview对象,按照树的uv坐标画到一张主纹理图上并保存。

进一步,所述步骤c包括:通过获取到的拍摄参数创建每个面的纹理描述,当相机旋转一定的角度就把模型拍摄到一个面。所述步骤c还包括:在不影响其他功能的绘制的情况下,拍摄出各种时间点的公告板贴图,并且拍摄出模型的每个方向。所述步骤c还包括:把每个时间点对应的公告板贴图应用于四季变化,春夏秋冬各拍摄一图片,在模型编辑器中进行绑定材质,线性过度到每个季节的公告板。

本发明的技术方案第二方面为一种基于speedtree的拍摄公告板贴图的装置。该装置包括:环境设置保留模块,用于保留主绘制流程的环境设置过程而不影响其他功能的绘制,保留主绘制流程里的rendertargetview、depthview或viewport参数;公告板参数获取模块,用于获取需要拍摄公告板的参数,把在模型编辑器的时间轴设置时间点、设置需要保存的贴图路径或贴图大小;公告板拍摄模块,用于拍摄每个面的公告板,通过获取到的拍摄参数创建每个面的纹理描述,相机旋转一定的角度就把模型拍摄到一个面;主图绘制模块,用于把拍摄的所有公告板对应的rendertargetview对象,按照树的uv坐标画到一张主纹理图上并保存。

进一步,所述公告板拍摄模块包括:时间点拍摄单元,用于在不影响其他功能的绘制的情况下,拍摄出各种时间点的公告板贴图,并且拍摄出模型的每个方向。

进一步,所述公告板拍摄模块包括:四季处理单元,用于把每个时间点对应的公告板贴图应用于四季变化,春夏秋冬各拍摄一图片,在模型编辑器中进行绑定材质,线性过度到每个季节的公告板。

本发明的技术方案第三方面为一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法。

本发明的有益效果在于:利用本发明方案得到的公告板对于远景树能减少几何体绘制,提高绘制效率;在铺满远景树的情况下,尤其是成千上万大批量的植物,这种公告板树既能更好的模拟3d树的效果,又能优化绘制。

附图说明

图1为本发明方法中保留主绘制流程的环境过程的流程图。

图2为本发明方法中获取拍摄公告板的参数过程的流程图。

图3为本发明方法中拍摄每个面的公告板过程的流程图。

图4为本发明方法中画到一张主图上的流程图。

图5为本发明方法的总体流程图。

具体实施方式

在本发明的技术方案中,公告板的原理是使用两个三角形组成的矩形显示一张平面位图,并且在显示的过程中,该平面矩形的角度随虚拟摄像机的观察角度和位置的变化而变化。在direct3d应用中,公告板的实现方式通常是两种,一种是让某个平面始终对着虚拟摄像机,也就是平面模型的屏幕与观察者的视线垂直。例如,对于模拟3d树木,想要模拟3d树木往往不用真正的3d模型,而是用看上去很像3d树木的2d图像映射到一个矩形平面上。如果我们向某个方向观察一个映射到多边形的树木时,由于多边形是朝某个固定方向的,此时能够正确的观察该树木。但是当我们与树木朝向之间有一个观察角度的话,图形在观察者的视野中就会逐渐变窄。但是如果用了告板技术的话,那么树木始终都是朝向用户的,这个时候,无论我们如何在水平方向转移观察方向都可以正确地观察到没有很多异样的树木。

根据本发明的拍摄公告板贴图的方法,涉及保留主绘制流程的环境设置、通过获取需要拍摄公告板的参数、通过树的资源获取公告板数量和创建一张大的rendertargetview的四个流程部分。

在保留主绘制流程的环境过程中,为了不影响其他功能的绘制,保留主绘制流程里的rendertargetview、depthview、viewport等参数。如图1所示的流程图。优选地,保留主绘制流程的环境设置过程中,为了不影响其他功能的绘制,保留主绘制流程里的rendertargetview、depthview、viewport等参数,之后把它们保存下来,拍摄完公告板之后恢复保存的这些参数。

获取拍摄公告板的参数过程,把在模型编辑器的时间轴设置时间点、设置需要保存的贴图路径、贴图大小等参数。如图2所示的流程图。通过树的资源获取公告板数量设置rendertargetview、depthview、shaderresourceview。优选地,在获取需要拍摄公告板的参数过程中,在模型编辑器的时间轴设置时间点、设置需要保存的贴图路径、贴图大小等参数,传入引擎的拍摄模块。

然后,可以调用speedtree中的摄像机类(cameraclass)进行拍摄。拍摄每个面的公告板过程是通过获取到的拍摄参数创建每个面的纹理描述,相机旋转一定的角度就把模型拍摄到一个面。如图3所示的流程图。优选地,在通过树的资源获取公告板数量过程中,设置rendertargetview、depthview、shaderresourceview,同时通过公告板下标,计算每个公告板对应的相机参数,利用正交投影进行绘制,绘制目标图上,之后再使用扩边算法处理下,得到一个公告板,如此得到其他公告板。

画到一张主图的过程是,把拍摄的所有公告板对应的rendertargetview按照树的uv坐标画到一张大的纹理图上并且保存下来。如图4所示的流程图。

最后做了一个总体的绘制方法的流程图,如图5所示的流程图。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接相合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在二个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在二个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1