Open GL Python/ Filtre écran
	
	
		Bonjour,
en consultant la page sur le sujet OpenGL/Python du site 
http://www.developpez.net/forums/d12...?highlight=BGE
j'ai un souci pour activer les script démo sur le  GE de Blender 2.65.
Certainement du à une compatibilité de version, mais comment y pallier ?
Voici le code du premier filtre
#Filtre1.py
from bge import logic
 
cont = logic.getCurrentController()
obj = cont.owner
 
filter = cont.actuators['Filter 2D'] # Récupérer l'actionneur pour le filtre 2D
 
# Notez l'utilisation du Python pour le BGE utilise Python, le filtre 2D (ou les shaders 3D) est 
# écrit en C++ et utilise le GLSL. Ainsi, la syntaxe et le style de notre script sont écrits en Python 
# jusqu'à ce que l'on commence à écrire le code du filtre en dessous, dans lequel on passe au C++ 
# (d'où les points-virgules et les commentaires commençants par //).
 
filter.shaderText = """               
    uniform sampler2D bgl_RenderedTexture;
 
    void main(void)
    {
        vec4 color = texture2D(bgl_RenderedTexture, gl_TexCoord[0].st); 
            // Cette ligne récupère la couleur de la texture que le BGE utilise suivant les coordonnées passées
            // on utilise la coordonnée de texture de chaque pixel dans la fenêtre d'affichage avec
            // gl_TexCoord[0]. Je crois que gl_TexCoord[1] contient les coordonnées de texture de
            // chaque pixel (dans la fenêtre d'affichage) après avoir été adapté à la taille de la
            // fenêtre.
 
        gl_FragColor = color.gbra;
            // Cette ligne définit la couleur finale de chaque pixel (gl_FragColor) comme étant le vecteur
            // de couleur, dans lequel r est le canal rouge, b est le bleu, g est le vert et a est le canal
            // alpha. En les permutant circulairement, on peut manipuler la couleur finale de l'écran afin
            // que le rouge devienne  vert, le bleu soit remplacé par le vert et le vert à la place du rouge.
    }
 
"""
 
if not 'init' in obj:
    cont.activate(filter)
    obj['init'] = 1 
        # Le BGE gardera un filtre 2D actif tant que l'actionneur 2D filtre est actif ; notez
        # qu'on ne fait cela que cette fois puisque l'activation du filtre 2D prend un peu de temps, il est
        # donc beaucoup plus efficace de l'activer qu'une seule fois plutôt que de le faire constamment.
uniform sampler2D bgl_RenderedTexture;
 
void main(void)
{
    vec4 color = texture2D(bgl_RenderedTexture, gl_TexCoord[0].st); 
 
    gl_FragColor = color.gbra;
}
#EOF
Souhaitant progresser en script Python/GL, merci à tous pour les infos sur le sujet.