一种跨平台多元集成开发系统的制作方法

文档序号:16246283发布日期:2018-12-11 23:36阅读:348来源:国知局
一种跨平台多元集成开发系统的制作方法

本发明具体涉及一种跨平台多元集成开发环境,可用于游戏、虚拟现实、国防、旅游、影视、家居、服装、安防、科研、测绘、农业等应用领域。

背景技术

曾经有一段时期,三维开发商关心的只是如何尽量多地开发出新的作品并把它们推销给客户。尽管那时的三维画面大多简单粗糙,但每款产品的平均开发周期也要达到8至10个月。造成这一现象的原因不仅是因为技术水平受限,更关键的是:每款三维作品都要从零开始,这造成了大量的重复劳动。

渐渐地,一些有经验的开发者给出了一种新的方案——“利用曾经相似的资源作为新项目的基本框架”,他们认为这样可以节省开发时间和研发费用,之后,便有了各种国际著名的三维作品,如:游戏、动画电影。

但部分著名的三维软件设计出的产品都存在着一些缺陷,比如:低配用户无法享受高等画质、高配用户运行游戏占用资源过大、大型场景无爆炸效果或非常虚假、游戏画面拟真度失真等严重影响用户体验的问题。

近几年,国外游戏进军中国的现象屡见不鲜,而真正能够与之竞争的国产原创游戏却非常匮乏,究其原因,就是中国缺少能够开发高品质游戏的三维编程软件(该类软件在本研究报告中又称:集成开发环境,integrateddevelopmentenvironment,后文简称:ide)。此外,即便是像知名的国际游戏,依然还存在着资源占用巨大,硬件需求过高等一系列问题。因此,作为国人,我们应该迅速打造一个可以制作出“低消耗、高质量”作品的三维编程软件,以此媲美并超越国际大作。

目前的三维编程ide难点主要体现在这几个方面:高仿真渲染、物理学模拟、降低资源消耗等。对于现有的三维产品而言,如何提升光照效果、降低系统及硬件资源负载、高效生成地形等问题都是全球一直深入研究的课题。

本发明是基于已经成型的“《冰峰利剑》跨平台多元三维编程软件”以及凭借其开发的《领空雄鹰》军事模拟飞行软件而整理的内容。

我们提出了“高仿真数字化模拟技术”,大幅提升了3d场景及物理效果的拟真度,并制作了《领空雄鹰》军事模拟飞行软件,现已应用于国防事业中(后文将详述)。之后,我们又提出了“异步着色器实时渲染技术”,目前已经取得突破性进展,资源消耗巨幅降低,从而解决了目前大多数游戏“低配画质差”、“高配消耗大”等问题。我们还提出了“地形速成仿真技术”,目前已取得实验性进展,大幅降低了真实地形制作的难度,提升了效率,不但节约时间,还提升了精度。

之后,我们不但完成了《冰峰利剑》跨平台ide的研发,用其制作了游戏,还解决了现有国际三维相关软件存在的一些问题,我们的作品未来或将对中国乃至世界的三维行业产生一定影响。2016年,我们的项目还被评为“北京市优秀创业团队项目”。

虽然《冰峰利剑》研发的初衷是为了填补国内游戏行业的空白,打造属于中国人第一个成型且独立的跨平台ide,进而开发出高质量的游戏,但随着时间的推移,我们发现,《冰峰利剑》的定位并非局限于游戏领域,它完全可以跨领域、多元化。



技术实现要素:

本发明主要的开发工具为microsoftvisualstudio2017企业版,采用c++/c#v15.0标准构建软件开发平台,在此基础上我们依靠microsoft、intel、amd、nvidia、autodesk等第三方提供的sdk工具集成三维开发环境基础,并利用opengl、physx等现有成熟的3d图像生成、处理、加工等技术,实现了最终《冰峰利剑》的构建和效果的模拟。目前,《冰峰利剑》已经可以实现了全方位、多领域、跨平台的场景模拟。

