UE引擎底层的改造方法、装置以及在浏览器中显示UE项目的方法、装置制造方法及图纸

技术编号:15329126 阅读:107 留言:0更新日期:2017-05-16 12:52
本发明专利技术公开了一种UE引擎底层的改造方法及装置,改造方法包括:改造UE引擎底层的句柄接受机制的步骤、改造UE引擎底层的窗口传递机制的步骤、改造UE引擎底层的位置检测机制的步骤、改造UE引擎底层的前置窗口判定函数的步骤。采用上述方案的改造方法/装置既可以增加使用的便利性,又不会使渲染和显示效果降低,可以明显地提高用户体验。本发明专利技术还公开了在浏览器中显示UE项目的方法、装置,通过对UE引擎底层进行改造,使UE渲染窗口可以嵌入到浏览器中运行和显示,其运行帧率和渲染效果均与UE客户端相当,并且支持次世代渲染效果。

Method and device for rebuilding UE engine bottom and method and device for displaying UE item in browser

The invention discloses a method and device for transforming UE engine at the bottom, reconstruction methods include: front window position detection mechanism transformation of UE engine at the bottom of the handle to the acceptance mechanism step, the transformation of UE engine at the bottom of the window transfer mechanism, the transformation of UE engine at the bottom step step, the transformation of UE engine at the bottom of the decision function step. The transformation method or device using the above scheme can increase the convenience of use, and can not reduce the rendering and display effect, and can obviously improve the user experience. The invention also discloses a device and method of UE project is displayed in the browser, through the reconstruction of the underlying UE engine, the UE rendering window can be embedded into the operation and display in the browser, the running frame rate and rendering with UE client, and support the next generation of rendering.

