Je suis un peu nouveau sur OpenGL. Je l'ai utilisé pour des choses extrêmement simples comme le rendu de textures (2D) et de transformations de base MODELVIEW, mais maintenant je veux modifier les valeurs alpha à la mode similaire à la pile MODELVIEW.OpenGL Alpha Stack
J'ai fondamentalement une classe glTex, qui restitue une texture à un certain point après l'application de certaines transformations. (Traduction, Rotation, Alpha.) Maintenant, cela fonctionne bien pour des choses simples comme des images simples, mais si je veux dessiner quelque chose d'un peu plus complexe, disons une simple grille. Je traduirais à la position requise de la grille, et ensuite dessiner chaque partie de celui-ci. Cela fonctionne bien car j'appelle généralement glPushMatrix() et glPopMatrix() avant et après le rendu d'une texture.
Le problème se pose lorsque je veux contrôler le alhpa de la grille. Supposons que je veux le rendre à 0,50 alpha. Je pourrais passer en revue chacun de ses composants et changer leurs valeurs alpha, mais cela signifie que si certaines parties de la grille sont faites de plus petites parties, elles devraient faire de même ou si les petites parties elles-mêmes avaient des valeurs alpha je le ferais avoir à calculer une toute nouvelle alpha, ce qui se transforme en un processus très long.
Y a-t-il un moyen d'obtenir une pile alpha comme celle de MODELVIEW? Ou y a-t-il une meilleure façon de s'y prendre?
Exemple - La grille est rendue à 0,5 alpha. Si elle a un composant qui est normalement rendu à 0,25 alpha, il sera maintenant rendu à .125 alpha
Btw, j'ai le glBlendFunc mis à GL _SRC _ALPHA et GL _ONE _MINUS _SRC _ALPHA.
Pas exactement ce que je cherchais, mais aussi près que possible, je suppose. Merci :) –
Je sais, mais il n'y a pas d'autre moyen de le faire que de le coder soi-même. – karx11erx