本发明提供了一种跨平台多元集成开发环境技术方案,系统包括:程序集模块、渲染模块、物理资源修改模块、交互模块;

其中,所述程序集模块用于创建或修改已有程序集api;

所述渲染模块包括图像渲染模块、动画渲染模块及音效渲染模块;

所述物理资源修改模块用来为骨骼网格体(bonesmesh)创建pr物体,将原有的物理资源重新进行数字分析,并优化原有逻辑数据,生成与软件效果匹配的物理资源,实现从零开始制作完整的ragdoll自然的物力资源的动作,并依靠这个功能完成动作脚本的初始化;

所述交互模块,其包括角色编辑器和交互菜单编辑器,所述角色编辑器用于完成人物或非人物的动画编辑,所述交互菜单编辑器用于完成用户ui界面的编辑,快速创建交互的ui元素;

所述图像渲染模块包括场景编辑器、材质生成器、地形编辑器、粒子效果编辑器中的一种或多种的组合,所述场景编辑器用于实现场景的创建及修改,所述材质生成器用于将各种模型生成3d贴图,所述地形编辑器用于生成地貌及植被的绘制,所述粒子效果编辑器用于生成所有的粒子效果。

所述动画渲染模块包括动画树编辑器、过场动画编辑器、骨架碎片生成器中的一种或两种组合,所述动画树编辑器用于生成各种动画对象,所述过场动画编辑器用于自动生成一段流畅的动画轨迹,所述骨架碎片生成器用于将静态的骨骼物体生成各种不规则的碎片。

所述音效渲染模块包括音效编辑器,所述音效编辑器将导入的不同音乐格式的声音数据转化为由独有的声音编码,即声音通知,实现不同声音同步或异步的触发,达到最佳的声音拟真效果。

所述系统还包括流媒体编辑器,其用于检查或设置流媒体是否自动播放、循环播放、播放速率、播放尺寸以及起始播放时间点。

所述粒子效果编辑器可以实现的粒子效果包括火焰、雨水、丁达尔效应、布朗运动。

与现有技术相比,本发明提供了一种跨平台多元集成开发环境技术方案,能够大幅节省研发时间、降低开发费用,通过计算机渲染技术及地形仿真技术等逼真实现例如大型场景的爆炸等特效,提高了画面的真实度,极大提高了用户体验。

附图说明

图1为本发明第一实施例的结构示意图;

图2为本发明渲染模块的结构示意图;

图3为本发明交互模块的结构示意图;

图4为本发明图像渲染模块的结构示意图;

图5为本发明动画渲染模块的结构示意图;

图6为本发明另一实施例的结构示意图;

图7为本发明系统中所涉及的技术结构体。

具体实施方式

本发明主要的开发工具为microsoftvisualstudio2017企业版,采用c++/c#v15.0标准构建软件开发平台,在此基础上我们依靠microsoft、intel、amd、nvidia、autodesk等第三方提供的sdk工具集成三维开发环境基础,并利用opengl、physx等现有成熟的3d图像生成、处理、加工等技术,实现了最终《冰峰利剑》的构建和效果的模拟。目前,《冰峰利剑》已经可以实现了全方位、多领域、跨平台的场景模拟。

本发明提供了一种跨平台多元集成开发环境技术方案,系统包括:程序集模块、渲染模块、物理资源修改模块、交互模块;

如图1所示,本发明其中一实施例中的跨平台多元ide系统包括:

程序集模块、渲染模块、物理资源修改模块、交互模块;

其中,所述程序集模块用于创建或修改已有程序集api;

如图2所示,所述渲染模块包括图像渲染模块、动画渲染模块及音效渲染模块所述渲染模块包括图像渲染模块、动画渲染模块及音效渲染模块;

所述物理资源修改模块,用来为骨骼网格体(bonesmesh)创建pr物体,将原有的物理资源重新进行数字分析,并优化原有逻辑数据,生成与软件效果匹配的物理资源,实现从零开始制作完整的ragdoll自然的物力资源的动作,并依靠这个功能完成动作脚本的初始化;