【技术实现步骤摘要】
UE引擎底层的改造方法、装置以及在浏览器中显示UE项目的方法、装置
本专利技术属于软件领域,具体来说涉及一种UE引擎底层的改造方法、装置以及在浏览器中显示UE项目的方法、装置。
技术介绍
UnrealEngine(简称UE),中文名称虚幻引擎,是目前世界最知名授权最广的顶尖游戏引擎,占有全球商用游戏引擎80%的市场份额。目前除在游戏开发领域外,在其他一些领域也有应用,例如,装修设计、虚拟现实等等。现有技术中UE往往是作为专业软件在被使用,而虚拟现实越来越普及的今天;很多时候需要将UE开发的项目发送给非专业人士使用,例如装修公司给客户看装修效果图等;而对于非专业人士来说,UE客户端是其一般很难接触到的,如果让用户特意安装却又是有碍于用户体验的,并且,普通客户对于UE软件的操作是不了解的,即便客户愿意安装程序,后续具体操作对于普通客户来说也是个困难。为了避免安装客户端和学习软件操作方法的烦琐,目前多采用UE软件自带的发布功能将UE开发的项目(简称UE项目)发布成HTML5文件而在浏览器中查看来代替,通过UE软件自带的打包项目中的HTML5这一功能,将UE开发的项目发布成HTML5格式的,再给用户通过浏览器打开观看。这样操作会导致运行帧率低下,渲染效果差、不支持次世代渲染等不足;而于对装修效果、服装设计、人脸仿真等特殊应用领域,次世代渲染是非常重要的,直接和最终的显示效果相关,从而导致用户从浏览器中看到的效果图和UE中开发出来的相比要明显差,从而影响用户对设计本身的满意度。如何可以让客户既然可以方便地打开UE开发好的项目程序,又不要能够充分显示渲染的效果,是亟待解决的问题。
技术实现思路
本专利技术的目的在于提供UE引擎底层的改造方法、装置,以及在浏览器中显示UE项目的方法、装置;从而可以简单、方便地在网页中查看UE开发的项目程序,其显示效果与客户显示的一致。为了达到上述目的,本专利技术所采用的技术方案为:一种UE引擎底层的改造方法,所述方法包括:S1:改造UE引擎底层的句柄接受机制的步骤,改造后的UE引擎能接受外来窗口句柄,并将UE渲染窗口设置为外来窗口的子窗口;S2:改造UE引擎底层的窗口传递机制的步骤,改造后的UE引擎窗口处理的消息能回馈给外来窗口;S3:改造UE引擎底层的位置检测机制的步骤,改造后的UE引擎在收到WM_ACTIVATE消息时检测父窗口位置是否变动,并在变动时调用改造的OnMovedWindow函数重新设定UE窗口鼠标坐标;S4:改造UE引擎底层的前置窗口判定函数的步骤,改造后的前置窗口判定函数在当前UE窗口为嵌入窗口时始终返回ture,否则按UE原本返回;所述前置窗口判定函数是boolFWindowsWindow::IsForegroundWindow()const函数。一种UE引擎底层装置,所述装置包括:句柄接受模块,用于UE引擎接受外来窗口句柄,并将UE渲染窗口设置为外来窗口的子窗口;窗口传递模块,用于将UE引擎窗口处理的消息回馈给外来窗口;位置检测模块,用于在收到WM_ACTIVATE消息时检测父窗口位置是否变动,并在变动时调用改造的OnMovedWindow函数重新设定UE窗口鼠标坐标;前置判定模块,用于在当前UE渲染窗口为前置窗口时始终返回ture,否则按UE原本返回;所述前置窗口判定函数是boolFWindowsWindow::IsForegroundWindow()const函数。上述方案的改造方法/装置,对传统UE引擎通讯、显示等相关功能模块进行了改造,使改造后的UE引擎底层的功能更加完善,并且可以与外部软件进行通讯;从而,可以其他软件调用该改造后的UE引擎对UE项目进行渲染并显示,其实际渲染效果与UE客户端一致并且支持次世代渲染效果,但使用更为方便;克服了现有UE引擎自身使用的不便以及发布成HTML5显示的性能下降,即:既可以增加使用的便利性,又不会使渲染和显示效果降低。采用上述方案的改造方法/装置可以使用户不用特意学习UE知识即可像在UE客户端中一样直观、完好地看到设计的效果,使一般用户可以简单、直观地看到最好的设计效果,对于家装设计、服装设计等一些按客户定制要求使用UE进行设计并需要将设计图尽可能逼真地呈现给普通用户的具体应用领域来说,可以明显地提高用户体验。一种在浏览器中显示UE项目的方法,所述方法包括以下步骤:S11:浏览器通过浏览器代码加载浏览器插件,并分配插件窗口;S12:通过启动命令行参数将插件窗口句柄以及窗口的位置和大小传入UE,UE项目启动后解析命令行参数获得插件窗口句柄和窗口位置以及大小,在创建渲染窗口的时候,根据插件窗口的位置和大小进行创建,并且将渲染窗口设置为外来窗口的子窗口,并使窗口大小匹配插件窗口大小;S13:UE引擎调用DefWindowProc函数将窗口将处理的消息回馈给外来窗口;S14:在UE窗口消息循环函数的WM_ACTIVATE消息处理里,获取父窗口的坐标位置并进行判定,如果发现有变化,则对应修改UE的窗口坐标位置;S15:前置窗口判定函数boolFWindowsWindow::IsForegroundWindow()const在判定是非编辑器模式运行的,当窗口有父窗口时,返回true,否者按UE原本返回;优选地,所述S11步骤还包括:根据浏览器内核选择函数的步骤;对于IE内核,调用newActiveXObject加载插件,若非IE内核,调用navigator.mimeTypes加载插件。一种在浏览器中显示UE项目的装置,所述装置包括:浏览器模块,用于通过浏览器代码加载浏览器插件,并分配插件窗口;句柄接受模块,用于通过启动命令行参数将插件窗口句柄以及窗口的位置和大小传入到UE,UE项目启动后解析命令行参数获得插件窗口句柄和窗口位置以及大小,在创建渲染窗口的时候,根据插件窗口的位置和大小进行创建,并且将渲染窗口设置为外来窗口的子窗口,并使窗口大小匹配插件窗口大小;窗口传递模块,用于UE引擎调用DefWindowProc函数将窗口将处理的消息回馈给外来窗口;位置检测模块,用于在UE窗口消息循环函数的WM_ACTIVATE消息处理里,获取父窗口的坐标位置并进行判定,如果发现有变化,则对应修改UE的窗口坐标位置;前置判定模块,用于前置窗口判定函数boolFWindowsWindow::IsForegroundWindow()const在判定是非编辑器模式运行的,当窗口有父窗口时,返回true,否者按UE原本返回。改造后的UE引擎既可以像UE客户端一样完美地运行UE开发的项目,并且该方法仅引用了UE引擎底层的相关源代码或是改造后的代码,相对于UE客户端来说数据空间大小要小很多;并且其中还包括了浏览器插件的接口,方便浏览器调用插件处理,而浏览器操作对普通用户来说是简单和方便的。对于一些在线网站来说,只需要将UE开发好的项目上传到网页,再在网页上同时上传插件安装程序(即上述的装置);这样,一般用户即便没有任何相关专业基础,只需要登陆网站后首先下载安装插件程序,即可通过浏览器查看网页上的UE开发好的项目,其显示的效果和专业人员在UE客户端上看到的是一致的;但就操作过程来说,对于普通用户来说是相当简单并且易于接受的。当然,该方案也可以通过线下的方式本文档来自技高网
...

