Autor Wątek: DebugDraw  (Przeczytany 671 razy)

Offline moonshield

  • Użytkownik
    • ::devBlog

# Grudzień 10, 2016, 20:49:18
Hej.

Chciałbym do renderera podpiąć DebugDraw - malowanie punktów, lini czy innych czworokątów za pomocą oddzielnego, prostego shadera. Dodatkowo mam zaimplementowane oświetlenie oraz obsługę obiektów przezroczystych. Tutaj jednak jest problem - gdzie zawołać malowanie debugowe? Jeśli zrobię to przed namalowaniem sprite'ów z alfą (wyłączone pisanie do głębi), całość będzie poprawnie posortowana po Z, ale oświetlona. Z drugiej strony zaś namalowanie wszystkiego na końcu spowoduje, że nie będzie problemów z oświetleniem, ale sortowanie po Z może już nie działać.

Ktoś ma pomysł jak to rozwiązać?

msh :)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Mergul

  • Użytkownik

# Grudzień 10, 2016, 21:22:12
OpenGL? Jak tak to jaka wersja? Jaka technika rendering-u? Bo ciężko wywnioskować czemu ma występować opisany problem ;) I jak rozumiem problem będzie z tym ze będą oświetlone linie z debug-u? Albo że będą przysłaniały sprite'y?

Offline moonshield

  • Użytkownik
    • ::devBlog

# Grudzień 10, 2016, 21:40:03
OpenGL, 3.3, forward lighting.

Tak, problem będzie z tym, że linie będą oświetlone lub namalowane w złej kolejności w stosunku do przezroczystych sprite'ów (podczas malowania przezroczystych obiektów wyłączam pisanie do z buffora).

msh :)

//edit:
dobra, faktycznie nie ma problemu (forum twym pluszowym misiem!), bo to osobny shader będzie ;)
« Ostatnia zmiana: Grudzień 10, 2016, 22:01:38 wysłana przez moonshield »

Offline Mergul

  • Użytkownik

  • +1
# Grudzień 10, 2016, 22:22:36
dobra, faktycznie nie ma problemu (forum twym pluszowym misiem!), bo to osobny shader będzie ;)

Właśnie to mnie zastanawiało :P ;) Cieszę się, że rozwiązałem problem :D

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

  • +1
# Grudzień 11, 2016, 20:06:02
Moim zdaniem nie ma większego sensu poddawanie tych debugowych informacji oświetleniu. Pytanie, czy powinny podlegać Z-testowi, czy rysować się niezależnie od zasłaniania z geometrią nieprzezroczystą? A może dać to do wyboru?

Zobacz, jak to ma zrobione Unity: https://docs.unity3d.com/ScriptReference/Debug.html Klasa Debug ma metody DrawLine, DrawRay i w nich możesz podać kolor linii oraz flagę, czy ma być włączony Z-test.

Offline moonshield

  • Użytkownik
    • ::devBlog

# Grudzień 11, 2016, 21:09:40
Moim zdaniem nie ma większego sensu poddawanie tych debugowych informacji oświetleniu.

Właśnie o to chodzi, by nie były oświetlone.

Zobacz, jak to ma zrobione Unity...
Faktycznie, ciekawy featureset. Zainteresuje się tym z pewnością. Dzięki! :)