前言:該教程用于UE4制作的vr作品導(dǎo)出全景圖迹栓,再將序列幀的全景圖合成全景360視頻掉分。為了加快渲染速度,修改了部分插件源碼。如果想要效果比較好的酥郭,建議雙眼輸出單張上下3D的(需要修改插件)华坦,然后再合成視頻。
分享:先上一段測(cè)試合成的demo不从,15s惜姐。
youtube翻墻享用:https://youtu.be/AgOrS_F7SqA
準(zhǔn)備工作:
1、UE4.18官方插件StereoPanorama消返,找到引擎安裝位置(我這里的是E:\UnrealEngine\UE_4.18\Engine\Plugins\Experimental)载弄,將目錄底下的StereoPanorama插件拷貝到工程Plugins目錄下。如果是純藍(lán)圖工程撵颊,可以在工程中新建一個(gè)c++類宇攻,然后生成sln文件,復(fù)制到創(chuàng)建的Plugins目錄倡勇,vs2015/2017均可打開逞刷。將該插件備份,為了防止沖突并刪除引擎下的該插件妻熊。
2夸浅、修改插件源碼:由于插件自動(dòng)渲染了左右眼,一般情況下扔役,渲染一幀的畫面需要30s帆喇,左右眼就是需要1分鐘左右。我們?cè)诤铣傻臅r(shí)候亿胸,一般只需要左眼渲染出的圖像坯钦,所以修改插件只渲染出左眼,提高效率侈玄。默認(rèn)輸出為PNG格式婉刀,修改為JPG。
下面會(huì)給出修改過(guò)后的插件源碼鏈接序仙,可以直接下載使用突颊。
單眼渲染插件:鏈接:https://pan.baidu.com/s/1ZbC4kXtjUzhtrzt3XumWdQ
提取碼:aee7
(效果好)雙眼渲染合并上下3d:鏈接:https://pan.baidu.com/s/1fh9IqDY83QZ_qwIXzyLkJw
提取碼:dayw??
以下是輸出單眼渲染的插件修改:
也可自行修改,具體修改如下:Visaul Studio打開StereoPanorama\Source\StereoPanorama\Private\SceneCapturer.cpp
在當(dāng)前文檔查找全部“righteye”潘悼,注釋相關(guān)代碼律秃。
在當(dāng)前文檔查找全部“EImageFormat”(修改3處)
//TSharedPtr<IImageWrapper> ImageWrapper = ImageWrapperModule.CreateImageWrapper( EImageFormat::PNG);
修改為:
TSharedPtr<IImageWrapper> ImageWrapper = ImageWrapperModule.CreateImageWrapper( EImageFormat::JPEG );
在當(dāng)前文檔查找全部"CaptureName"
//FString CaptureName = OutputDir / Timestamp / Folder / TickString + TEXT( ".png" );
修改為:
FString CaptureName = OutputDir / Timestamp / Folder / TickString + TEXT( ".jpg" );
3、編譯
打開Plugins\StereoPanorama\Source\StereoPanorama\StereoPanorama.Build.cs
添加代碼:PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
打開工程源碼中\(zhòng)Source\TUKTAKMAN\TUKTAKMAN.Build.cs(我這里工程名是TUKTAKMAN)治唤,添加StereoPanorama模塊棒动。
編譯成功即可!
開始渲染
1肝劲、打開UE4工程迁客,啟用插件,需要重啟工程辞槐。
2掷漱、渲染會(huì)根據(jù)場(chǎng)景中的攝像機(jī)位置進(jìn)行360°渲染,所以可以配合sequencer或者Matinee使用榄檬,達(dá)到自動(dòng)控制鏡頭的效果卜范。
? ? ? ?打開關(guān)卡藍(lán)圖,添加以下節(jié)點(diǎn):
?????指定保存圖片路徑--開始渲染從0-30幀,30fps的話鹿榜,大概就1s海雪。默認(rèn)輸出為4096*4096的圖片,如有需要可以根據(jù)情況添加如下命令
SP.OutputDir C:\Users\zhj\Desktop\Test? ?????????????//設(shè)置保存路徑
SP.HorizontalAngularIncrement 2.0? ? ? ? ? ? ? ? ? ? ? ? ????//一張全景圖舱殿,每次采集水平方向間隔
SP.VerticalAngularlncrement 30.0????????????????????????????????//一張全景圖奥裸,每次采集垂直方向間隔
SP.ConcurrentCaptures 6
SP.CaptureHorizontalFOV 90.0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????//fov視角
SP.StepCaptureWidth 1024? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//圖片質(zhì)量
SP.PanoramicMovie 0 120? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //渲染幀數(shù)0-120幀,開始執(zhí)行點(diǎn)為第0幀
????說(shuō)明:一般視頻30fps沪袭,這里0-30幀指從開始執(zhí)行渲染為0幀湾宙,并不是指程序運(yùn)行的總幀。開始渲染會(huì)卡住冈绊,這個(gè)時(shí)候不要管它侠鳄,一幀大概需要30s∷佬可以看下保存路徑下是否有輸出圖片伟恶。如果有,恭喜你成功了毅该。如你需要渲染1分鐘視頻博秫,幀率30fps.
修改為:SP.PanoramicMovie 0 1800
那么你需要時(shí)間大概為:30*60*30/3600=15H。
你也可以根據(jù)官方教程(https://www.unrealengine.com/zh-CN/tech-blog/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4)修改鹃骂,但是親測(cè)官方給的節(jié)點(diǎn)台盯,渲染效果不如默認(rèn)如下:
3、打開項(xiàng)目設(shè)置Project Settings,將幀率鎖定在30
打開編輯器設(shè)置Editor Perferences,去掉勾選畏线,這樣掛機(jī)渲染的時(shí)候不會(huì)因?yàn)楦鞣N異常彈窗影響效率静盅。
合成全景視頻(這個(gè)是單眼的,效果不如上下3d):
1寝殴、渲染完成后蒿叠,文件名會(huì)是這樣連續(xù)的,注意一定是要連續(xù)的蚣常,等會(huì)我們用合成軟件不連續(xù)(如:Left_00000.jpg,Left_00002.jpg),合成軟件會(huì)報(bào)錯(cuò)說(shuō)找不到Left_00001.jpg的圖片市咽。如果是在不同的主機(jī)渲染不同的片段(最后會(huì)講)文件名重復(fù),可以用批量重命名軟件(最后會(huì)講)抵蚊。
2施绎、下載軟件:ffmpeg
鏈接:https://pan.baidu.com/s/1iws0btpEQ4tzzERTIoqjeg
提取碼:88jq
解壓后溯革,添加環(huán)境變量E:\ffmpeg\bin,我這里解壓到E:\ffmpeg
3谷醉、測(cè)試ffmpeg
打開cmd致稀,輸入命令ffmpeg -version,顯示如下圖安裝成功俱尼!
4抖单、開始合成(親測(cè),6分鐘視頻大約需要合成30-40分鐘)
可能也跟電腦配置有關(guān)系遇八,自行評(píng)估矛绘,合成過(guò)程中會(huì)出現(xiàn)cpu 100%的情況
cmd輸入命令:
ffmpeg.exe -framerate 30 -i E:\Capture\Left_%5d.jpg -c:v libx264 -profile:v high -level 4.2 -r 30 -pix_fmt yuv420p -crf 18 -preset slower E:\Capture\MyMovie.mp4
以上命令將E:\Capture\下命名以Left_00000.jpg為規(guī)則的圖片,根據(jù)命名規(guī)則按順序幀合成視頻刃永。這里也就是為什么前面說(shuō)一定要按照命名規(guī)則必須連續(xù)的原因货矮。
輸出為30幀率,輸出視頻文件為MyMovie.mp4斯够。
期待你的成果次屠!
5、由于渲染效率的問(wèn)題雳刺,需要多臺(tái)機(jī)器合成劫灶。我這邊的操作是分段計(jì)算出渲染幀數(shù),每臺(tái)機(jī)器開始渲染提前1S,渲染幀數(shù)加30幀掖桦。這樣保留前后的30幀數(shù)本昏,在合成之前先確定好銜接位置,然后用批量命名根據(jù)剛才說(shuō)的命名規(guī)則進(jìn)行連續(xù)命名后合成枪汪。
這里推薦用ACDSee9相片管理器涌穆,好用真香∪妇茫可以自行在官網(wǎng)下載宿稀,也可直接用以下鏈接。
ACDSee9相片管理器鏈接:https://pan.baidu.com/s/170wuOmfXRMSft-XzaQa_Hg
提取碼:p2ux
資料:https://www.unrealengine.com/zh-CN/tech-blog/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4
? ? ? ? ?http://www.reibang.com/p/ddafe46827b7