如图3所示:所述交互模块,其包括角色编辑器和交互菜单编辑器,所述角色编辑器用于完成人物或非人物的动画编辑,所述交互菜单编辑器用于完成用户ui界面的编辑,快速创建交互的ui元素。

如图4所示:图像渲染模块包括场景编辑器、材质生成器、地形编辑器、粒子效果编辑器中的一种或多种的组合,所述场景编辑器用于实现场景的创建及修改,所述材质生成器用于将各种模型生成3d贴图,所述地形编辑器用于生成地貌及植被的绘制,所述粒子效果编辑器用于生成所有的粒子效果。

如图5所示:动画渲染模块包括动画树编辑器、过场动画编辑器、骨架碎片生成器中的一种或两种组合,所述动画树编辑器用于生成各种动画对象,所述过场动画编辑器用于自动生成一段流畅的动画轨迹,所述骨架碎片生成器用于将静态的骨骼物体生成各种不规则的碎片。

如图6所示:提供了一个更加完整强大的跨平台多元ide,系统包括:场景编辑器、材质生成器、地形编辑器、程序集模块、动画树编辑器、角色编辑器、粒子效果编辑器、交互菜单编辑器、过场动画编辑器、音效编辑器、物理资源修改模块、骨架碎片生成器以及流媒体编辑器。

场景编辑器:简称:sbe,即:scenebuildingeditor,这是用来新建/修改一个场景时,必须要启动的编辑器,这就好比是我们在游戏中“关卡”的概念一样。在这个编辑器里,我们可以添加不同的玩家角色、建筑物、几何体、模块程序集、粒子等所有我们想添加的东西。当我们新建一个项目时,这个编辑器会自动启动。

材质生成器:简称:mae,即:materialassembleeditor,这是一个非常强大的功能,仅凭一张模型贴图文件,就可以为模型生成完美的:“法线贴图”、“高光贴图”、“粗糙贴图”、“发光贴图”、“ao遮挡贴图”等必需3d贴图,经过材质生成器的渲染,我们可以让一个镂空的模型重获新生,渲染出一个非常逼真的物体。除了模型生成外,我们还可以为地形提供逼真的贴图,没有经过材质生成的地形是透明的,材质生成器通过高级算法,凭借一张png或者bmp图片就可使地面看上去充满生机。

地形编辑器:简称:tge,即:terraingenerateeditor,这个模块一共包含两个子模块,一个是地形地貌绘制模块,另一个是植被绘制模块,这是一个非常强大的功能,我们不仅可以直接diy地形,还能够直接对接srtm、astergdem等全球卫星数字高程数据(dem),大大降低了手动绘制真实地形的复杂程度。对于植被绘制模块来说也是一种便捷性的提升,我们可以批量生成植被序列,迅速完成大量植被地图覆盖的工作,节约构建植被所需时间。

程序集模块:简称:apm,即:automaticprogrammodule,主要用于创建或修改已有程序集api,在中,apm也是一种场景资源,他可以由其他场景角色直接调用,无需手动撰写c++/c#代码,设置变量后,api程式将即时生效,免除从零开始撰写代码的繁冗复杂的过程,与此同时,apm强大的正、负反馈响应事件(类似delphi/c++中的result/return)可实时检测apm的运行情况。

动画树编辑器:简称:ate,即:animationtreeeditor,在这里,我们凭借一种基于节点的ui脚本系统(类似树状图)来控制场景中的人物角色和人工智能(ai)角色的动作序列。生成的动画对象可以是若干数量的反派角色的行为树,也可以是ai/npc动作的表现,还可以是车辆、轮船、飞机等载具的形象体现。

角色编辑器:简称:rbe,即:roleofboneseditor,这是中的人物或非人物角色的动画编辑工具,在这里,我们将用它来编辑物体或角色的骨骼(bones)、骨骼网格体(bonesmesh)、角色动画等场景资源。所有的角色相关编程均在此完成编辑和渲染。

