英偉達(dá)的GameWorks為UE4提供了很多分支朴沿,包括Cataclysm跟畅、Flex 、VXGI距误、Volumetric Lighting 等等
英偉達(dá)GameWorks github分享鏈接
然而喇嘱,英偉達(dá)并未提供合并辦的UE4,因此以上分支需要手動(dòng)合并茉贡,下面是合并方法:
通過(guò)git clone下整個(gè)庫(kù)(本人通過(guò)VS2015git相關(guān)工具克隆,合并也使用的是VS2015)者铜。
在VS中打開其中某個(gè)分支(Flex腔丧,VXGI等都可以),選擇創(chuàng)建一個(gè)新的分支作為你將要合并的最終版本作烟。
選擇合并分支愉粤,合并的時(shí)候注意選擇相同版本的UE4,否則可能出現(xiàn)后續(xù)編譯出錯(cuò)的問(wèn)題拿撩。
如果之前步驟沒(méi)有問(wèn)題衣厘,合并時(shí)會(huì)出現(xiàn)沖突,從十幾個(gè)到二十幾個(gè)不等,取決于你合并的兩個(gè)分支之間的影響程度影暴。
選擇沖突 跳轉(zhuǎn)解決沖突界面错邦。可以 比較文件 看看具體問(wèn)題在哪型宙。之后點(diǎn)擊合并撬呢,跳轉(zhuǎn)合并界面,發(fā)現(xiàn)問(wèn)題是由于分支在同一個(gè)位置插入了代碼早歇,從代碼段中可以清楚的看到倾芝,英偉達(dá)不同功能的模塊用注釋隔開讨勤。因此 只需要在沖突的地方選擇其中某一個(gè)分支 再將代碼塊中的另一個(gè)模塊代碼拷貝到最終文件中 即可完成合并箭跳。
反復(fù)執(zhí)行第五步 直接到解決完沖突。
提交合并潭千,然后再跳轉(zhuǎn)第三步合并其他分支谱姓。直到合并完所有想要合并的分支。
進(jìn)入資源管理器 到庫(kù)目錄下找到setup.bat文件 運(yùn)行并下載UE4相關(guān)其他文件刨晴。
下載完成后運(yùn)行GenerateProjectFiles.bat 生成UE4.sln屉来。可能會(huì)發(fā)現(xiàn)GenerateProjectFiles.bat 報(bào)錯(cuò) 提示找不到VXGI模塊 原因是VXGI狈癞、Volumetric Lighting放在同一個(gè)文件夾中茄靠,而VXGI的build文件更深一個(gè)目錄,所以Volumetric Lighting的build文件屏蔽了VXGI的build文件。這時(shí)進(jìn)入\Engine\Source\ThirdParty\GameWorks將NvVolumetricLighting.Build.cs放到\Engine\Source\ThirdParty\GameWorks\Volumetric Lighting下蝶桶,之后就能正常生成了慨绳。
用VS打開,然后選擇UE4生成 等生成成功之后在\Engine\Binaries下找到UE4Editor.exe 即完成所有工
PS:兩點(diǎn)問(wèn)題需要注意:
1真竖、解決源碼版UE4不能構(gòu)建光照問(wèn)題 用VS打開UE4.sln 右鍵選擇UnrealLightmass生成脐雪。
2、如果合并了Flex分支啟動(dòng)UE4_Editor的時(shí)候有時(shí)出出現(xiàn)崩潰恢共,像這樣:
解決方案:
half3 TangentX = TangentBias(Input.TangentX);