[XNA] Overlay-Problem!

  • C#
  • .NET (FX) 4.0

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    [XNA] Overlay-Problem!

    Liebes Forum,
    ich habe ein 3d-Planetensystem im Rahmen eines Schulprojekts programmiert.
    Nur leider besteht die Problematik darin, dass exemplarisch die Sonne von den Planeten übermalt wird.

    Ich bin jedoch gezwungen, die Sonne als erstes zu rendern, weil ich ein Bloom-Effekt auf diesen anwende(Post-Processing-Shader).

    Im Bild wird die Problemstellung deutlich(Dateianhang);

    Kennt jemand ein Kompromiss?

    Liebe Grüße aus Bayern,
    Elliot.
    Bilder
    • CMS.png

      176,18 kB, 1.600×854, 273 mal angesehen
    Und Gott alleine weiß alles am allerbesten und besser.
    Guten Abend,
    danke!

    Es hat geholfen.. ich ordne die Liste nach Distanz, sodass nahe Objekt zuerst gerendert werden..

    Einziges Problem besteht nun darin, dass ich ein Post-Processing-Effekt (Bloom) für die Sonne verwende.
    Konsequenterweise muss ich die Sonne als Erstes malen.

    Dadurch erfolgt jedoch das "Übermalen" der Sonne..

    Kennt jemand einen Kompromiss?

    Es grüßt,
    Const
    Und Gott alleine weiß alles am allerbesten und besser.
    Render die Szene komplett einmal auf eine Textur, mit Informationen, ob auf dem jeweiligen Pixel der Bloom Effekt angewendet werden soll(float Textur, z.B. Werte > 1 bekommen den Bloom angewendet) dann rendere alles in der richtigen Reihenfolge und lass dann deinen PostProcessing step über das bereits fertige Bild laufen(natürlich mit deiner zuvor erstellten Textur, die beinhaltet, wo der Bloom angewendet wird und wo nicht)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Anfangs war dies auch meine Idee.. ich hab mir gedacht, ich setze die Alpha-Werte einiger Texturen so, auf diese dann, wenn sie einen spezifischen Wert haben, der
    gaußsche Filter gar nicht angewandt wird.

    Wie hast du dir das vorgestellt?

    Gruß.
    Und Gott alleine weiß alles am allerbesten und besser.