Jump to content
Unity Insider Forum

Kamera Reihenfolge?


Kojote

Recommended Posts

Hallo!

Ich habe mir heute vormittag ein Asset gegönnt um die allseits beliebten Sterne anzuzeigen, die am Ende auf den Spieler warten.

Im Asset soll eine zweite Kamera eingebaut werden, Clear Flag "Depth only" und Culling Mask "UI". Das ganze funktioniert auch recht gut, zumindest so lange bis ich mein Canvas "Gruppe Auswertung" aktiviere. Dieses hat ein halbtransparentes Bild mit dem Menü und den Buttons der Auswertung. Wie man im Bild sieht, werden die silbernen Sterne, bestehend aus Game Objekten und Partikeln vom Canvas verdeckt. Ich hab nun schon den ganzen Nachmittag mit den Einstellungen herum gespielt und in der in der Hirarchie von unten nach oben geschoben, kein Effekt.

Sieht einer den Fehler im Bild?

Grüße Kojote

Falsche Positionierung.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Schau mal auf die Parameter "Allow HDR" und "Allow MSAA", diesen können die "Zusammenarbeit" der beiden Kameras beeinflussen. Ich würde sie für den Anfang bei beiden Kameras gleich setzen, wie genau unterschiedliche Einstellungen "harmonisieren" kann ich dir allerdings nicht sagen, da würde ich auch nur "probieren". Und auch "Occlusion Culling" macht bei deiner Effektkamera nicht viel Sinn. Wenn deine Effektkamera nur Partikel darstellen soll, dann kannst du auch noch den "GUI-Layer" und "Flare-Layer" entfernen. Ebenfalls würde ich prüfen, ob beide Kameras den gleichen "Rendering Path" verwenden (vor allem in Verbindung mit HDR funktioniert Deferred denke ich besser).

Zudem würde ich für deine Effekte einen eigenen Layer definieren z.b. "Effects" und diesen Layer deiner Effektkamera zuweisen. Diesen Layer musst du dann ebenfalls bei deiner Mainkamera herausnehmen! (Weil sonst kann es eben sein, daß deine Effektkamera deine UI darstellt!)

Link zu diesem Kommentar
Auf anderen Seiten teilen

In den normalen Einstellungen wird dein Canvas immer über das Bild der Kamera gerendert. ( afaik ^ )

Was auch Sinn ergibt, weil man normalerweise keine überlagernde Kamera für das GUI verwendet..

Du kannst versuchen dein Canvas 'Render Mode' von 'Screen Space - Overlay' zu 'Screen Space - Camera' zu wechseln und deine 'Main Camera' als 'Render Camera' anzugeben.

Das hat zumindest in meinem kurzen Test funktioniert..

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Mr 3d - habe ich gerade getestet, obwohl meine MainCamera UI rendern soll, verschwindet das GUI, sobald ich es im Canvas ablege.

Habe nun auch eine Lösung gefunden, dazu brauch ich 3 Kameras.

Kamera 1: Main Kamera - Culling Mask ohne Layer UI und ohne Layer Effekt

Kamera 2: UI Kamera - Culling Mask nur mit Layer UI

Kamera 3: Effekt Kamera - Culling Mask nur mit Layer Effekt

Canvas mit Render Mode Screen Space - Camera und als Render Kamera die UI Camera. Layer UI für den Canvas.

Die Sterne bekommen den Layer Effekt

Kameralösung.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Poste mal deine aktuellen beiden Kameraeinstellungen. Hast du einen eigenen Layer "Effects" für deine Sterne gemacht und diesen Layer der Effekt-Kamera zugewiesen (unter "Culling Mask") und den Sternen zugewiesen? Zudem musst du den Layer "Effects" aus deiner Mainkamera herausnehmen.

Zur Theorie:
Deine Mainkamera rendert deine Gameszene & UI. 
Alle Objekte (außer Sterne) in der Szene werden nicht dem Layer Effects zugewiesen.
Einstellungen Mainkamera sind wie folgt:
- Clear Flags Color oder Skybox
- Culling Mask: alle Layer außer "Effects"
- Depth: -1
- GUI Layer ein
(OC ein / HDR & MSAA aus)

Deine Effektkamera rendert nur deine Sterne!
Die Sterne werden nur dem Layer Effects zugewiesen.
Einstellungen Effektkamera sind wie folgt:
- Clear Flags Depth
- Culling Mask: nur Layer "Effects"
- Depth: 0
- GUI Layer & Flare Layer aus
(OC / HDR & MSAA aus)
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die UI-Kamera ist überflüssig. Die UI kann/wird bereits von der Mainkamera gerendert. Der Layer UI ist in der Culling Mask der Mainkamera enthalten.
Wenn alles passt, dann sollten die Sterne nun über der UI dargestellt werden.
Ganz sicher bin ich mir nun auch nicht mehr, ich mache mal ne Testszene *g 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, meine Beschreibung war nur richtig für die alte UI.
Bei der neuen UI regelt man das Verhalten über den Canvas:
- "Screen Space Overlay"
=> Rendert das Canvas (und damit die UI) über alle Kamerabilder.

- "Screen Space Camera"
=> Zugewiesene Kamera rendert das Canvas, "Plane Distance" regelt hier noch einmal den Abstand der UI-Plane zur Renderkamera.
(dies ist eigentlich die Einstellung, wie ich es mir vorgestellt hatte)

Der GUI-Layer an den Kameras zum an- und abwählen regelt denke ich nur die Darstellung der alten UI (OnGUI-Methode etc).

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 36 Minuten schrieb Zer0Cool:

Die UI-Kamera ist überflüssig. Die UI kann/wird bereits von der Mainkamera gerendert. Der Layer UI ist in der Culling Mask der Mainkamera enthalten.
Wenn alles passt, dann sollten die Sterne nun über der UI dargestellt werden.
Ganz sicher bin ich mir nun auch nicht mehr, ich mache mal ne Testszene *g 

Hatte ich auch schon versucht aber er zeigt mir auf einmal kein UI mehr an, obwohl es die Main doch als Layer hat. Probier mal deine Neue Einstellung.

EDIT:

Habs nun noch einmal mit zwei Kameras probiert, er will aus irgend einem Grund im Canvas nicht die Main Kamera haben Mit diesen Einstellungen bekomme ich kein UI anzeigt.

Kamera 2.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, die hatten mit der neuen UI alles geändert. Bei "Screen Space Overlay" spielt eine Kamera überhaupt keine Rolle mehr, die UI wird scheinbar einfach über alles "drübergeklatscht":
In this mode, the Canvas is scaled to fit the screen and then rendered directly without reference to the scene or a camera (the UI will be rendered even if there is no camera in the scene at all). If the screen’s size or resolution are changed then the UI will automatically rescale to fit. The UI will be drawn over any other graphics such as the camera view

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sieht soweit ok aus. Stell mal "Plane Distance" auf 1 oder 2. Im Preview der Mainkamera müsstest du nun die UI bereits sehen!

Hier ein Terrain mit einem blauen Cube ( = der Effekt) und einer UI (Screen Space Camera mit Plane Distance 1) mit einem Button.
2 Kameras wie bei dir beschrieben:
1NSq0R3.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...