Nome: Negativo (Inverte cores)
Versão: GameMaker: Studio
Imagens e Videos:
Vertex Shader: Clique para ver o conteúdo
Código: Selecionar todos
//
// Vertex Shader padrão - Não mexemos nas vertices
//
attribute vec3 in_Position; // (x,y,z)
attribute vec4 in_Colour; // (r,g,b,a)
attribute vec2 in_TextureCoord; // (u,v)
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
void main()
{
vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
v_vColour = in_Colour;
v_vTexcoord = in_TextureCoord;
}
Fragment Shader: Clique para ver o conteúdo
Código: Selecionar todos
//
// Fragment Shader: Negativo
//
// Posição da Textura
varying vec2 v_vTexcoord;
void main()
{
// Guarda o pixel (rgba) na variavel cc
vec4 cc = texture2D(gm_BaseTexture, v_vTexcoord);
// Inverte
cc.rgb = 1.0 - cc.rgb;
gl_FragColor = cc;
}
Instruções de uso:
Para usar o Shader em toda a tela (Como no exemplo) basta:
- Selecionar o Shader no Evento
Draw Begin (Pois deve ser ativado antes de qualquer coisa ser desenhada [
Ver referência]);
- Coloque o
shader_reset()no Evento
Draw End.
Para usar em algumas sprites ou backgrounds (No evento
Draw):
- Selecionar o
Shader;
- Desenhar o que você quer;
- Reiniciar o
Shader com
shader_reset().
Download:
DOWNLOAD - EXEMPLO