Die Farbe der gerenderten Normalen wird verzerrt?
Ich versuche, die normale Ausgabe des Geometrieknotens zu rendern und diese dann als fensterprojizierte Textur zurückzubringen. Aber wenn ich das tue, unterscheidet sich das Bild sehr von der ursprünglichen Socket-Ausgabe:
Warum ist mein Bild anders, wenn es buchstäblich nur ein Render derselben Sache ist? Mir ist bewusst, dass das Farbmanagement den Render verzerrt. Ich habe versucht, mit verschiedenen Anzeigegeräten, Ansichtstransformationen, sowohl PNG als auch EXR, verschiedenen Farbräumen auf dem Texturknoten, Rendern als Rendern speichern usw. zu rendern.
Nach meinem Verständnis sollte es funktionieren, wenn Sie sich im Anzeigegerät befinden: sRGB, Standardansicht transformieren und dann den Texturknoten auf lineare oder nicht farbige Daten setzen, aber das funktioniert nicht. Was könnte sonst noch los sein?
Antworten
Ich denke, die Hauptursache für die Unterschiede ist die Art und Weise, wie Daten codiert werden, als die Normalen ursprünglich gerendert wurden.
Wenn Sie dies in jpg oder png speichern, werden Farben als Ganzzahlen codiert. Dies führt zu gerundeten Werten, die nicht in die exakten Anfangsnormalwerte konvertiert werden können.
Sie können diese gerenderte Datei also im OpenExr-Format speichern, um die Werte als Gleitkommawerte beizubehalten:
(Der Codec kann aus Gründen der Genauigkeit bei Bedarf "none" oder "zip looseless" sein. Probieren Sie die Codecs aus, je nachdem, was Sie möchten, Dateigröße vs. Genauigkeit).
Das Ergebnis kann folgendes sein (allerdings nicht perfekt):
Stattdessen verwenden Sie png:
Behalten Sie außerdem die Bildtextur als "nicht farbig" oder "roh" bei, und legen Sie, wie Sie in der Frage gesagt haben, im Farbmanagementteil "roh" und "nicht farbig" fest.
Bearbeiten: Eine andere Sache, die das Rendering verändert, ist Anti-Aliasing. Wenn Sie Zyklen verwenden, setzen Sie den Pixelfilter im Filmbereich auf Box. Das Rendern mit der auf das Fenster projizierten Bildtextur sollte zu einem besseren Ergebnis führen.