粒子效果编辑器:简称:pee,即:particleeffecteditor,又称为链式点状集合系统,通过将单位点状物体聚集后,以不规则的方式呈规律性释放的资源集合,这是一个软件中模块化的独立系统,在该模块中,我们将完成所有粒子效果的制作,如:火焰、雨水、丁达尔效应、布朗运动等。通过该模块,我们可完成火山喷发,乃至核爆炸的效果模拟,身临其境的效果将震撼观看者一切感官。

交互菜单编辑器:简称:ime,即:interactivemenueditor,这是一个可视化的用户ui界面编辑器,它可以用来迅速的创建交互的ui元素,这其中包括:用户菜单、hud操作界面、hdd屏幕显示器文字,以及所有想给使用者呈现的人机交互式的图形化界面。简单、便捷、可视化的特点可以迅速提升我们gui的开发效率。

过场动画编辑器:简称:cse,即:cutsceneseditor,这是一个直接利用软件中场景制作的可用于使用者播放并观看的编辑器模块,在这里我们只需要设置关键帧即可实现动画的生成,为了提升效率,独有的预判轨迹算法会使动画的创建极其容易,我们只需将两个不同的镜头分别设置为关键帧,过场动画编辑器就会自动生成一段非常流畅并且自然的动画轨迹。

音效编辑器:简称:see,即:soundeffecteditor,在这里,所有导入的wav、mp3的声音效果都将转化为由独有的声音编码——声音通知(简称smfx,即:soundmessagefx),以这种形式实现不同声音同步或异步的触发,以此达到最佳的声音拟真效果,这种smfx的音频编码文件可以在本软件中自定义修改为不同的声音混合效果,这些单一/复合式smfx将打造出全高清晰度的声音效果,实现既听感。

物理资源修改模块:简称:pre,即:physicsresourceseditor,用来为骨骼网格体(bonesmesh)创建pr物体,即:将原有的物理资源重新进行数字分析,优化原有逻辑数据,生成与我们软件效果匹配的物理资源。以便从零开始制作完整的ragdoll自然的物力资源的动作,与此同时,还可以依靠这个功能完成动作脚本的初始化。

骨架碎片生成器:简称:bfc,即:bonesfragmentcreator,这是一个非常重要的模块,在这里,我们可以将任何的静态骨骼物体(如:建筑、静态目标等)生成各种不规则的碎片,并且还可以实时预览随时形成的渐变效果,使场景中任何物体的爆炸和损伤效果变得极其逼真。在uv界面里(3d透视图界面)可以清晰的看到模型被打碎时,lod细化程度的变化,并且自定义修改后可以使碎片得以规则化的生成。

流媒体编辑器:简称:sme,即:streamingmediaeditor,这里的流媒体可以是一个本地媒体文件,也可以是一个url联机媒体地址,与音效编辑器(see)不同的是,sme是没有办法编辑流媒体文件的,这主要是用来检查或设置sm流媒体是否自动播放、循环播放、播放速率、播放尺寸、以及流媒体在场景中起始播放的时间点等功能。与此同时,我们还能够在sme中查看流媒体文件的信息,并将其规范化为应有的流媒体标准。

如图7所示,虚线部分是用于实现所述跨平台多元ide所涉及的结构体,其他为目前已有的第三方免费开源sdk语法。

1.用于实现该跨平台多元ide的高仿真数字化模拟方法

方法概述:这里的“数字化模拟”与数字信号无关,也不是表意的阿拉伯数字模拟,而是将现实中的三维场景通过特定原理实现虚拟三维场景的技术。“高仿真”是指将空气动力学、运动学、气象学、仿生学、武器发射及爆炸方程等公式在《冰峰利剑》中转化为虚拟三维空间的概念。

