• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Opengl - przezroczystość

Object Storage Arubacloud
0 głosów
98 wizyt
pytanie zadane 29 lipca 2022 w C i C++ przez asiek Nowicjusz (120 p.)

Cześć.

Zacznę o wyjaśnienia - nie jestem zawodowym programistą ale coś tam czasem sobie programuję. Piszę aktualnie aplikację w c++ z wykorzystaniem qt, do wyświetlania grafiki używam opengl. Szczerze mówią, nie jestem znawcą opengl i w pewnym sensie skorzystałem z przykładu i przerobiłem go na swoje potrzeby. I teraz do rzeczy. Aplikacja wyświetla pewne elementy (nazwijmy to operacje), gdzie każda operacja składa się z wielu innych elementów (nazwijmy je kształtami) rysowanych jeden za drugim. Kształty w ramach jednej operacji mogą się nakładać. I teraz chciałbym, aby każda operacja wyświetlana była z uwzględnieniem przezroczystości, tak aby widać było nawet te, które się nakładają. Problem w tym, że jak uruchomię przezroczystość, to nie widzę każdej operacji jako osobny element lecz każdy kształt w operacji, bo skoro się nakładają to je widać.

Podam przykład, aby lepiej wyjaśnić o co mi chodzi:

Element czerwony (jasnoczerwony) to jest tak jakby obrys elementu czarnego. Cały obrys to jest ta wspomniana operacja, natomiast jeden obrys składa się z wielu kształtów i własnie widać je tutaj, jak nakładają sie na siebie.

A ja potrzebowałbym, aby w ramach danej operacji kolor był ten sam (czyli bez widocznej przezroczystości miedzy jednym kształtem a drugim) jednak aby operacje między sobą zachowywały przezroczystość.

Czy ktoś mógłby podpowiedzieć jak to uruchomić?

 

Aktualnie robię tak:

glEnable(GL_BLEND);
glDepthMask( GL_FALSE );
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

pętla z ilością operacji
{
pętla z ilością kształtów w operacji
{
Wyświetlenie kształtu.
}
}

glDepthMask( GL_TRUE );
glDisable( GL_BLEND );

 

komentarz 31 lipca 2022 przez rafal.budzis Szeryf (85,260 p.)
W pracy działam z WebGLem który bazuje na OpenGL może byłbym w stanie pomóc z teorią zamiast kodem. Jednak nie rozumiem co chcesz osiągnąć. Możesz narysować w programie graficznym jak to ma wyglądać? Lub opisać przykład wyjaśniając co chcesz narysować bez dziwnych odniesień do "operacji". Napisz wprost co przedstawiają dane i jak masz je przedstawić. Będzie prościej zrozumieć.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 180 wizyt
pytanie zadane 8 maja 2023 w OpenGL, Unity przez RufinB Obywatel (1,830 p.)
0 głosów
0 odpowiedzi 148 wizyt
pytanie zadane 25 kwietnia 2023 w OpenGL, Unity przez RufinB Obywatel (1,830 p.)
+1 głos
0 odpowiedzi 232 wizyt
pytanie zadane 21 lutego 2023 w OpenGL, Unity przez RufinB Obywatel (1,830 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...