2010-10-26 13 views
8

Im przy użyciu glColor4f(1.0f, 1.0f, 1.0f, alpha_); ustawić przezroczystość dla prymitywów, które rysuję.Pobierz bieżący kolor

Chciałbym jednak móc odczytać aktualną wartość alpha opengl. Czy to jest możliwe?

np.

float current_alpha = glGetAlpha(); //??? 
glColor4f(1.0f, 1.0f, 1.0f, alpha_*current_alpha); 

Odpowiedz

10

Albo zapisać ostatnią wartość alfa wysłaną za pomocą glColor4f, albo użyć:

float currentColor[4]; 
glGetFloatv(GL_CURRENT_COLOR,currentColor); 
1

Czy oznacza wartość alfa fragmentu jesteś na rysunku (co tłumaczyłoby, dlaczego chcesz alpha_ * current_alpha)? Jeśli tak, pamiętaj, że odczytywanie fragmentu z potoku to drogie.

Jeśli renderujesz z powrotem na wierzch, rozważ użycie sztuczki GL_SRC_ALPHA + GL_ONE_MINUS_SRC_ALPHA.

+0

Dziękuję. Próbuję zrobić coś podobnego. – ronag

Powiązane problemy