Was bedeutet es, “ Lichter zu backen ”?

Was bedeutet es, Lightmap zu backen? Ich habe dies in Unity3d gehört und wieder dieses LightUp-Plugin zum Skizzieren gefunden, das Lightmap backt.

Nach meiner Beobachtung verleiht die gebackene Lightmap dem 3D-Objekt ein viel realistischeres Gefühl. Ist es der Zweck, Licht auf ein Objekt zu backen, um das CG-Animations-Aussehen zu erhalten, das Sie auf vorgerenderten Animationen sehen? etwas, ob Physik, Beleuchtung oder irgendetwas anderes. Dies bedeutet, dass Sie etwas eingerichtet haben, dessen Rendern / Verarbeiten in Echtzeit sehr lange dauert, oder dass es jedes Mal auf dieselbe Weise abgespielt werden soll. Sie tun dies also nur einmal und speichern die Ergebnisse für die spätere Verwendung und weil Alle Berechnungen werden durchgeführt. Die Anzeige der Backwaren ist schnell und bei allen Durchspielen immer gleich.

  • AttackingHobo, das ist eine großartige Möglichkeit, es auszudrücken. Ich verstehe es jetzt. Aber neugierig, wie würde die Physik gebacken werden? Erzeugt Luxrender fotorealistische Renderings, weil sie die Physik des Lichts berechnen können?
  • Die Physik kann für komplexe Szenen gebacken werden, indem alle Objektpositionen, Rotationen usw. für jeden Zeitschritt einmal simuliert und gespeichert werden. Anstatt alle Werte erneut live zu berechnen, werden sie nur aus den gespeicherten Werten wiedergegeben.
  • Antwort

    Wenn Sie in einem Spiel ein statisches (nicht bewegliches) Licht haben, haben Sie zwei Möglichkeiten, dieses Licht zu rendern. Sie können es wie ein dynamisches Licht rendern. Führen Sie es also durch die Shader-Pipeline, die auf dem Weg zum Bildschirm die Auswirkungen auf alles um ihn herum, jeden Frame, berechnet. Das ist natürlich ziemlich teuer. Oder ein Editor kann das Licht in die Szene backen.

    Was ich immer beim Backen gedacht habe, war vielleicht eine einfachere Version: Im Grunde genommen nimmt der Editor nur die Texturen von allem um das Licht herum und berechnet den Effekt des Lichts auf diesen Texturen (hellt sie auf, färbt sie vielleicht, schattiert usw.) und speichert sie als zu verwendende Ersatztexturen. Alle Texturen um das „Licht“ sehen also so aus, als hätten sie einen Lichtstich auf sie, aber bei Laufzeit gibt es tatsächlich kein Licht aus rechnerischer Sicht; Im Wesentlichen handelt es sich um eine optische Täuschung.

    Die Einheit scheint jedoch eine -Lichtkarte zu erzeugen. Dies ähnelt dem obigen Begriff , aber die gebackene Beleuchtung wird separat beibehalten, anstatt die zugrunde liegende Textur zu ändern, und ich gehe davon aus, dass ein Shader die beiden zur Laufzeit zusammenführt. Dies hätte den Vorteil, den Vorteil von gekachelten Texturen (dh geringer Speicherbedarf) beizubehalten, da dies nicht der Fall wäre Lassen Sie das Licht direkt in sie einbrennen, damit sie gekachelt bleiben können, und der Shader wäre sehr leicht, insbesondere im Vergleich zur Behandlung des Lichts als dynamisch.

    Ein Licht muss offensichtlich statisch sein, damit dies funktioniert. Das heißt, Sie können es während des Spiels nicht bewegen, da das Licht in die Texturen eingebrannt wurde. Außerdem wird bei allen dynamischen Objekten im Raum (wie dem Spielercharakter) kein Licht auf sie scheinen, so dass dies erforderlich ist Dies ist eine Ausnahme, bei der das Licht für dynamische Objekte gerendert wird, jedoch nicht für die statische Szenerie (neu) gerendert wird.

    Kommentare

    • Und Die meiste Zeit, da die Beleuchtung weich ist, kann die Lichtkarte in einer niedrigeren Auflösung als die übrigen Texturen gespeichert werden, sieht immer noch gut aus, rendert jedoch schneller und benötigt weniger Speicher.
    • +1, das ist Eine wirklich schöne und ausführliche Antwort, danke. 🙂

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.