Site icon 8bit.media

使用 RealityCapture 將整個城市變成可玩的賽道

Spread the love

https://80.lv/articles/turning-an-entire-city-into-a-playabe-racing-track-using-realitycapture/

開發商

Ivan Savić 討論了他的《神力科莎》實驗,解釋了他如何捕獲初始數據並將其用於RealityCapture,並分享了他在重建整個城市時面臨的挑戰。

介紹

我叫 Ivan Savić,住在塞爾維亞的一個小鎮。我主要以自由職業者的身份進行 3D 建模,並在此過程中嘗試製作一些我感興趣的項目。

神力科莎實驗

我一直很喜歡電子遊戲和模擬賽車。小時候,我想知道我所在城市的 F1 賽道佈局是怎樣的,我在想像一些路線。還有這個以前在小鎮附近舉行的爬山比賽,我一直想在遊戲中走那條路。當神力科莎問世時,它完全符合我的熱情。我試圖通過手動建模來製作這條爬山路,但我對它的外觀一直不滿意,也從未完成。

Ivan Savić 的第一個 Hill Climb 賽道 mod 的屏幕截圖

我做的下一個賽道改裝是貝爾格萊德附近的 NAVAK 賽道,沒有適合它的 mod 所以我想製作它。結果很好。

NAVAK 賽道的屏幕截圖

在那之後,我嘗試手動為我的城市建模並在其中製作賽道,但事實證明這是一項大量工作,我很快就停止了這項工作。此外,我將建築物放置為帶有從街景視圖複製的紋理的盒子的方式看起來還不夠好。更詳細地對所有內容進行建模將花費大量時間。事實上,我一直在考慮只用攝影測量法製作建築物,但我最終發現重建一切會更容易。

手動建模的城市賽道截圖

手動建模的城市賽道截圖

當我發現攝影測量學時,我被這項技術驚呆了。我掃描了一些小物體,非常喜歡這樣做。在某些時候,我意識到我可以嘗試掃描更大的區域,我實際上可以掃描道路以進行軌道改裝。在對如何拍攝圖像進行良好重建進行了一些實驗後,我得到了一些不錯的結果,我在我的第一個社區視頻中分享了這些結果。

使用攝影測量法製作的鄰里賽道

當然,我一直在計劃更大的拍攝,穿過整個城市的軌道。這在第二個視頻中得到了更大的關注。我實際上為更多的街道拍攝了照片,以在整個城市創建更大的佈局,但我仍然沒有完成它。

Ivan 掃描以延長賽道的一段未清理網格的屏幕截圖

Ivan 掃描以延長賽道的一段未清理網格的屏幕截圖

至於教程,我不記得我是否打算製作它們,但人們問我所以我製作了一些來解釋這個過程。

捕獲初始數據

對於第一個實驗,我只使用安裝在自行車上的運動相機。當我在我的社區成功重建時,它看起來還不錯,但是在攝像機看不到的區域的網格中有很多洞,比如在柵欄、牆壁後面等。

您在下圖中這些柵欄後面看到的紋理是谷歌網格,而不是攝影測量網格。

我意識到我應該添加無人機圖像來覆蓋這些區域。因此,通過地面和空中的圖像,我覆蓋了大部分環境。之後,我嘗試只使用無人機掃描開闊的道路。僅使用無人機掃描要快得多,但這種技術只能在道路上方沒有太多樹木的情況下使用——否則,這會阻礙無人機記錄環境。

爬坡攝影測量賽道

爬坡攝影測量賽道

使用RealityCapture

當我發現攝影測量學時,我嘗試了很多程序,因為我想嘗試每個程序的工作原理。對於我的軌跡實驗,我還嘗試在幾個程序中重建軌跡,但我發現RealityCapture最適合我。所有攝影測量程序的工作原理都相似,使用起來也不太複雜,因此學習它們並不難。

在 RealityCapture 中使用捕獲的數據

我使用的是低預算的設備,而且圖像是用一種快速的方式拍攝的,所以我的輸入數據不是很好。當我將所有圖像輸入軟件時,它無法無縫地重建整個賽道。我必須找到一些解決方法來解決這個問題。我將賽道分成較小的部分並分別重建每個部分。

這使得工作變得更加容易和快捷。之後,我將所有部分輸入到一個新項目中,並像這樣重建了整個賽道。但這並不能無縫地工作——圖像對齊有很多錯誤,所以我不得不手動製作很多控制點來指導軟件確定哪些部分應該在哪裡。

攝影測量是一種需要高質量圖像的技術,圖像質量越好,拍攝模式越好,程序就越容易創建它的 3D 模型。但是,我肯定無法在城市中關閉一天左右的交通,無法緩慢而徹底地進行掃描。此外,我不想花太多時間做這件事,所以決定拍一段視頻,反正花了大約 10 個小時,因為我必須做多次。因此,拍攝單張照片可能要花很長時間。

清理數據並準備最終賽道

使用這種快速錄製視頻的方法,重建的網格中會出現很多錯誤和不准確之處。在我的測試中,道路從來都不夠平坦,必須進行調整甚至完全改造。像電線桿和柵欄這樣的薄物體重建不夠好或根本無法重建。 

道路噪聲示例

重建不夠好的圍欄示例

攝影測量法當然可以根據圖像創建圍欄,但不是根據我記錄的距離以及我經過該圍欄時的大量圖像。分別拍攝那些物體的圖像會花費太多時間,增加重建的難度和網格的整體尺寸,我根本沒有考慮過。手動製作它們要容易得多。

有些對象必須手動建模

網格的其他部分也沒有完美創建。比如牆壁不平,有凹凸不平等等。但對我來說,它不一定是完美的。當你開車時,尤其是如果你開得很快,你不會注意所有的小細節。我只需要正確地捕捉基本的大形狀,使顏色和紋理感覺逼真,並使比例和尺寸在一定程度上準確。對於我和我在賽道上駕駛的朋友來說,這足以將其與現實世界聯繫起來。在市中心駕駛 F1 真是太棒了。

將環境變成可播放的曲目

《神力科莎》在製作時就考慮到了mod,因此向其中添加內容非常容易。雖然創建它並不容易。在 3D 程序中,您必須定義對象的名稱,以便 Assetto Corsa 引擎知道哪些多邊形是道路、草地、牆壁等。此外,您還需要添加一些對象來定義汽車的起始位置,起跑線是等等。Assetto Corsa 帶有一個用於改裝的編輯器,它可以導入這些 3D 文件,如果一切正確,則製作一條賽道或一輛要在遊戲中運行的汽車。

結論

整個項目花了我 240 個小時,歷時數月。對我來說,每一步都或多或少耗費時間,我不能指出具體的事情。不管怎樣,事實證明,用攝影測量法製作軌道比手動創建賽道要快得多。您永遠無法手工複製如此多的幾何圖形和紋理。是的,我的結果並不完美,但仍然如此。

如果有人想嘗試這樣的事情,先在一小段路上做一些實驗,比如 100 米長。熟悉這個過程,看看你能得到什麼結果,然後計劃更大的事情。攝影測量最重要的部分是擁有良好的圖像和足夠的圖像,以便掃描環境的每個部分都可見。

Ivan Savić,開發人員

Arti Burton進行的採訪 

Exit mobile version