Filtros personalizados en Blender game engine

Hola de nuevo:
He estado buscando acerca de los filtros personalizados en Blender. He encontrado que el lenguaje a utilizar para su programación se trata de OpenGL lenguaje y que precisamente es similar al lenguaje en C.

Como si no tuviera bastante con Python.

Dejando eso a un lado, encontré un script de ejemplo:

Código:

uniform sampler2D bgl_RenderedTexture;
void main(void)
{
 vec4 texcolor = texture2D(bgl_RenderedTexture, gl_TexCord[0].st);
 float gray = dot(texcolor, RGB, vec3(0.299, 0.587, 0.114));
 gl_FragColor = vec4(gray * vec3(0.8, 1.0, 1.2), texcolor, a);
}


.

Manipulé varios parámetros para obtener diferentes tonos de coloración. Pero sigo sin entender como funcionan ciertas partes del código y eso no me gusta. No me gusta utilizar un script si no término de entender como funciona, que hace cada línea, que parámetros utiliza o que otras opciones existen para dichos parámetros.

Ahora me surgen dos dudas:
1 – ¿Se puede hacer que una variable globalizada con Python sea leída y utilizada por un script de filtro personalizado?
2 – ¿Se pueden programar directamente los filtros en Python o no tengo más opción que aprender a programar los filtros personalizados?
Con la primera duda me gustaría poder hacer que el tono de color pueda cambiar de mostrar los colores tal cual son en el juego a blanco y negro. Pero no directamente sino que sea de forma gradual y no tener que utilizar varios filtros personalizados distintos.

Con la segunda duda me gustaría no tener que aprender el lenguaje de programación C para terminar aprendiendo la rama de OpenGL lenguaje.

Independientemente de la versión Blender que utilice (entendiendo que habrá diferencias en cuanto a sintaxis y librerías disponibles) me gustaría encontrarme con tutoriales (sobre todo en español) o explicaciones que me ayuden en mí búsqueda. Gracias por adelantado.

Ver más sobre el tema y los comentarios en el foro