2017-05-04 2 views
0

Ich frage mich, wie funktioniert der Aufnahmealgorithmus.Unity3D im Spiel Aufnahmealgorithmus

Mein erster Gedanke ist Textur von LateUpdate() jeden Rahmen zu bekommen.

Angenommen, meine Ziel-Frame-Rate von Video ist 30fps, wenn mein Spiel mit 60fps läuft und ich nur die ersten 30fps erfasst habe, dann ist das Problem, dass ich einige Frames verlieren werde.

Wenn mein Spiel mit 20fps läuft, habe ich nicht genug Frames für 30fps Video, also sollte ich 10 mal das 20. Frame kopieren?

Gibt es ein Tutorial zu starten? Ich habe online gesucht, kann aber kaum eine ähnliche gute Anleitung finden.

+0

"wie die Arbeit Aufzeichnungs Algorithmus tut" Auf welchen Algorithmus beziehen Sie sich? Versuchen Sie, Ihre eigene Videoaufzeichnungsfunktion von Grund auf in Ihrem Spiel zu schreiben? Wenn ja, [haben Sie stattdessen ein kostenloses Plug-In aus dem Asset-Store erwogen] (https://www.assetstore.unity3d.com/en/#!/content/75653)? –

+0

Ja, ich möchte den Algorithmus verstehen, anstatt einen freien zu verwenden. – ywj7931

+1

Wenn das Spiel nicht mit der gleichen Bildrate wie das Video läuft, ist die richtige Antwort: Drop oder doppelte Bilder * bei einer gleichmäßigen Verteilung. * Das heißt, wenn das Spiel mit 60 fps läuft und Sie mit 30 aufnehmen, * fallen ** alle anderen ** Bilder. * Nehmen Sie nicht die ersten 30 auf und verwerfen Sie die zweiten 30, das ist dumm. Siehe [Seite zwei] (http://www.digitalcinemasociety.org/downloads/FrameRateConversionSimplified-N.pdf) – Draco18s

Antwort

0

Wenn Sie eine feste Bildrate festlegen möchten, können Sie den Benutzer FixedUpdate() verwenden. Sie können FixedDeltaTime Wert Erfassung Framerate Dermine:

[Range(1,60)] 
public int capturingFrameRate = 30; 

void aStart() 
{ 
    Time.fixedDeltaTime = 1/capturingFrameRate; 
} 

void FixedUpdate() 
{ 
    //capture frame 
} 

Referenz: FixedDeltaTime

hoffe, das hilft

+0

meine Frage ist eher wie: wenn mein Spiel mit 60fps läuft, und ich nur die ersten 30fps erfasst, dann ist das Problem, ich werde einige Frames verlieren. Wenn mein Spiel mit 20fps läuft, habe ich nicht genug Frames für 30fps Video, also sollte ich 10 mal den 20. Frame kopieren? – ywj7931