包含2節(jié)視頻教程
關(guān)注3.4萬次
mari是目前為之最棒的3d材質(zhì)繪畫軟件,他支持多個繪畫通道,實時顯示法線置換貼圖,快速有效的繪畫速度,是我們選擇他的原因。
在 2015 年,雷克薩斯實現(xiàn)了世人在 回到未來 中的夢想,制作了現(xiàn)實世界中的懸浮滑板,并在后來通過一段視頻分享了一些體驗,視頻中職業(yè)滑板玩家 Ross McGouran 在一個訂制的滑板公園中測試了雷克薩斯滑板。接下來準(zhǔn)備在 The Mill 的團(tuán)隊的幫助以及 Epic Games 的虛幻引擎 4 的支持下將這種體驗帶給更多人。
無論是在開發(fā) Mill Stitch,首個 VR-review 的制作工具,還是為實時的在一個房間大小內(nèi)使用 Vivi 創(chuàng)建原型,我們一直都在實踐技術(shù)帶來的變革并探尋新的方式來描繪故事。
在面臨重建 2015 年洛杉磯汽車展上的雷克薩斯滑板的使用體驗時,我們用來雷克薩斯“用滑板前行”作為回復(fù),可以在一個房間內(nèi)前行,采用實時的游戲體驗,以及一個和 Spinifex Group U.S 合作開發(fā)的壓力感應(yīng)控制器。
這是一個被顯示屏環(huán)繞的該海濱滑板公園模擬,將用戶放置于視覺和聽覺都是動態(tài)的環(huán)境中,從一個四分之一的管道開始,在雷克薩斯滑板公園中滑行。這個公園復(fù)制了早先時候雷克薩斯在巴塞羅那建造的那個真實的滑板公園的樣子。
用戶起始時占在一個壓力感應(yīng)控制器上,該控制器會監(jiān)測用戶的體重分布。用戶可以通過前傾,后傾以及向兩側(cè)傾向來改變速度和方向。
這個超級真實的滑板公園和周邊環(huán)境由 Epic Games 的虛幻引擎 4 制作,并訂制了軟件來同步模擬環(huán)境的 18 個高清屏幕的顯示,以及有 Apollo 工作室實現(xiàn)的基于事件的具有空間信息的音效也整合在虛幻引擎中。
為了將虛幻 4 渲染在 18 個屏幕上顯示,我們必須要在短時間內(nèi)解決一些技術(shù)問題,其中包括周邊硬件以及虛擬攝像機(jī)的配置,網(wǎng)絡(luò)的配合以及各幀的狀態(tài)同步。雖然這具有挑戰(zhàn)性,但這類問題正是我們喜歡解決的問題。
解決分布式渲染的第一步總是先看能否被整體避免。在這個案例中,我們需要大量的像素(9270x3840)并且沒用 SLI 的支持,因此顯然我們無法在一臺機(jī)器上完成,因此我們選用了一套系統(tǒng),包括一個服務(wù)器以及六個客戶渲染端,并在一個封閉網(wǎng)絡(luò)內(nèi)工作。
每臺機(jī)器將渲染一面墻的上半部或者下半部的一部分(有 NVIDIA 驅(qū)動的 3 個并排的豎直顯示器)。為了無縫的在各個顯示屏上顯示畫面,需要根據(jù)顯示器的布局放置一個虛擬攝像機(jī)在玩家角色的位置。為了做到這一點,我們直接在虛幻引擎 4 的攝像機(jī)組件類中實現(xiàn)了一套非對稱視錐(透鏡偏移)。每個客戶端渲染實例只需直接加載一套對應(yīng)該視口的 json 的設(shè)置并應(yīng)用于它的攝像機(jī)配置。
更重要的是,需要保證穩(wěn)定的 60 幀的畫面,低于 60 幀的感受將會非常不舒適,尤其是考慮到攝像機(jī)動態(tài)下的情形。在 NVIDIA 的 GTX 980ti 的加持下,大約 80% 的分辨率以及一些畫質(zhì)設(shè)置的調(diào)整下,我們做到了穩(wěn)定的幀數(shù)渲染效果。我們卻是不得不最小化屏幕空間的后處理特效,因為這部分會導(dǎo)致不同渲染端的顯示差異。
我們決定對于系統(tǒng)間共享的狀態(tài)要盡可能的少,因此我們以來 UDP 協(xié)議以及交換機(jī)的性能考保持“同步”。當(dāng)用戶在滑板公園中移動時,我們將用戶的視點位置和方向在網(wǎng)絡(luò)中做簡單的廣播,以及一些額外的時間信息,來保持各個渲染端的 Matinee 過程同步。
走這條路是為了避免 TCP 的過度開銷導(dǎo)致的鎖幀問題,畢竟要對虛幻引擎中 GPU/CPU 的同步點做進(jìn)一步改進(jìn)很有可能會超出這個項目的范圍。我們是通過一些列的 UDP 延遲和鎖幀的測試才做了這個決定。其中我們做的一個測試是在網(wǎng)絡(luò)上進(jìn)行 ping pong 檢測來測試 UDP 的可靠性和速度,其結(jié)果是我們能做到在幾個小時的耐力測試下,ping pong 的一次來回只需要半毫秒,UDP 的丟包數(shù)量為 0。對這個結(jié)果我們也很滿意,因此就決定采用這個方式做下去。
作為聰明的實現(xiàn)方式,我們對虛幻引擎做了 Asio C++ 庫,以及新的 Cinder OSC 封裝的整合。我們實現(xiàn)了一個 FRunnable 對象,該對象由 asio::io_service 運(yùn)行,并且可以選擇預(yù)設(shè)置的配置來作為服務(wù)端運(yùn)行還是作為渲染客戶端。Asio 最終也需要處理其他安裝交互層。比如我們要和 Cinder 的應(yīng)用程序交互,該程序從 Wii 的平衡板中獲取用戶的輸入控制數(shù)據(jù),并將這些信息發(fā)送給虛幻引擎來控制速度和移動的體驗。該程序也同時監(jiān)聽虛幻引擎反饋的信息,并將這部分信息用于控制一個 DMX 風(fēng)扇作為 AR 的元素來增加用戶體驗。
這次為雷卡薩斯滑板制作素材和我們通常的 VFX 制作流程稍有不同。為了在虛幻引擎的 Lightmass 的光照烘培下完美工作,創(chuàng)建素材時有一些小地方需要注意。每個素材需要一組 UV 展開用于標(biāo)準(zhǔn)的 Diffuse,Normal 和 Specular 貼圖,除此以外還需要另一組 UV 展開用于優(yōu)化并改善光照貼圖的質(zhì)量。
該項目還需要一個能夠獲取用戶體驗的視頻并完成社交分享功能的需求,為了這個體驗我們設(shè)置了一套多攝像機(jī)系統(tǒng),能夠保存一段 15 秒的視頻并在社交媒體上分享雷克薩斯“用滑板前行”的體驗。
該虛幻應(yīng)用和一個 TouchDesigner 應(yīng)用連接,用于創(chuàng)建自定義視頻捕獲,能同時和虛幻以及 iOS 設(shè)備交互來作用用戶隊列和體驗的開始,同時還能處理實施的色彩修正和編輯。
Mill 團(tuán)隊最終提供了解決方案,跨 18 臺顯示器完成了虛幻引擎 4 的渲染顯示,得到了無縫的使用體驗,并達(dá)到沉浸式體驗的高質(zhì)量需要。在 12 天的時間內(nèi),通過過“用滑板前行”項目,4,000 個滑板玩家體驗了雷克薩斯的滑板公園。
我們會繼續(xù)拓展關(guān)于幀同步方面的更好的方法,包括直接在虛幻引擎內(nèi)部的同步點上優(yōu)化工作,機(jī)器的時鐘同步以及使用 libpcap 讀取網(wǎng)絡(luò)包的精確時間標(biāo)記。同時我們也在尋找虛幻引擎的技術(shù)美術(shù)來加入我們團(tuán)隊!
朱峰社區(qū)網(wǎng)頁版(手機(jī)掃描-分享-添加到屏幕)
朱峰社區(qū)微信公眾號(微信掃一掃-關(guān)注)
未知用戶
2005-2025 朱峰社區(qū) 版權(quán)所有 遼ICP備2021001865號-1
2005-2025 ZhuFeng Community All Rights Reserved
VIP