OpenGL blending


#1

Witam, mam problem, a właściwie nie wiem czemu tak się dzieje - mam wygenerowany sześcian z nałożonymi teksturami i napisałem przezroczystość do tego jednak gdy obracam ten sześcian to raz widzę ścianę “tylnia” a raz nie - jakieś pomysły? I jakieś rozwiązania tego problemu?


#2

Może chodzi o wektory normalne?
http://www.opengl-tutorial.org/beginners-tutorials/tutorial-8-basic-shading/#normals

Dawno nie bawiłem się tak niskopoziomowo, ale to mi przypomina problem powstający gdy się je źle zdefiniuje


#3

Cieniowanie mi działa poprawnie więc, prawdopodobnie o nie to - z resztą zmieniłem i tez nie działa.


#4

dobrze
moze to cos pomoże - wrzuciłem ss jak to wygląda - tak to powinno wygładac


#5

zle a po obruceniu o 180 stopni wygłada tak


#6

@ByerN niskopoziomowo :smiley:

Masz włączony z-test i rysujesz ściany sześcianu bez sortowania po głębokości. Dla potwierdzenia ustaw dla sześcianu glDepthMask(GL_FALSE). Zobaczysz wtedy tylne ściany ale blendowanie nie będzie poprawne.

Generalnie jeżeli używasz standardowej funkcji mieszającej (SRC_ALPHA, ONE_MINUS_SRC_ALPHA) i chcesz mieć z-test włączony musisz zadbać o rysowanie obiektów w odpowiedniej kolejności - od najdalszego do najbliższego. Powodzenia


#7

Dzięki wielkie za pomoc