回覆列表
-
1 # doge4125
-
2 # 電商風向區
我是嗚喵,我來回答,喵~
不管是《上古卷軸5》《塞爾達傳說:曠野之息》,還是《GTA》《魔獸世界》都不是一次性完成地圖的載入。都是透過演算法構建的無縫世界。
因為所有的浮點運算都會出現精度錯誤,而且值太大,需要等待載入的時間太長。因此以目前的計算水平無法直接建立一個大的無縫世界。
但小夥伴們可以與嗚喵一起期待一下未來量子計算機的普及能否改變現狀。
沒有遊戲可以永遠在每個方向上延伸為一個場景。玩家離設定的原點越遠,要求載入地圖的準確性就會變得越來越糟
要想使大的無縫世界工作的方法是使用一種通常被稱為“分頁”的技術。
在這種技術中,你基本上把你的整個世界劃分成一個網格,每個單元格都有特定的大小,比如說512x515個單元,並且包含其中的所有靜態幾何體。然後渲染玩家所在的網格加上他周圍的8個網格。
如下圖,在這個矩陣裡面,Z軸橫穿矩陣中心,那麼這個地圖載入的順序也應該從遊戲世界座標中心D3DXVECTOR3(0,0,0)出發。
綠色就是要載入的範圍,採取的方式是向上去整。
如0.4,0.5,1.3 等格子,只要涉及,就全部取。
回答參考itshen
地形(遊戲中行走的地面)處理一種稱為流的技術(也可以分解為網格),它允許你從磁碟流地形資料,只在記憶體中儲存你需要的資料。
基本原理是建立N個地形+場景。然後透過對連結處做無縫處理,拼成一個大的地圖。但是目前沒有辦法建立“一個大網格”(地形)作為一個大的無縫世界。
所以對於未來的遊戲發展,業界都想做成如《頭號玩家》中的綠洲一樣,想要追求更加真實,更加具有沉浸感,還有很長的路要走。
不是一次性載入完成的,而是預載入技術啊,這個最早是戰神2用的,到了某個點就開始載入下個區域的地圖(讀盤),破綻就是你開傳送的是時候發現地圖開始讀盤了,你就知道不是一次性載入完成了。