基本原理:首先由我工具进行运行平台分析,判断运行终端是否为pc、手机等环境,对于pc端,经过sdl(simpledirect-medialayer)进行传入数据的解析,如果为计算类,则通过opencl(opencomputinglanguage)进行数学运算,通过physx函数库完成数学与物理图形定律之间的转化,“bfspkb”是我们自行研发的“专用物理学公式定律”,我们将现实中的“空气动力学、运动学、气象学、武器发射及爆炸方程等现象”进行了全方位的模拟,进而转化为计算机可以识别的语法公式,并与newtonsoftsdk将其序列化,转换为计算机cpu可识别的进制序列,最后输出至“bfsresult”序列集,等待事件的进栈。

算法举例:这里以“光照反射算法”为例,对比3dmax等“三维编程”软件与我《冰峰利剑》的光照反射计算的区别。

一般三维软件的反射光照计算方法,是从物理光学出发,描述了光在空间、场景中的传播特性。《计算机图形学》在理论上给出了光线传播的完美数值计算结果,整理后,可以给出以下公式:

上述符号含义如下表所示:

这种公式只能在离线渲染中使用,在这种模式下cpu、gpu、内存等资源消耗小,并且系统有充足的时间进行运算,但是对于动画而言,如果按照上述的公式运算,那么动画将会无法流畅完成,因为动画的每张图片时间间隔为0.03333秒,这还仅仅是一次的反射,如果全部计算,如此高的运算量,系统就会崩溃。

于是,我们给出了重要性采样(importancesampling,is)的算法,这种方法是基于蒙特卡洛积分(montecarlomethod)的思维,即:“通过尺度变换(changeofmeasure,cm)来修改决定仿真输出结果的概率测度,使本来发生概率很小的稀有事件频繁发生,从而加快仿真速度,能够在较短的时间内得到小概率事件。”

通过模拟,我们依据蒙特卡洛模拟的重要性采样原理,给出如下原理示意公式:

由定理可知pk的值与采样点间隔成反比,其中,pk表示重要性函数p(xk)的概率密度值,f(x)代表任意一个函数,不能采样,p(xk)用于数据采样。

因此,目前is光照反射公式就具有如下转化:

如此一来,将不会出现因资源占用过多而卡机的情况,但是,这种方法只是在每个环境场景中使用单一样本,并且只是以重要性采样为模板,所以,这将会导致光照数据不够精确,为此,我们给出了新的增补方案。我们将之前的反射方程的光照部分和brdf部分拆开分别积分,再对两个积分的结果求积。

在这里特别强调,brdf就是上式对应的fr(ωi,ωo)部分,即:双向反射分布函数(bidirectionalreflectancedistributionfunction,brdf),它描述了入射光线经过某个表面反射后如何在各个出射方向上分布(上文表格已介绍),我们将brdf变换,可得:

上述公式中符号含义如下:

变换后,我们便可以得到新的光照反射(求积)公式:

带入brdf推导式,可得,最终全新的光照渲染公式为:

接下来,经过directx提供的预测滤波器进行处理测试,即:

其中,cubemap.sample()是一种公开的gpu硬件图形渲染函数,roughness代表光滑面,用于环境贴图光线反射的光面效果数值,layer表示呈现处理光滑面的次数。roughness的每一层的每一面都用210个样本采样不同粗糙度的数值,经过layer次过滤和叠加,最后便可形成最终的形态。这样一来,不但资源占用少,且画面效果更佳。

前景简述:“高仿真数字化模拟技术”已经应用于《冰峰利剑》的代表作《领空雄鹰》军事模拟飞行软件,这款软件对物理现象进行了多方位的模拟,打造了相对全面的光照反射和刚体运动学效果,投入使用后,大幅降低了日常训练中的危险性,节省了国家巨额的经济支出,提升了国家安全指数。

这项技术的提升不仅将对国防领域起到积极的作用,此外,这项技术还可以应用于:

游戏领域,增强玩家的即视感。目前,中国游戏行业虽然有崛起之势,但是主要仍以《王者荣耀》这种低仿真度的游戏为主,在我们看来,这种游戏只是依靠其强大的策略性来弥补仿真性严重不足的问题,但如今,《冰峰利剑》凭借其良好的性能弥补了这一技术空白,高仿真度的画面将会给玩家带来更好的体验。

虚拟旅游领域,低成本、高效率的vr模式将可以快速缓解人们的工作压力。目前,很多上班族工作压力较大,即便是节假日也依然处于“工作状态”,然而,通过这种vr旅游的方式,人们足不出户即可体会到自然旅游所带来的轻松感和愉悦感,为人们的工作提供了更好的精神保障;

影视领域,逼真的模拟度可以完美实现人工无法拍摄(或安全系数较低)的场景。目前,我们正在制作“非真人演出”的动画电影,通过一台电脑设备我们就可以完成类似“大片级”画面的电影制作,其效果将可能超越实体电影的拍摄效果;

此外,《冰峰利剑》还可以应用于服装领域,消费者足不出户即可在线虚拟试衣;在安全演习领域,无需人工现场实地演练,即可完成损伤预估、场景模拟。

2.用于实现该跨平台多元ide的异步着色器实时渲染方法

这是一个通过异步处理图形事件同时回调给着色器,并进行实时渲染的独有算法。这里的“异步”是指传输数据时,利用非共享“变量”的方式回调其图形事件的结果,从而减少不同事件之间相互阻塞的概率,提升i/o操作的可靠性。“着色器”是将三维图形光栅化,先由顶点着色器完成图形几何关系的运算,再由像素着色器对片源颜色进行计算,然后合成最终图像的场所。“实时渲染”是将着色器合成的结果以较短的时间间隔回传并将图像展现的方式。

用户思想:《冰峰利剑》在渲染时,将远景的所有模型依据观看者视角逐一生成若干的球状半包围图像,以此来减少远景模型对于用户硬件的消耗。与此同时,我们将《冰峰利剑》的每一个语法模块分散独立,当观看者位置信息更新时,只需要更新当前场景模块的数据,而不需要更新整个场景数据,从而提升实时渲染效率。

运算过程总览:在经过sdl解析后,《冰峰利剑》将图形化有关的数据通过opengl(opengraphicslibrary)进行分解,分解后的数据集一方面通过directx(directextension)sdk分解为所需环境音效的声源发出点,用于“三维环绕立体声模拟技术(因篇幅受限,本报告不作详解)”的使用,另一方面则通过txtool(nvidiatexturetools)工具将其图形化数据转化为贴图、材质、模型的三维状态,然后传输至“bfsshader”,它会将远景的所有模型依据3d源位置逐一生成若干的球状半包围图像,以此来减少远景模型对于用户硬件的消耗。经过转化的数据传给“bfspowder”后,他会将现有数据进行粉化,再依据电脑硬件gpu(graphicsprocessingunit)的情况,将数据拆分为不同大小的数据粉,每个数据粉大小依据硬件情况于1~8k字节不等,最后输出至“bfsresult”序列集,等待事件的进栈。

典型底层原理:在这里,我们重点以“异步法”和新“着色器渲染法”的概念为例进行说明,并给出以下主要渲染流程:图元装配数据->顶点着色器->……提前深度测试->像素着色器->深度预渲染->帧缓存。

由系统分配过来的图形数据经过顶点着色器的几何关系运算后,就会面临几何排序的问题,据了解,其它三维编程软件(如:3dmax)在渲染几何集时,设置的渲染状态是全局的,也就是说,在整个渲染过程中,gpu均会保持相同的状态,假如有一个渲染事件没有完成,那么其它渲染事件就会因为“gpu正在渲染中”这种状态而等待该事件的完成。换言之,这种算法要想改变渲染状态,必须要等整个gpu管道完成所有工作,才能换上新的设置,如果中途出现问题,则会直接导致渲染效率急剧下降。

