Wie kann ich Python in Blender Game Engine (2.5+) verwenden, um den Tiefenpuffer UND den Farbpuffer zu speichern, um jeden Frame zu speichern?

869
twerdster

Ich muss den Farbpuffer und den Tiefenpuffer einer bestimmten Kamera in einer Szene in Blender Game Engine jedes Bild in einer Datei speichern (jeweils in ihrer eigenen Datei). Ist das möglich? Wie kann dies mit BGE und Python eingerichtet werden?

Ich habe im Blender Artists-Forum nachgefragt, aber niemand scheint die Frage aufgegriffen zu haben .

0

1 Antwort auf die Frage

1
Skyler Saleh

Das Speichern des Bildpuffers in einer Datei ist ein sehr langsamer Vorgang. Ich gehe also davon aus, dass Sie dies nicht in Echtzeit tun müssen ... Also wollen Sie zwei Shader-Sets einrichten. Einer, der Ihr normaler Farbshader ist, und ein anderer, der die Tiefe des Objekts als Farbe wiedergibt. Dann rendern Sie Ihre Szene zweimal mit beiden Sätzen von Shadern. Von dort haben Sie zwei Möglichkeiten ...

  1. Verwenden Sie BGL.glReadPixels, um das Bild jedes Frame zu lesen und manuell zu exportieren.
  2. Wechseln Sie zum Standard-Blender-Renderer und rendern Sie eine Animation mit beiden Sätzen von Shattern.
Wie rendere ich den Bildschirm zweimal in BGE? twerdster vor 12 Jahren 0
Tauschen Sie die Shader entweder nicht bei jedem zweiten Frame aus (rendern Sie die Farbe auf geraden Frames und dann auf Ungerade) oder rendern Sie die gesamte Sequenz zweimal. Darf ich fragen, wofür Sie dies verwenden wollen? Skyler Saleh vor 12 Jahren 0
Ich verwende die erste Methode. Auf jeden Fall das einfachste. Verwenden Sie es, um den Tiefenscanner zu simulieren twerdster vor 12 Jahren 0