2013-06-06 16 views
8

Ja i kilku facetów tworzymy prostą grę na XNA 4.0 (tak, wiem, że nie jest już obsługiwana przez stwardnienie rozsiane, ale wymaga tego nasz opiekun). Ostatnio napisałem Light-Pre Pass Renderer na podstawie J. Coluna's one. Wszystko działało dobrze, dopóki nie dodaliśmy siatki z mapami albonu i nierówności. Teraz mamy dziwny błąd. Tutaj podane są przykłady:Light Pre-Pass (lub Odroczony) Pipeline Bug

Renderer bug Renderer bug Renderer bug

I dont't mają pojęcia co powoduje te artefakty (zielony/fioletowy). Czasami podobne artefakty pojawiają się na podłodze i są czarne. Czy masz pojęcie, co może być problemem w rendererze?

Jeśli mój wpis nie jest wystarczająco jasny, daj mi znać, spróbuję go wyjaśnić.

+0

Trudno powiedzieć bez kodu. Zgaduję, że twoja rozproszona mapa jest całkowicie szara?To prawdopodobnie problem z oświetleniem. Spróbuj wyłączyć niektóre lekkie komponenty (ambient, diffuse, specular) i sprawdź, gdzie jest problem. –

+0

Widoczne bufory (w lewym górnym rogu) to odpowiednio: bufor normalny, bufor głębi i światła. Spróbuję włączyć lekkie komponenty, jak tylko wrócę do domu. Dzięki za pomysł :) – Shot

+0

Wyłączenie lekkich elementów nie pomogło. Nadal otrzymuje te same artefakty. Zauważyłem, że te artefakty zaczęły pojawiać się po tym, jak jeden z moich kolegów zmienił kamerę, ale pracował tylko nad swoją pozycją i niczym więcej ... – Shot

Odpowiedz

2

Nie podałeś żadnego kodu, więc muszę oprzeć swoją odpowiedź tylko na obserwacji.

Uważam, że problem dotyczy odwróconych normaliów związanych z tworzeniem geometrii obiektu.

Jeśli przyjrzysz się bliżej obrazowi nr 3 - zauważysz, że purpurowy artefakt można zobaczyć również po lewej stronie obiektu, ale w węższym miejscu. zgodnie z tym jest to teoria, którą oferuję:

Twój animator stworzył obiekt i nie lubił ostrych krawędzi - więc aby się ich pozbyć, obrócił wierzchołki krawędzi i przesunął je w taki sposób, aby zachodzą na zewnątrz.

Jeśli spróbuję zilustrować go jakoś to będzie wyglądać mniej więcej tak:

oryginalny obiekt:

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

vs. majstrował obiektu:

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

Jeżeli „+” jest zamienione na „x” - co oznacza, że ​​wierzchołek był obracany oraz przemieszczany dalej do wewnątrz formy. to prawdopodobnie odwróciło normy, które wpływają na odbicie światła od obiektu.

Powód, dla którego widzimy na obrazku # 3 wąski obszar z artefaktem po lewej stronie jest prawdopodobnie taki, że artysta obrócił wszystkie narożniki w tym samym czasie - a jeśli tak jest, to wierzę, że jeśli obrócisz kształt, zjawisko bądź symetryczny, co oznacza, że ​​zobaczysz ponownie szerszy artefakt po prawej stronie obiektu i węższy po lewej stronie - ale jeśli odwrócisz kształt (obrócisz o 180 stopni), zjawisko to obróci się.

Inną opcją sprawdzenia tego będzie umieszczenie nowego prostego kształtu skrzynki w scenie i sprawdzenie, czy artefakt zniknął.