mirror of
https://github.com/raysan5/raylib.git
synced 2025-12-25 10:22:33 -05:00
contributed simple shader example (#973)
Contributed simple shader example
This commit is contained in:
BIN
examples/shaders/resources/mask.png
Normal file
BIN
examples/shaders/resources/mask.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
BIN
examples/shaders/resources/plasma.png
Normal file
BIN
examples/shaders/resources/plasma.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 568 KiB |
21
examples/shaders/resources/shaders/glsl330/mask.fs
Normal file
21
examples/shaders/resources/shaders/glsl330/mask.fs
Normal file
@ -0,0 +1,21 @@
|
||||
#version 330
|
||||
|
||||
// Input vertex attributes (from vertex shader)
|
||||
in vec2 fragTexCoord;
|
||||
|
||||
// Input uniform values
|
||||
uniform sampler2D texture0;
|
||||
uniform sampler2D mask;
|
||||
uniform int frame;
|
||||
|
||||
// Output fragment color
|
||||
out vec4 finalColor;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 maskColour = texture(mask, fragTexCoord+vec2(sin(-frame/150.0)/10.0,cos(-frame/170.0)/10.0));
|
||||
if (maskColour.r < 0.25) discard;
|
||||
vec4 texelColor = texture(texture0, fragTexCoord+vec2(sin(frame/90.0)/8.0,cos(frame/60.0)/8.0));
|
||||
|
||||
finalColor = texelColor * maskColour;
|
||||
}
|
||||
21
examples/shaders/resources/shaders/glsl330/mask.vs
Normal file
21
examples/shaders/resources/shaders/glsl330/mask.vs
Normal file
@ -0,0 +1,21 @@
|
||||
#version 330
|
||||
|
||||
// Input vertex attributes
|
||||
in vec3 vertexPosition;
|
||||
in vec2 vertexTexCoord;
|
||||
|
||||
// Input uniform values
|
||||
uniform mat4 mvp;
|
||||
uniform mat4 matModel;
|
||||
|
||||
// Output vertex attributes (to fragment shader)
|
||||
out vec2 fragTexCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
// Send vertex attributes to fragment shader
|
||||
fragTexCoord = vertexTexCoord;
|
||||
|
||||
// Calculate final vertex position
|
||||
gl_Position = mvp*vec4(vertexPosition, 1.0);
|
||||
}
|
||||
Reference in New Issue
Block a user