So verwenden Sie: 1. Projektor erstellen: Erstellen Sie ein leeres GameObject und fügen Sie dann die Projektorkomponente aus Komponente hinzu. Sie können auch Paket->Projektor importieren, um das Projektorpaket zu importieren.

Projektorprinzip
Der Projektor kann ein Material auf alle Objekte innerhalb des festgelegten Kegelstumpfs projizieren. Enthält normalerweise zwei Kartencookies und einen Falloff. Cookie ist das projizierte Muster, und die Funktion von Falloff besteht hauptsächlich darin, das Alpha der Projektion, also hell und dunkel, basierend auf der Entfernung zu bestimmen. Die linke Seite von Falloff ist weiß mit einem Alpha-Wert von 1, was der hellsten Projektion entspricht, wenn die Entfernung am nächsten ist. Die rechte Seite ist nahezu schwarz mit einem Alpha-Wert von 0, was bedeutet, dass die Projektionsentfernung größer wird Darüber hinaus wird die Projektion allmählich transparenter oder sogar unsichtbarer.

【Erreichbar】
0 Zeichenauswahlöffnung
1 Gewöhnlicher Punktschatten (Blob-Schatten)
2 Gefälschter dynamischer Schatten (Gefälschter dynamischer Schatten)
3 Lichtprojektion
4 Projektor (je nach Materialtextur, Dies kann ein Bild, ein Video oder die von einer anderen Kamera gesehene Szene sein Fügen Sie die Projektorkomponente aus der Komponente hinzu, wie unten gezeigt. Sie können auch „Paket importieren“ > „Projektor“ wählen, um das Projektorpaket zu importieren. Der Paketinhalt ist wie folgt
Zwei: Hinweise
1. Stellen Sie sicher, dass „Cookie Texture“ auf „Clamp“ eingestellt ist. „Cookie Texture“ muss die Option „Border Mipmaps“ aktivieren oder deaktivieren Mipmap direkt
3.FallOff
Ob orthografisch oder nicht.
Wenn FallOff nicht verwendet wird, werden die Cookies mit dem hellsten Alpha von 1 projiziert, und zwar in beide Richtungen des Frustrums, was den Effekt der „doppelten Projektion“ verursacht, den wir nicht sehen möchten. Wenn Sie die Falloff-Karte verwenden, die im Systempaket enthalten ist. Der Schatten verblasst mit der Entfernung.
【Beispieldemonstration】
Beispiel 0: Die Öffnung unter den Füßen der Figur
Der vom Projektor verwendete Shader ist wie folgt, und das Skript kann verwendet werden, um die Drehung des Projektors zu steuern.
Shader „Custom/Circle“ {
Properties {
_ShadowTex ("Cookie", 2D) = "gray" { TexGen ObjectLinear }
}
Subshader {
Tags { "RenderType"="Transparent-1" }
Pass {
ZWrite Off
Nebel { Farbe (1, 1, 1) }
AlphaTest Größer 0
ColorMask. RGB
Blend DstColor Zero
SetTexture [_ShadowTex] {
kombiniere Textur, Textur
Matrix [_Projector]
}
}
}
}
或者用Vertex&Fragment
Shader "Custom/Circle" {
Properties {
_ShadowTex ("Cookie", 2D) = "" { }
}
Subshader {
pass {
ZWrite off
Blend DstColor One
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _ShadowTex;
float4x4 _Projector;
struct v2f {
float4 pos:SV_POSITION;
float4 texc: TEXCOORD0;
};
v2f vert(appdata_base v)
{
v2f O; mul(_Projector,v.vertex);
return
o; }
float4frag(v2fi):COLOR
{
float4 c=tex2Dproj(_ShadowTex, i.texc);
returnc;
ENDCG }// Endpass
} }
Beispiel 1: Fügen Sie einen gewöhnlichen Punktschatten (Klecksschatten) unter dem Charakter hinzu. Denken Sie daran, die Ebene des Charakters zur Ebene „Ignorieren“ in den Projektoreinstellungen hinzuzufügen.
Shader „Projektor/Multiplizieren“ {
Eigenschaften {
_ShadowTex („Cookie“, 2D) = „gray“ { TexGen ObjectLinear }
_FalloffTex („FallOff“ , 2D) = „weiß“ { TexGen ObjectLinear
} }
Subshader {
Tags { "RenderType"="Transparent-1" }
Pass {
ZAbschreiben
Nebel { Farbe (1, 1, 1) }
AlphaTest Größer 0
ColorMask RGB
Blend DstColor Zero
Offset -1, -1
SetTexture [_ShadowTex] {
kombiniere Textur, EINS – Textur
Matrix [_Projector]
}
SetTexture [_FalloffTex] {
constantColor (1 ,1,1,0)
Vorheriges kombinieren Lerp-Konstante (Textur)
}}}2 Pseudodynamischer Schatten (Gefälschter dynamischer Schatten) besteht darin, 3d Max oder Maya oder Unity zu verwenden, um zuerst den der Animation entsprechenden Schatten zu backen und ihn in einen Sequenzrahmen umzuwandeln. Anschließend erstellen Sie mit dem Material des Projektors die entsprechende Rahmenanimation. 3 Lichtprojektion
Ersetzen Sie grundsätzlich den schwarzen Blob-Keks durch einen weißen Keks in der Mitte. 4 Projektor (gemäß der Materialkarte kann es sich um ein Bild, ein Video oder die von einer anderen Kamera gesehene Szene handeln) Eine weitere Kamera wird auf RenderTexture gezeichnet, und dann kann das Material des Projektors als RenderTexture verwendet werden 5 3D- oder 2D-Taschenlampe Der Effekt besteht darin, dass die Richtungs- und Reichweiteneinstellungen des Projektors mit der Taschenlampe übereinstimmen. Werfen Sie einfach die Lichtfarbe der Taschenlampe weg.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Projektor in Unity3D. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!