【技术保护点】
一种UE引擎底层的改造方法,其特征在于,所述方法包括:S1:改造UE引擎底层的句柄接受机制的步骤,改造后的UE引擎能接受外来窗口句柄,并将UE渲染窗口设置为外来窗口的子窗口;S2:改造UE引擎底层的窗口传递机制的步骤,改造后的UE引擎窗口处理的消息能回馈给外来窗口;S3:改造UE引擎底层的位置检测机制的步骤,改造后的UE引擎在收到WM_ACTIVATE消息时检测父窗口位置是否变动,并在变动时调用改造的OnMovedWindow函数重新设定UE窗口鼠标坐标;S4:改造UE引擎底层的前置窗口判定函数的步骤,改造后的前置窗口判定函数在当前UE窗口为嵌入窗口时始终返回ture,否则按UE原本返回;所述前置窗口判定函数是bool FWindowsWindow::IsForegroundWindow()const函数。

【技术特征摘要】
1.一种UE引擎底层的改造方法,其特征在于,所述方法包括:S1:改造UE引擎底层的句柄接受机制的步骤,改造后的UE引擎能接受外来窗口句柄,并将UE渲染窗口设置为外来窗口的子窗口;S2:改造UE引擎底层的窗口传递机制的步骤,改造后的UE引擎窗口处理的消息能回馈给外来窗口;S3:改造UE引擎底层的位置检测机制的步骤,改造后的UE引擎在收到WM_ACTIVATE消息时检测父窗口位置是否变动,并在变动时调用改造的OnMovedWindow函数重新设定UE窗口鼠标坐标;S4:改造UE引擎底层的前置窗口判定函数的步骤,改造后的前置窗口判定函数在当前UE窗口为嵌入窗口时始终返回ture,否则按UE原本返回;所述前置窗口判定函数是boolFWindowsWindow::IsForegroundWindow()const函数。2.一种UE引擎底层装置,其特征在于,所述装置包括:句柄接受模块,用于UE引擎接受外来窗口句柄,并将UE渲染窗口设置为外来窗口的子窗口;窗口传递模块,用于将UE引擎窗口处理的消息回馈给外来窗口;位置检测模块,用于在收到WM_ACTIVATE消息时检测父窗口位置是否变动,并在变动时调用改造的OnMovedWindow函数重新设定UE窗口鼠标坐标;前置判定模块,用于在当前UE渲染窗口为前置窗口时始终返回ture,否则按UE原本返回;所述前置窗口判定函数是boolFWindowsWindow::IsForegroundWindow()const函数。3.一种在浏览器中显示UE项目的方法,其特征在于,所述方法包括以下步骤:S11:浏览器通过浏览器...

【专利技术属性】
技术研发人员:吴财华
申请(专利权)人:惟锐杭州数字科技有限公司
类型:发明
国别省市:浙江,33

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

1