2013-06-06 4 views
8

ich und einige Jungs sind ein einfaches Spiel in XNA 4.0 Erstellen von (ja, ich weiß es nicht von MS mehr unterstützt wird, aber es ist Anforderung von unseren Tutoren gegeben). Kürzlich habe ich Light-Pre Pass Renderer basierend auf J. Coluna's one geschrieben. Es funktionierte gut, bis wir Meshes mit Bump- und Albedo-Maps hinzufügten. Jetzt haben wir seltsame Fehler. Hier sind die Beispiele gegeben:Licht Pre-Pass (oder latent) Pipeline Bug

Renderer bug Renderer bug Renderer bug

ich dont't haben eine Ahnung, was diese Artefakte verursacht (grün/violett). Manchmal treten ähnliche Artefakte auf dem Boden auf und sie sind schwarz. Hast du eine Idee, was das Problem im Renderer sein könnte?

Wenn mein Beitrag nicht klar genug ist, lassen Sie mich wissen, ich versuche, es klären werde.

+0

Es ist schwer, ohne etwas Code zu sagen. Ich nehme an, deine diffuse Karte ist komplett grau?Dann ist es wahrscheinlich ein Beleuchtungsproblem. Versuchen Sie, einige Lichtkomponenten auszuschalten (Umgebung, diffus, Spiegelung) und sehen Sie, wo das Problem liegt. –

+0

Sichtbare Puffer (in der oberen linken Ecke) sind jeweils: Normal-, Tiefen- und Lichtpuffer. Ich werde versuchen, leichte Komponenten zu drehen, sobald ich nach Hause komme. Danke für die Idee :) – Shot

+0

Ausschalten von Lichtkomponenten hat nicht geholfen. Erhält immer noch die gleichen Artefakte. Ich bemerkte, dass diese Artefakte zu erscheinen begannen, nachdem einer meiner Kollegen die Kamera gewechselt hatte, aber er arbeitete nur an seiner Position und sonst nichts ... – Shot

Antwort

2

Sie keinen Code zur Verfügung gestellt haben, damit ich nur meine Antwort auf die Beobachtung stützen.

Ich glaube, das Problem von gedrehten Normalen ist damit zusammen, wie die Objektgeometrie erstellt wurde.

Wenn Sie einen genauen Blick auf dem Bild # nehmen 3 - Sie werden feststellen, dass der lila Artefakt auf der linken Seite des Objekts als auch gesehen werden kann, aber in einem engeren Bereich. Demnach ist das die Theorie, die ich anbiete:

Ihr Animator hat das Objekt erstellt und die scharfen Kanten nicht gemocht - um sie loszuwerden, hat er oder sie die Kantenscheitel gedreht und sie so nach innen bewegt, dass Überlappen Sie die Form außen.

Wenn ich es illustrieren werde versuchen, irgendwie würde es in etwa so aussehen:

ursprüngliche Objekt:

+ ------- +
| ===== |
| ===== |
| ===== |
+ ------- +

vs. gebastelt Objekt:

    -------
| x === x |
| ===== |
| x === x |
    -------

Wo die ‚+‘ auf ‚x‘ umgewandelt wird - was bedeutet der Scheitelpunkt gedreht wurde und weiter bewegt innerhalb der Form. Dies invertierte wahrscheinlich die Normalen, die das von dem Objekt zurückreflektierte Licht beeinflussen.

Der Grund, warum wir in Bild # 3 einen schmalen Bereich mit Artefakten auf der linken Seite sehen, ist vermutlich, dass der Künstler alle Ecken gleichzeitig gedreht hat - und wenn das der Fall ist, glaube ich, dass wenn Sie die Form drehen symmetrisch sein, das heißt, Sie sehen wieder ein breiteres Artefakt rechts vom Objekt und schmaler nach links - aber wenn Sie die Form umdrehen (drehen Sie um Y 180 Grad), werden die Phänomene mitdrehen.

Eine weitere Möglichkeit zu testen, für diese eine neue, einfache Kastenform in die Szene setzen wird und prüfen, ob das Artefakt ist weg.