Jump to content
Unity Insider Forum

9 verschiedene Texturen in einer 3 x 3 Aufteilung auf einem Shader


stevensen

Recommended Posts

ja hallo,

 

im Grunde, soll es sowas sein wie man es manchmal bei solchen Überwachsungssystemen sieht. Quasi eine Übersicht von z.b. mehreren Kameras wo man dann eine bestimmte auswählen und auf Fullscreen schalten kann. Ich habe jetzt 4 Cameras(später 9) die eine Szene beobachten und ihr Aufnahme zu einem Shader schicken. Das funktioniert soweit, allerdings liegen die Aufnahmen über den ganzen UV-Raum des Shaders. jetzt müsste ich die noch kacheln. Und da hängts.

 

float4 col1 = tex2D(_View01, i.uv);

float4 col2 = tex2D(_View02, i.uv);

float4 col3 = tex2D(_View03, i.uv);

float4 col4 = tex2D(_View04, i.uv);

 

Dann multipliziere das und gib alles mit Return zurück. ich müßte die Uv wahrscheinlich irgendwie dritteln.

Eine Idee dazu würde vielleicht schon helfen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dachte ich mir fast. Tu den Grafikkarten der Welt einen Gefallen und mache das nicht auf einer Oberfläche, sondern baue dir neun Oberflächen :)

 

Wenn du alle Vertices, die deine Szene hat, in einen Shader packst und dann nur ein Bild damit malst, bist du nicht schneller im Vergleich zum normalen Ansatz, deine Frament Shader immer wieder auszuführen. Grafikkarten sind stark darauf optimiert, das zu können, was Spieleengines von ihnen wollen. Geize darum nicht mit Draw Calls oder Polygonen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist natürlich ne Idee ... Wenn ich mit verschiedenen Screen-Auflösungen hantiere müßte ich diese 9 Planes im Raster auch entsprechend verändern? Außerdem bräuchte ich diese 9 Ansichten immer Fullscreen, also müßte ich sie an meine MainCamrea linken oder?

Nur der vollständighalber komme ich nochmal auch den Shader zurück. Könnte ich die Texturen (wenn ich wüßte wie) auch einen Imagefx-Shader machen, den ich dann mit ensprechend Material auf die Main-Kamera schmeiße?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist natürlich ne Idee ... Wenn ich mit verschiedenen Screen-Auflösungen hantiere müßte ich diese 9 Planes im Raster auch entsprechend verändern? Außerdem bräuchte ich diese 9 Ansichten immer Fullscreen, also müßte ich sie an meine MainCamrea linken oder?

Auf die eine oder andere Weise ja, aber das ist wirklich nicht schwierig zu machen und kostet halt auch keine besondere Performance.

Zum Beispiel kannst du alle Planes einem Objekt unterordnen, und dieses Objekt müsste dann nur noch auf der X-Achse entsprechend des Seitenverhältnisses skaliert werden. Je nach dem, was du da vorhast, könnte auch eine einfache UI sinnvoll sein.

 

Nur der vollständighalber komme ich nochmal auch den Shader zurück. Könnte ich die Texturen (wenn ich wüßte wie) auch einen Imagefx-Shader machen, den ich dann mit ensprechend Material auf die Main-Kamera schmeiße?

Klar, mit Shadern kann man heutzutage alles machen. Die Frage ist nur immer, wie sinnvoll das ist ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...