为了能够降低渲染状态改变的次数,提升渲染效率,为此,《冰峰利剑》按照“按材质资源由小到大”排序,为了防止出现多个相互重叠的三角形重复填充同一像素的情况,除了半透明表面采用alpha通道遮蔽的方式混合至场景中,此外我们均会按照上述顺序以此渲染。而“提前深度测试”就是为了将所有“大材质、高耗时”的资源移至最后,按照顺序以此渲染三角形,最先靠近观看者的三角形会被立即填充深度缓冲,而较远的三角形片段因为无需逐一渲染(观看者不可见),所以,“大材质资源”只需要渲染部分三角形即可完成渲染状态,大幅提升着色器渲染效率。

由opengl提供的深度值的精度计算方法,(将平截头的z值转换成[0,1]范围内,进行比较):

上述两个公式通过取反来拉大并凸显深度值精度的差距,“near”表示距离观看者观察的空间的近点坐标集,“far”表示距离观看者观察的空间的远点坐标集,通过这种开源的运算方式,可以得出接下来要使用的“几何数据”结果。

几何数据既要按照“材质资源”排序渲染几何物体,又要按照从前至后的顺序渲染“非全透明”的几何体,这会产生很大的冲突,因为渲染状态必须被重置,才能进行下一项事件,为此,这里引入了“深度预渲染”步骤。

在这个步骤里,《冰峰利剑》渲染两次场景,第一次依靠于上一步深度缓存的内容,完成基本渲染,第二次用完整的颜色填进帧缓存(videomemory)。当像素着色器关闭后,gpu便可以仅更新深度缓存,此时的gpu会以双倍的速度展开渲染,非全透明物体会按照从前至后的顺序渲染,使得深度缓冲的写入次数降到最低。接下来,几何物体按照上述的“材质排序法”重新排序,用最少的状态改变几何体的渲染颜色,使数据吞吐量达到最大化。

此外,为了保证非全透明体按照顺序渲染,我们还提出了纹理图谱(textureatlas,ta)技术,这是一个可以把诸多小材质合并为一个大材质的算法,通过它,显卡总线能够减少gpu渲染状态的切换,大幅提升显卡的渲染效率。

在最终渲染后,所有的影像会存储在帧缓存(framebuffer)中(宏观运算流程如上图所示)。这是一个颜色位图的缓冲,电脑屏幕会周期性的读取帧缓存的内容。目前其它三维编程环境常常采用“双缓冲法”,即:其中一个扫描帧缓存,而另一个负责更新其他的帧缓存。

而《冰峰利剑》采用的则是“三缓冲法”,也就是一共有三个帧缓存,也是体现“异步着色”的概念。这样可以保证,即便显示硬件仍在扫描上一帧,更新这一帧,但是《冰峰利剑》的着色器已经可以渲染下一帧,而且这三个帧缓存互不干扰。

上述的算法主要是针对“高配电脑”的解决方案,可以使这些电脑在保障高画质的情况下高效渲染,而对于低配置电脑,《冰峰利剑》则给出了另一种解决方案——实时光照、非全渲染机制。

在一般的渲染过程中,所有的光照和着色计算都是基于观察空间三角形片段上面进行计算的,步骤如下所示:

顶点着色器->裁剪->屏幕映射->三角形建立->三角形遍历->提前深度测试

按照传统方法,gpu不会进行硬件综合性能权重的分析,此外还会做很多不必要的工作。比如:当渲染着色器在给三角形进行顶点着色后,经过“提前深度测试”,之前渲染过的三角形会被这一步剔除;而且为了处理更多的光源和复杂场景的光反射,渲染着色器会得到不同顶点的着色器版本,这些版本中,光源数量、光源类型等均不相同,预渲染时会造成巨大的资源浪费,对于低配电脑而言将会是灾难性的事件。

而我们的“实时光照、非全渲染机制”可以大幅缓解这一问题。对于低配电脑,我们会计算主要的光照情况,而这种计算是基于屏幕空间进行的,而不是观看者观察的空间。在这种硬件恶劣的情况下,《冰峰利剑》会迅速渲染出不含光照的场景。

