pierwszy raz tutaj. Dzisiaj siedzę i uczę się OpenGL. Ale natknąłem się na pytanie, na które nie mogę znaleźć odpowiedzi. Zastanawiam się, dlaczego testowanie głębokości wydaje się być niezgodne z półprzezroczystymi obiektami w OpenGL. Dokumentacja sugeruje, że należy wyłączyć testowanie głębokości, a następnie narysować obiekty w kolejności odwrotnej, a mieszanie będzie działać poprawnie.Testowanie głębokości Z w OpenGL
Ale dlaczego OpenGL nie może użyć tego samego testu głębokości, który zawsze ma na celu ustalenie, co jest najdalej w kolejności odwrotnej odległości i zrobić to za Ciebie? Czy jest to tylko ograniczenie struktury, czy ma to coś wspólnego z tym, co możesz zrobić wydajnie w sprzęcie graficznym, czy coś w tym stylu?
Po prostu zastanawiam się. Mam nadzieję, że ktoś tutaj da się wyjaśnić.
Zastanawiam się, dlaczego to zostało przegłosowane, ponieważ jeśli używałeś OpenGL, tak jak on sugerował, wszystko rysowane po twoim przezroczystym obiekcie, ale za nim, całkowicie zignoruje przezroczysty obiekt, wyraźnie nieprzeznaczony. – Blindy
To jest sedno - rysujesz przezroczyste elementy na końcu, z włączonym testowaniem głębokości, ale zapisywanie głębokości jest wyłączone. W ten sposób przezroczyste rzeczy są nadal zasłaniane przez nieprzezroczyste przedmioty, które są przed nim. –
Rysujesz przezroczyste obiekty na końcu, z powrotem na przód. Zakładałem, że już to wiedział, skoro wymienił kolejność odwrotną i pytał o buforowanie z. – David