新四季網

UE引擎底層的改造方法、裝置以及在瀏覽器中顯示UE項目的方法、裝置與流程

2023-04-24 13:24:26 1

本發明屬於軟體領域,具體來說涉及一種UE引擎底層的改造方法、裝置以及在瀏覽器中顯示UE項目的方法、裝置。



背景技術:

Unreal Engine(簡稱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原本返回;所述前置窗口判定函數是bool FWindowsWindow::IsForegroundWindowconst函數。

一種UE引擎底層裝置,所述裝置包括:

句柄接受模塊,用於UE引擎接受外來窗口句柄,並將UE渲染窗口設置為外來窗口的子窗口;

窗口傳遞模塊,用於將UE引擎窗口處理的消息回饋給外來窗口;

位置檢測模塊,用於在收到WM_ACTIVATE消息時檢測父窗口位置是否變動,並在變動時調用改造的OnMovedWindow函數重新設定UE窗口滑鼠坐標;

前置判定模塊,用於在當前UE渲染窗口為前置窗口時始終返回ture,否則按UE原本返回;所述前置窗口判定函數是bool FWindowsWindow::IsForegroundWindowconst函數。

上述方案的改造方法/裝置,對傳統UE引擎通訊、顯示等相關功能模塊進行了改造,使改造後的UE引擎底層的功能更加完善,並且可以與外部軟體進行通訊;從而,可以其他軟體調用該改造後的UE引擎對UE項目進行渲染並顯示,其實際渲染效果與UE客戶端一致並且支持次世代渲染效果,但使用更為方便;克服了現有UE引擎自身使用的不便以及發布成HTML5顯示的性能下降,即:既可以增加使用的便利性,又不會使渲染和顯示效果降低。

採用上述方案的改造方法/裝置可以使用戶不用特意學習UE知識即可像在UE客戶端中一樣直觀、完好地看到設計的效果,使一般用戶可以簡單、直觀地看到最好的設計效果,對於家裝設計、服裝設計等一些按客戶定製要求使用UE進行設計並需要將設計圖儘可能逼真地呈現給普通用戶的具體應用領域來說,可以明顯地提高用戶體驗。

一種在瀏覽器中顯示UE項目的方法,所述方法包括以下步驟:

S11:瀏覽器通過瀏覽器代碼加載瀏覽器插件,並分配插件窗口;

S12:通過啟動命令行參數將插件窗口句柄以及窗口的位置和大小傳入UE,UE項目啟動後解析命令行參數獲得插件窗口句柄和窗口位置以及大小,在創建渲染窗口的時候,根據插件窗口的位置和大小進行創建,並且將渲染窗口設置為外來窗口的子窗口,並使窗口大小匹配插件窗口大小;

S13:UE引擎調用DefWindowProc函數將窗口將處理的消息回饋給外來窗口;

S14:在UE窗口消息循環函數的WM_ACTIVATE消息處理裡,獲取父窗口的坐標位置並進行判定,如果發現有變化,則對應修改UE的窗口坐標位置;

S15:前置窗口判定函數bool FWindowsWindow::IsForegroundWindowconst在判定是非編輯器模式運行的,當窗口有父窗口時,返回true,否者按UE原本返回;

優選地,所述S11步驟還包括:根據瀏覽器內核選擇函數的步驟;對於IE內核,調用new ActiveXObject加載插件,若非IE內核,調用navigator.mimeTypes加載插件。

一種在瀏覽器中顯示UE項目的裝置,所述裝置包括:

瀏覽器模塊,用於通過瀏覽器代碼加載瀏覽器插件,並分配插件窗口;

句柄接受模塊,用於通過啟動命令行參數將插件窗口句柄以及窗口的位置和大小傳入到UE,UE項目啟動後解析命令行參數獲得插件窗口句柄和窗口位置以及大小,在創建渲染窗口的時候,根據插件窗口的位置和大小進行創建,並且將渲染窗口設置為外來窗口的子窗口,並使窗口大小匹配插件窗口大小;

窗口傳遞模塊,用於UE引擎調用DefWindowProc函數將窗口將處理的消息回饋給外來窗口;

位置檢測模塊,用於在UE窗口消息循環函數的WM_ACTIVATE消息處理裡,獲取父窗口的坐標位置並進行判定,如果發現有變化,則對應修改UE的窗口坐標位置;

前置判定模塊,用於前置窗口判定函數bool FWindowsWindow::IsForegroundWindowconst在判定是非編輯器模式運行的,當窗口有父窗口時,返回true,否者按UE原本返回。

改造後的UE引擎既可以像UE客戶端一樣完美地運行UE開發的項目,並且該方法僅引用了UE引擎底層的相關原始碼或是改造後的代碼,相對於UE客戶端來說數據空間大小要小很多;並且其中還包括了瀏覽器插件的接口,方便瀏覽器調用插件處理,而瀏覽器操作對普通用戶來說是簡單和方便的。對於一些在線網站來說,只需要將UE開發好的項目上傳到網頁,再在網頁上同時上傳插件安裝程序(即上述的裝置);這樣,一般用戶即便沒有任何相關專業基礎,只需要登陸網站後首先下載安裝插件程序,即可通過瀏覽器查看網頁上的UE開發好的項目,其顯示的效果和專業人員在UE客戶端上看到的是一致的;但就操作過程來說,對於普通用戶來說是相當簡單並且易於接受的。當然,該方案也可以通過線下的方式進行,即在不藉助網站的情況下,由專業人士將UE開發好的項目和插件安裝程序發送給用戶,用戶在自己電腦上首先安裝插件,再通過瀏覽器調用插件打開UE開發好的項目。

本發明通過對UE引擎底層進行改造,使UE渲染窗口可以嵌入到瀏覽器中運行和顯示,其運行幀率和渲染效果均與UE客戶端相當,並且支持次世代渲染效果,相對於UE轉HTML5來說可以更加真實地顯示設計效果,而相對於UE客戶端來說,則更加方便、專業水平要求低,更利於提高普通用戶使用的用戶體驗。

具體實施方式

為了使本領域技術人員可以更好地理解本發明,從而對本發明作出更加清楚地限定,下面對本發明的具體實施方式作出具體描述。

一種UE引擎底層的改造方法,所述方法包括:

S1:改造UE引擎底層的句柄接受機制的步驟,改造後的UE引擎能接受外來窗口句柄,並將UE渲染窗口設置為外來窗口的子窗口;通過啟動命令行參數將外來窗口句柄以及窗口的位置和大小傳入到UE,UE項目啟動後解析命令行參數獲得外來窗口句柄和窗口位置以及大小,在創建渲染窗口的時候,根據插件窗口的位置和大小進行創建,並且將渲染窗口設置為外來窗口(傳入窗口)的子窗口。

S2:改造UE引擎底層的窗口傳遞機制的步驟,改造後的UE引擎窗口處理的消息能回饋給父窗口(即外來窗口);現有的UE的消息處理循環裡是直接調用return的,將其修改為調用DefWindowProc函數。

S3:改造UE引擎底層的位置檢測機制的步驟,改造後的UE引擎在收到WM_ACTIVATE消息時檢測父窗口位置是否變動,並在變動時調用改造的OnMovedWindow函數重新設定UE窗口滑鼠坐標;在UE窗口消息循環函數的WM_ACTIVATE消息處理裡,獲取父窗口的坐標位置進行判定,如果發現有變化,則修改UE的窗口坐標位置。

S4:改造UE引擎底層的前置窗口判定函數的步驟,改造後的前置窗口判定函數在當前UE窗口為嵌入窗口時始終返回ture,否則按UE原本返回;所述前置窗口判定函數是bool FWindowsWindow::IsForegroundWindowconst函數。修改該函數,判定如果是非編輯器模式運行的,當窗口有父窗口時,返回true,否者按UE原本返回;該函數會影響網頁嵌入後的UE進程正常獲取鍵盤消息,改造後UE進程可完美處理鍵盤消息,表現與正常啟動無異。

一種UE引擎底層裝置,所述裝置包括:

句柄接受模塊,用於UE引擎接受外來窗口句柄,並將UE渲染窗口設置為外來窗口的子窗口;通過啟動命令行參數將插件窗口句柄以及窗口的位置和大小傳入到UE,UE項目啟動後解析命令行參數獲得插件窗口句柄和窗口位置以及大小,在創建渲染窗口的時候,根據插件窗口的位置和大小進行創建,並且將渲染窗口設置為外來窗口的子窗口。

窗口傳遞模塊,用於將UE引擎窗口處理的消息回饋給外來窗口;現有的UE的消息處理循環裡是直接調用return的,將其修改為調用DefWindowProc函數。

位置檢測模塊,用於在收到WM_ACTIVATE消息時檢測父窗口位置是否變動,並在變動時調用改造的OnMovedWindow函數重新設定UE窗口滑鼠坐標;在UE窗口消息循環函數的WM_ACTIVATE消息處理裡,獲取父窗口的坐標位置進行判定,如果發現有變化,則修改UE的窗口坐標位置。

前置判定模塊,用於在當前UE渲染窗口為前置窗口時始終返回ture,否則按UE原本返回;所述前置窗口判定函數是bool FWindowsWindow::IsForegroundWindowconst函數。修改該函數,判定如果是非編輯器模式運行的,當窗口有父窗口時,返回true,否者按UE原本返回;該函數會影響網頁嵌入後的UE進程正常獲取鍵盤消息,改造後UE進程可完美處理鍵盤消息,表現與正常啟動無異。

採用上述方案的改造方法/裝置可以使用戶不用特意學習UE知識即可像在UE客戶端中一樣直觀、完好地看到設計的效果,使一般用戶可以簡單、直觀地看到最好的設計效果,對於家裝設計、服裝設計等一些按客戶定製要求使用UE進行設計並需要將設計圖儘可能逼真地呈現給普通用戶的具體應用領域來說,可以明顯地提高用戶體驗。

上述方案的改造方法/裝置是對UE引擎進行改造的方法/裝置,可以應用於多種軟體的實用,當將其使用於瀏覽器軟體時,瀏覽器可以通過插件代碼加載上述裝置,從而可以在瀏覽器中顯示UE項目。具體來說:

一種在瀏覽器中顯示UE項目的方法,所述方法包括以下步驟:

S11:瀏覽器通過瀏覽器代碼加載瀏覽器插件,並分配插件窗口;

S12:通過啟動命令行參數將插件窗口句柄以及窗口的位置和大小傳入UE,UE項目啟動後解析命令行參數獲得插件窗口句柄和窗口位置以及大小,在創建渲染窗口的時候,根據插件窗口的位置和大小進行創建,並且將渲染窗口設置為外來窗口的子窗口,並使窗口大小匹配插件窗口大小;

S13:UE引擎調用DefWindowProc函數將窗口將處理的消息回饋給外來窗口;

S14:在UE窗口消息循環函數的WM_ACTIVATE消息處理裡,獲取父窗口的坐標位置並進行判定,如果發現有變化,則對應修改UE的窗口坐標位置;

S15:前置窗口判定函數bool FWindowsWindow::IsForegroundWindowconst在判定是非編輯器模式運行的,當窗口有父窗口時,返回true,否者按UE原本返回;

優選地,所述S11步驟還包括:根據瀏覽器內核選擇函數的步驟;對於IE內核,調用new ActiveXObject加載插件,若非IE內核,調用navigator.mimeTypes加載插件。

一種在瀏覽器中顯示UE項目的裝置,所述裝置包括:

瀏覽器模塊,用於通過瀏覽器代碼加載瀏覽器插件,並分配插件窗口;

句柄接受模塊,用於通過啟動命令行參數將插件窗口句柄以及窗口的位置和大小傳入到UE,UE項目啟動後解析命令行參數獲得插件窗口句柄和窗口位置以及大小,在創建渲染窗口的時候,根據插件窗口的位置和大小進行創建,並且將渲染窗口設置為外來窗口的子窗口,並使窗口大小匹配插件窗口大小;

窗口傳遞模塊,用於UE引擎調用DefWindowProc函數將窗口將處理的消息回饋給外來窗口;

位置檢測模塊,用於在UE窗口消息循環函數的WM_ACTIVATE消息處理裡,獲取父窗口的坐標位置並進行判定,如果發現有變化,則對應修改UE的窗口坐標位置;

前置判定模塊,用於前置窗口判定函數bool FWindowsWindow::IsForegroundWindowconst在判定是非編輯器模式運行的,當窗口有父窗口時,返回true,否者按UE原本返回。

本發明通過對UE引擎底層進行改造,使UE渲染窗口可以嵌入到瀏覽器(或者其他軟體)中運行和顯示,其運行幀率和渲染效果均與UE客戶端相當,並且支持次世代渲染效果,相對於UE轉HTML5來說可以更加真實地顯示設計效果,而相對於UE客戶端來說,則更加方便、專業水平要求低,更利於提高普通用戶使用的用戶體驗。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