市场拓展:传统的游戏如果想提升画质,则要求玩家必须更新更高的操作系统环境,甚至是硬件环境。这对于低配用户来说毫无选择,对于中等配置的用户而言,很多游戏开发商采用的是使用“过场动画”的方式完成下一阶段场景的资源加载,这种方法在现在看来确实是性价比最高的选择,但对于大型场景,甚至工业环境来说,这无异于是很大的打击,同时还会造成巨大的资源浪费,在经济方面产生负反馈效应。

“异步着色器实时渲染技术”可以迅速降低游戏玩家对电脑硬件的苛求、节省资金。这对于更多低配的玩家而言,这将会是一种福音,很多时候,游戏之所以受众的群体太小,往往就是因为其对电脑的配置要求过高,玩家被迫只能选择升级电脑或放弃这些“高需求游戏”。而今天,《冰峰利剑》尽最大程度解决了这一难题,通过我们的技术,可以使低配的电脑也可以享受相对较高的画质,扩大更大的游戏用户群体。对于配置相对较高的玩家来说,也将会能够降低资源负载,提升渲染效率,为玩家带来更加流畅的体验。

此外,这项技术还能够延伸至科研领域,通常科学研究需要携带性能较高的科学仪器,然而这些技术的出现,科学家们无需携带配置过高、笨重的仪器进行测试,即可达到目标需求,大幅降低环境等客观因素带来的麻烦。

3.用于实现该跨平台多元ide的地形速成仿真方法

方法概述:《冰峰利剑》的诞生解决了这方面很多问题,我们可以将“全球卫星数字高程数据(dem)”直接导入到场景中,我们只需要一张高程图,即可解决所有问题,原有一人独立制作的地形需要成百上千小时,但依靠《冰峰利剑》最多只需十几分钟。

原理解析:这部分技术则是“bfsshader”->“bfspowder”模块部分的技术体现。我们将“全球卫星数字高程数据(dem)”直接导入到场景中,依据高程图(黑白色)的深浅情况,来判断地形的高低,黑色部分,我们将识别为高于坐标元平面的部分,如:山脉,白色则表示低于元平面的部分——如:丘陵、盆地,依据rgb颜色的深浅度,我们将高程图拆分为每个像素点,每个像素点由不同的rgb着色识别,依据alpha通道的变化,进而判断地形的高低。最后通过数据粉的数据流大小,提升cpu的单事件处理速度,进而加快高程图的识别和生成速度。

跨领域影响:这项技术将直接对地质测绘领域产生影响,提升地形场景绘制的精度,能够让我们更加准确地了解我国的地质状况,节约成本。在农业领域中,我们可以通过这项技术迅速了解农作物播种方式,高效利用阳光、水分等资源,提升农作物产出值。

4.用于实现该跨平台多元ide的三维环绕立体声模拟方法

基本原理:在经过sdl、opengl、directx分解后,我们得到了环境音效的声源发出点,也就是三维原点处,不同三维坐标中,声音音量的大小。与此同时,借助“libsndfile”sdk,我们获得了人工添加的声音文件的取样结果,利用openal(openaudiolibrary)我们将其转换为三维环境散点声音源,然后输出到oggvorbis编/解码器,重新合成无数个零散的三维音频源声音文件,并输出至“bfssfx”模块,在这个模块中,我们依据之前directx分解的环境音效的声源发出点,根据三维场景中物体的所在位置重新计算出不同位置声音的大小,进而实现声音的多普勒等物理效应,逼真化真实的声音模拟,最后输出至“bfspowder”模块,与图形解析数据整合,获得新的数据粉,并参与最终“bfsresult”的合成。

尽管上文已详细描述了本发明的示例性实施例,但应当清楚理解,本文教导的、对本领域技术人员而言显而易见的基本发明构思的许多变形和/或改进仍落在所附权利要求限定的本发明的精神和范围内。

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