Jump to content
Unity Insider Forum

Texturen kombinieren


Alexfedel

Recommended Posts

Es gibt ja die Möglichkeit Texturen mit einem Shader zu kombinieren. Die Form dafür ist im Prinzip wie folgt definiert:

 

SetTexture [_MainTex]
SetTexture [_Mask1] { combine previous - texture }

 

Bei dem Beispiel wird von einer Texture die andere abgezogen. Ich möchte jetzt folgende mathematische Rechnung aus mehreren Texturen erzielen:

 

(Bild1 - Maske1) + (Bild2 - Maske2) + (Bild3 - Maske3)

 

Ich weiß nur nicht wie es im Unity Shader funktioniert. Da man ja immer mit "previous" kombiniert ist doch eine Klammerung wie ich es möchte nicht möglich? Weiß jemand wie es doch zu lösen ist?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nutze "einfach" CG. Dieses ShaderLab-Gedöns führt nicht sonderlich weit. Schau dir einfach mal die späteren Shader-Beispiele in der Doku an. Da kommen dann Teile im Code vor, die mit CGPROGRAM anfangen. innerhalb dieser Teile kann man richtig programmieren... nicht so, wie mit ShaderLab :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Sache mit dem CGPROGRAM kenne ich auch schon. Das Problem, was ich da habe, ist, dass ich nicht auf mehr als 2 UV Datensätze zugreifen kann. In meinem Beispiel habe ich aber im Prinzip 6 Texturen und somit 6 UV Datensätze . Folgendes würde noch z.B. gehen:

 

...
half3 bild1 = tex2D (_Bild1, IN.uv_Bild1).rgb;
half3 maske1 = tex2D (_Maske1, IN.uv_Maske1).rgb;
o.Albedo = bild1-maske1;

 

Aber mehr geht bei Unity nicht, es sei denn es gibt einen anderen Weg, den ich noch nicht gefunden habe?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kann nur empfehlen, dir die Shader, die Unity eingebaut hat, mal anzusehen. Den Quellcode gibt's hier: http://unity3d.com/get-unity/download/archive

 

Da kannst du dir z.B. die Terrain-Shader ansehen - die haben 5 Texturen samt UV-Kanälen.

 

Ich muss aber dazu nochmal fragen: Sicher, dass du eine Maskentextur brauchst? Benutzt du den Alpha-Kanal der "eigentlichen" Texturen bereits?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...