Light Pre-Pass (oder Deferred) Pipeline Bug

8

Ich und einige Leute schaffen ein einfaches Spiel in XNA 4.0 (ja, ich weiß, dass es nicht mehr von MS unterstützt wird, aber es ist eine Anforderung, die von unseren Tutoren gestellt wird). Vor kurzem schrieb ich Light-Pre Pass Renderer basierend auf J. Colunas eins . Es funktionierte gut, bis wir Meshes mit Bump- und Albedo-Maps hinzufügten. Jetzt haben wir seltsame Fehler. Hier sind die Beispiele angegeben:

Ich habe keine Ahnung, was diese Artefakte verursacht (grün / lila). 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 es mich wissen, ich werde versuchen, es zu klären.

    
Shot 06.06.2013, 11:17
quelle

1 Antwort

2

Sie haben keinen Code angegeben, daher muss ich meine Antwort nur auf die Beobachtung stützen.

Ich glaube, das Problem liegt an umgedrehten Normalen, die mit der Erstellung der Objektgeometrie zusammenhängen.

Wenn Sie Bild 3 genau betrachten, werden Sie feststellen, dass das violette Artefakt auch auf der linken Seite des Objekts zu sehen ist, 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 Kantenspitzen gedreht und sie so verschoben, dass sie die äußere Form überlappen.

Wenn ich versuchen werde, es irgendwie zu illustrieren, würde es ungefähr so ​​aussehen:

Originalobjekt:

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

vs. Gebasteltes Objekt:

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

Wo das '+' in 'x' konvertiert wird - was bedeutet, dass der Scheitelpunkt gedreht und weiter innerhalb der Form verschoben wurde. 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 man die Form dreht Symmetrisch bedeutet, dass Sie ein breiteres Artefakt auf der rechten Seite des Objekts und schmaler auf der linken Seite sehen werden - aber wenn Sie die Form umdrehen (um Y 180 Grad drehen), werden die Phänomene mitdrehen.

Eine weitere Möglichkeit, dies zu testen, besteht darin, eine neue einfache Boxform in die Szene einzufügen und zu prüfen, ob das Artefakt verschwunden ist.

    
G.Y 29.07.2013, 01:14
quelle

Tags und Links