Heim  >  Artikel  >  So verwenden Sie den Projektor in Unity3D

So verwenden Sie den Projektor in Unity3D

小老鼠
小老鼠Original
2024-03-01 09:32:221357Durchsuche

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.

So verwenden Sie den Projektor in Unity3D

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.

So verwenden Sie den Projektor in Unity3D

【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.FallOffSo verwenden Sie den Projektor in Unity3D

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】So verwenden Sie den Projektor in Unity3D

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 {

So verwenden Sie den Projektor in Unity3D


_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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn