Sie können die Komponente Reflection Probe zu jedem Objekt in einer Szene hinzufügen, aber es ist Standard, jede Probe zu einem separaten leeren GameObject hinzuzufügen.
Der übliche Workflow sieht folgendermaßen aus:
Um die Reflexionen zu sehen, benötigen Sie außerdem mindestens ein reflektierendes Objekt in der Szene. Ein einfaches Testobjekt kann wie folgt angelegt werden:
Die Kugel kann nun die von den Proben enthaltenen Reflexionen anzeigen. Eine einfache Anordnung mit einer einzigen Probe genügt, um die grundsätzliche Wirkung der Reflexionen zu erkennen.
Schließlich müssen die Proben gebrannt werden, bevor die Reflections sichtbar werden. Wenn Sie die Option Automatische Generierung im Fenster Beleuchtung aktiviert haben (dies ist die Standardeinstellung), werden die Reflexionen aktualisiert, wenn Sie Objekte in der Szene positionieren oder ändern, obwohl die Reaktion nicht sofort erfolgt. Wenn Sie das automatische Baken deaktivieren, müssen Sie auf den Button Baken im Reflection Probe-Inspektor klicken, um die Proben zu aktualisieren. Der Hauptgrund für die Deaktivierung des automatischen Bakens ist, dass der Baking-Vorgang für eine komplizierte Szene mit vielen Proben einige Zeit in Anspruch nehmen kann.
Positionierung der Proben.
Die Position einer Probe wird in erster Linie durch die Position ihres GameObjects bestimmt und so können Sie das Objekt einfach an die gewünschte Stelle ziehen. Nachdem Sie dies getan haben, sollten Sie die Wirkungszone der Probe festlegen – dies ist ein axis-aligned Box Shape, deren Abmessungen durch die Eigenschaft Box Size festgelegt werden. Sie können die Größenwerte direkt einstellen oder den Größenbearbeitungsmodus im Inspektor aktivieren und die Seiten der Box in der Szenenansicht ziehen. Die Zonen des gesamten Probensatzes sollten alle Bereiche der Szene abdecken, in denen ein reflektierendes Objekt passieren könnte.
Sie sollten Proben in der Nähe von großen Objekten in der Szene platzieren, die merklich reflektiert werden. Bereiche um die Mitte und die Ecken der Wände sind gute Kandidaten für Proben. Kleinere Objekte benötigen möglicherweise Proben in der Nähe, wenn sie eine starke visuelle Wirkung haben. Zum Beispiel würden Sie wahrscheinlich wollen, dass die Flammen eines Lagerfeuers reflektiert werden, auch wenn das Objekt selbst klein und ansonsten unbedeutend ist.
Wenn Sie Proben an allen geeigneten Stellen haben, müssen Sie dann die Wirkungszone für jede Probe definieren, was Sie mit der Eigenschaft Box Size wie oben beschrieben tun können. Eine Wand kann auf dem größten Teil ihrer Länge nur eine einzige Probenzone benötigen, aber die Zone kann in der Richtung senkrecht zur Wand relativ schmal sein. Dies würde bedeuten, dass die Wand nur von Objekten reflektiert wird, die sich ziemlich nahe an ihr befinden. Ein offener Raum, dessen Aussehen von Ort zu Ort wenig variiert, kann oft mit einer einzigen Probe abgedeckt werden. Beachten Sie, dass die Zone eines Messtasters auf die Hauptweltachsen (X, Y und Z) ausgerichtet ist und nicht gedreht werden kann. Dies bedeutet, dass manchmal eine Gruppe von Proben entlang einer einheitlichen Wand benötigt wird, wenn diese nicht achsparallel ausgerichtet ist.
Standardmäßig ist die Wirkungszone einer Probe auf ihren Aussichtspunkt zentriert, aber dies ist möglicherweise nicht die ideale Position für die Aufnahme der Reflection-Cubemap. Beispielsweise kann sich die Probenzone für eine sehr hohe Wand in einiger Entfernung von der Wand erstrecken, aber Sie möchten vielleicht, dass die Reflection von einem Punkt in der Nähe der Wand und nicht in der Mitte der Zone erfasst wird. Sie können optional einen Offset zum Ansichtspunkt hinzufügen, indem Sie die Eigenschaft Box Offset verwenden. Damit können Sie den Aussichtspunkt an beliebiger Stelle innerhalb der Effektzone oder auch außerhalb der Zone platzieren.
Überlappende Probezonen.
Es wäre schwierig, die Zonen benachbarter Reflectionsproben ohne Überlappung zu positionieren, was glücklicherweise nicht notwendig ist. Es bleibt jedoch die Frage, welche Probe in den Überlappungsbereichen verwendet werden soll. Standardmäßig berechnet Unity den Schnittpunkt zwischen den Begrenzungsrahmen des reflektierenden Objekts und jeder der überlappenden Probezonen. Die Probe mit dem größten Schnittvolumen mit dem Begrenzungsrahmen ist diejenige, die ausgewählt wird.
Sie können die Berechnung über die Wichtigkeitseigenschaften der Proben ändern. Proben mit einem höherem Wichtigkeitswert haben Vorrang vor solchen mit geringerer Wichtigkeit innerhalb von Überlappungszonen. Dies ist z.B. nützlich, wenn Sie eine kleine Probenzone haben, die sich vollständig innerhalb einer größere Zone befindet (d.h. der Schnittpunkt des Begrenzungsrahmens des Zeichens mit der umgebenden Zone könnte immer größer sein, so dass die kleine Zone niemals verwendet würde).
Mischen.
Um die Überblendung der Reflectionsprobe zu aktivieren, navigieren Sie zu Grafikeinstellungen > Ebeneneinstellungen. Wenn die Überblendung aktiviert ist, wird Unity allmählich die Cubemap der einen Probe ausblenden und die der anderen, wenn das reflektierende Objekt von einer Zone in die andere übergeht. Dieser allmähliche Übergang vermeidet die Situation, dass ein markantes Objekt plötzlich in die Reflection „springt“, wenn ein Objekt die Zonengrenze überschreitet.
Die Überblendung wird über die Reflection-Probe-Eigenschaft des Mesh-Renderers gesteuert. Es stehen vier Mischoptionen zur Verfügung:
Wenn die Proben die gleichen Bedeutungswerte haben, wird das Mischgewicht für eine bestimmte Probezone berechnet, indem deren Schnittpunkt (Volumen) mit dem Begrenzungsrahmen des Objekts durch die Summe der Schnittpunkte aller Proben mit dem Rahmen geteilt wird. Wenn die Box beispielsweise die Zone der Probe A um 1.0 Kubikeinheiten und die Zone der Probe B um 2.0 Kubikeinheiten schneidet, dann sind die Mischungswerte:
Mit anderen Worten, die Mischung enthält 33% der Reflection der Probe A und 67% der Reflection der Probe B.
Die Berechnung muss etwas anders gehandhabt werden, wenn eine Probe vollständig in der anderen enthalten ist, da sich die innere Zone vollständig mit der äußeren überlappt. Wenn sich der Begrenzungsrahmen des Objekts vollständig innerhalb der inneren Zone befindet, ist das Mischgewicht dieser Zone 1.0 (d.h. die äußere Zone wird überhaupt nicht verwendet). Wenn sich das Objekt teilweise außerhalb der inneren Zone befindet, wird das Schnittvolumen seines Begrenzungsrahmens mit der inneren Zone durch das Gesamtvolumen des Rahmens geteilt. Wenn beispielsweise das Schnittvolumen 1.0 Kubikeinheiten und das Volumen der Begrenzungsbox 4.0 Kubikeinheiten beträgt, ist das Mischgewicht der inneren Probe 1.0 / 4.0 = 0.25. Dieser Wert wird dann von 1.0 abgezogen, um das Gewicht für die äußere Probe zu erhalten, das in diesem Fall 0.75 beträgt.
Wenn eine an der Mischung beteiligte Probe einen höheren Wert hat als eine andere, übersteuert die wichtigere Probe die andere in der üblichen Weise.