Re: [程式] 製作動畫的問題

看板GameDesign (遊戲設計)作者 (我要加入劍道社!)時間17年前 (2008/01/08 10:45), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《killman (天下第一人)》之銘言: : : 問題在於你還要考慮畫出來的時間 : : 如果 1/30 才畫一次 : : 那麼 fps 一定低於 30 : : 因為畫出場景的時間多半都不固定 (視場景複雜度及硬體速度而異) : : 所以大多遊戲不會事先決定 fps : : 而是用前述的方法去更新畫面 : 我不太了解這個地方 : 我所認知的遊戲都是先決定顯示的fps的 : 比如說30,60 : 當然也可能我搞錯了 : 所以是不是可以請你多作說明呢? : 謝謝 你也沒搞錯 的確有些遊戲是事先決定好 fps 然而對場景日益複雜的 3D Game 來說 固定 fps 不但麻煩 也沒有明顯的好處 因此(我看到的)大多遊戲都沒有固定 fps : 另外 : 我補充我講的timer的方法 : 這個timer除了單純1/30秒跑一次外 : 還要加上一個skip frame的功能 : 以確保發生你所說的狀況 : 也就是說如果這次呼叫跟上次的間格如果超過1/30秒 : 假設是2/30秒 : 那麼就表示跟上一次呼叫timer callback已經錯過一次了 : 這時候callback function會得到這個數字 : 然後你在對這個數字作處理 另外一個問題是 當你計算物體的位移時 不能用 1/30 秒去算 因為 render 要花時間 而且每張 frame 花的時間不一樣 如果都用 1/30 秒去算 就會發生物體移動時快時慢的現象 若要固定 fps 為 30 我會先計算畫出第一張 frame 的時間,假設為 t 然後設定 timer 在 (1/30 - t) 秒後重繪一次 因為 t 會變動 因此每次重繪完 都要重新設定一次 timer : 其實動畫的部分牽扯到兩個地方 : 一個是顯示畫面 : 另一個是計算動畫 : 兩個可以用不同的更新頻率來作 : 也就是可以設定兩個timer分開計算 : 一切都看你所需要的是什麼樣的情況 : ps:這都在學校學的 沒有業界經驗XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.163.156.44
文章代碼(AID): #17WkFHl5 (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #17WkFHl5 (GameDesign)