我想知道錄製算法是如何工作的。Unity3D遊戲錄製算法
我最初的想法是每幀從LateUpdate()獲取紋理。
假設我的視頻幀率是30fps,如果我的遊戲運行速度爲60fps,並且我只捕獲了第一個30fps,那麼問題是我會丟失一些幀。
如果我的遊戲以20fps運行,我沒有足夠的30fps視頻幀,那麼我應該複製第20幀的10倍嗎?
有沒有關於開始的教程?我在網上搜索,但很難找到一個相關的好教程。
我想知道錄製算法是如何工作的。Unity3D遊戲錄製算法
我最初的想法是每幀從LateUpdate()獲取紋理。
假設我的視頻幀率是30fps,如果我的遊戲運行速度爲60fps,並且我只捕獲了第一個30fps,那麼問題是我會丟失一些幀。
如果我的遊戲以20fps運行,我沒有足夠的30fps視頻幀,那麼我應該複製第20幀的10倍嗎?
有沒有關於開始的教程?我在網上搜索,但很難找到一個相關的好教程。
如果你想固定捕獲幀率,你可以用戶FixedUpdate()
。您可以設置FixedDeltaTime
值dermine拍攝幀率:
[Range(1,60)]
public int capturingFrameRate = 30;
void aStart()
{
Time.fixedDeltaTime = 1/capturingFrameRate;
}
void FixedUpdate()
{
//capture frame
}
希望這有助於
我的問題更像是:如果我的遊戲運行速度爲60fps,而我只捕獲了第一個30fps,那麼問題是我會丟失一些幀。 如果我的遊戲以20fps運行,我沒有足夠的30fps視頻幀,那麼我應該複製第20幀的10倍嗎? – ywj7931
「請問該記錄算法的工作」你指的是哪種算法?你是否試圖從頭開始編寫自己的視頻錄製功能?如果是這樣,[你有沒有考慮從資產商店獲得一個免費的插件](https://www.assetstore.unity3d.com/en/#!/content/75653)? –
是的,我想了解算法,而不是使用免費的.. – ywj7931
如果遊戲沒有以與視頻相同的幀速率運行,則正確的答案是:以均勻分佈丟棄或重複幀*。也就是說,如果遊戲運行速度爲60 fps,並且記錄時間爲30,* drop ** each other ** frame。*不記錄前30個並丟棄第30個,這是愚蠢的。見[第二頁](http://www.digitalcinemasociety.org/downloads/FrameRateConversionSimplified-N.pdf) – Draco18s