Re: [閒聊] 王國之淚去年延期時已接近完成

看板C_Chat作者 (pony)時間11月前 (2023/05/22 12:38), 編輯推噓8(805)
留言13則, 10人參與, 11月前最新討論串4/7 (看更多)
※ 引述《hylkevin (19s)》之銘言: : → spfy: 雖然有人解釋但我還是想不通倒轉要怎麼實作 不可能把林克附 : → spfy: 近所有物件的軌跡都長期記錄起來吧? : 記錄一個物件在空間中的姿態(pose: 包含位移跟旋轉) : 一般是用一個4x4的浮點數(float: 有小數點的數字, 4 byte)矩陣 : 也就是說紀錄一筆位置, 記憶體大小是4x4x4=64 byte 對不會改變大少,伸縮的物件而言 一般用 2 個 vector3 就好了, 6 個float浮點數, 6x4=24byte struct vector3 { float x, y, z; }; struct location_t { vector3 position; vector3 orientation; }; : 假設他每秒記錄30筆pose (30fps), 並假設每個可移動物件都紀錄10秒 : 則一個物件的時間倒轉記錄是64x30x10=19.2 kbyte : 超過一定距離的物件不能時間倒轉, 甚至都不會載入 : 所以假設他同時間最多有1000個物件會被載入(實際上應該沒這麼多) : 他用來存時間倒轉資訊的總記憶體用量在每個時刻都不會超過19.2mbyte : 由此可知時間倒轉其實負擔並不大 : 對於一個現代的系統來說, 19mb通常是可以忽略的大小 這個要看遊戲引擎跟物理引擎怎麼寫 場景物件不見得都會被記錄 尤其是最佳化過的遊戲 不過記憶體就上面算的 並不是很大的量 拿波斯王子舉例 20年前的遊戲 都可以記錄王子跟附近敵人10秒的運動軌跡 TOTK 只需要紀錄10秒內 經過物理引擎計算的物件就好 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.167.178 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1684730284.A.FCB.html

05/22 12:42, 11月前 , 1F
orientation你用vector3是用euler angle記錄吧?但euler
05/22 12:42, 1F

05/22 12:42, 11月前 , 2F
angle其實有萬象鎖問題,所以一般是用vector4的四元數(
05/22 12:42, 2F

05/22 12:42, 11月前 , 3F
quaternion)
05/22 12:42, 3F

05/22 12:44, 11月前 , 4F
用quaternion還可以方便做投影 算一舉兩得
05/22 12:44, 4F

05/22 12:52, 11月前 , 5F
開始聽不懂了XD
05/22 12:52, 5F

05/22 12:53, 11月前 , 6F
開始進入程式版的領域
05/22 12:53, 6F

05/22 13:04, 11月前 , 7F
差點以為進錯版
05/22 13:04, 7F

05/22 13:08, 11月前 , 8F
懂...懂了(並沒有)
05/22 13:08, 8F

05/22 13:21, 11月前 , 9F
我懂了…不 我不懂
05/22 13:21, 9F

05/22 14:24, 11月前 , 10F
完全聽不懂了哈哈哈哈
05/22 14:24, 10F

05/22 15:10, 11月前 , 11F
儲存用不用quaternion倒是無所謂 計算的時候轉就好
05/22 15:10, 11F

05/22 15:10, 11月前 , 12F
主要還是看物理引擎本身儲存的格式 能不用多轉最好
05/22 15:10, 12F

05/22 23:06, 11月前 , 13F
對我就是這樣想的(並沒有
05/22 23:06, 13F
文章代碼(AID): #1aQl6i_B (C_Chat)
討論串 (同標題文章)
文章代碼(AID): #1aQl6i_B (C_Chat)