Renderuję złożoną scenę w WebGL (180 oczek) odpowiadającą modelowi samochodu (Nissan GTX) car. Jednak kiedy poruszam kamerą, wygląda na to, że brakuje trójkątów far,

Te „brakujące trójkąty” wydają się losowo skakać po powierzchni. Czy może to być problem z buforem głębokości lub normalnym problemem obliczeniowym? Nie mam pojęcia.

Niemniej jednak, jeśli powiększę w pobliżu powierzchni modelu, wszystkie trójkąty są tam zoom.

Czy ktoś miał ten problem? jakieś wskazówki?!

1
Diego 4 czerwiec 2011, 06:14

2 odpowiedzi

Najlepsza odpowiedź

Myślę, że masz siatkę szkieletową bezpośrednio na (lub bardzo blisko) stałej siatce, a to tylko problem z buforem głębokości. Działa podczas powiększania, ponieważ dokładność bufora głębokości jest wyższa w bliskim obszarze frustum oglądania.

Spróbuj dostosować głębokość obszaru ekranu, pracując z przesunięciem wielokąta (lub podobnym Fragment Shaderem modyfikującym gl_FragDepth) podczas renderowania nakładki szkieletowej bezpośrednio na wierzchu siatki bryłowej. Lub po prostu odsuń je dalej w przestrzeni obiektu.

4
Christian Rau 5 czerwiec 2011, 06:58
1
Dziękuję, zmieniłem parametr zNear w macierzy perspektywicznej z 0,1 na 10 i problem zniknął!
 – 
Diego
6 czerwiec 2011, 05:07

Możesz mieć rację, gdy podejrzewasz problem z buforem głębi — fakt, że odległość od kamery wpływa na rzeczy, sugeruje, że może to być problem z precyzją bufora. Sprawdź odpowiedź na to pytanie dla możliwego rozwiązania.

1
Community 23 maj 2017, 15:01