Added shaders examples resources
This commit is contained in:
parent
0a345a6128
commit
9a578c5962
7 changed files with 179 additions and 23 deletions
|
@ -154,9 +154,14 @@ EXAMPLES = \
|
||||||
core_input_keys \
|
core_input_keys \
|
||||||
core_input_mouse \
|
core_input_mouse \
|
||||||
core_mouse_wheel \
|
core_mouse_wheel \
|
||||||
|
core_input_gamepad \
|
||||||
core_random_values \
|
core_random_values \
|
||||||
core_color_select \
|
core_color_select \
|
||||||
|
core_drop_files \
|
||||||
core_3d_mode \
|
core_3d_mode \
|
||||||
|
core_3d_picking \
|
||||||
|
core_3d_camera_free \
|
||||||
|
core_3d_camera_first_person \
|
||||||
shapes_logo_raylib \
|
shapes_logo_raylib \
|
||||||
shapes_basic_shapes \
|
shapes_basic_shapes \
|
||||||
shapes_colors_palette \
|
shapes_colors_palette \
|
||||||
|
@ -165,16 +170,23 @@ EXAMPLES = \
|
||||||
textures_image_loading \
|
textures_image_loading \
|
||||||
textures_rectangle \
|
textures_rectangle \
|
||||||
textures_srcrec_dstrec \
|
textures_srcrec_dstrec \
|
||||||
|
textures_to_image \
|
||||||
|
textures_raw_data \
|
||||||
|
textures_formats_loading \
|
||||||
|
textures_particles_trail_blending \
|
||||||
text_sprite_fonts \
|
text_sprite_fonts \
|
||||||
text_rbmf_fonts \
|
text_rbmf_fonts \
|
||||||
text_format_text \
|
text_format_text \
|
||||||
text_font_select \
|
text_font_select \
|
||||||
models_geometric_shapes \
|
models_geometric_shapes \
|
||||||
models_planes \
|
|
||||||
models_billboard \
|
models_billboard \
|
||||||
models_obj_loading \
|
models_obj_loading \
|
||||||
models_heightmap \
|
models_heightmap \
|
||||||
models_cubicmap \
|
models_cubicmap \
|
||||||
|
shaders_model_shader \
|
||||||
|
shaders_shapes_textures \
|
||||||
|
shaders_custom_uniform \
|
||||||
|
shaders_postprocessing \
|
||||||
audio_sound_loading \
|
audio_sound_loading \
|
||||||
audio_music_stream \
|
audio_music_stream \
|
||||||
fix_dylib \
|
fix_dylib \
|
||||||
|
@ -201,16 +213,26 @@ core_input_keys: core_input_keys.c
|
||||||
core_input_mouse: core_input_mouse.c
|
core_input_mouse: core_input_mouse.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
# compile [core] example - gamepad input
|
# compile [core] example - gamepad input
|
||||||
core_input_gamepad: core_input_gamepad.c
|
core_input_gamepad: core_input_gamepad.c
|
||||||
|
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
else
|
||||||
|
@echo core_input_gamepad: Only supported on desktop platform
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# compile [core] example - mouse wheel
|
# compile [core] example - mouse wheel
|
||||||
core_mouse_wheel: core_mouse_wheel.c
|
core_mouse_wheel: core_mouse_wheel.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [core] example - drop files
|
||||||
|
core_drop_files: core_drop_files.c
|
||||||
|
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
else
|
||||||
|
@echo core_drop_files: Only supported on desktop platform
|
||||||
|
endif
|
||||||
|
|
||||||
# compile [core] example - generate random values
|
# compile [core] example - generate random values
|
||||||
core_random_values: core_random_values.c
|
core_random_values: core_random_values.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
@ -223,6 +245,18 @@ core_color_select: core_color_select.c
|
||||||
core_3d_mode: core_3d_mode.c
|
core_3d_mode: core_3d_mode.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [core] example - 3d picking
|
||||||
|
core_3d_picking: core_3d_picking.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [core] example - 3d camera free
|
||||||
|
core_3d_camera_free: core_3d_camera_free.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [core] example - 3d camera first person
|
||||||
|
core_3d_camera_first_person: core_3d_camera_first_person.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
# compile [shapes] example - raylib logo (with basic shapes)
|
# compile [shapes] example - raylib logo (with basic shapes)
|
||||||
shapes_logo_raylib: shapes_logo_raylib.c
|
shapes_logo_raylib: shapes_logo_raylib.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
@ -255,6 +289,22 @@ textures_rectangle: textures_rectangle.c
|
||||||
textures_srcrec_dstrec: textures_srcrec_dstrec.c
|
textures_srcrec_dstrec: textures_srcrec_dstrec.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [textures] example - texture to image
|
||||||
|
textures_to_image: textures_to_image.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [textures] example - texture raw data
|
||||||
|
textures_raw_data: textures_raw_data.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [textures] example - texture formats loading
|
||||||
|
textures_formats_loading: textures_formats_loading.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [textures] example - texture particles trail blending
|
||||||
|
textures_particles_trail_blending: textures_particles_trail_blending.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
# compile [text] example - sprite fonts loading
|
# compile [text] example - sprite fonts loading
|
||||||
text_sprite_fonts: text_sprite_fonts.c
|
text_sprite_fonts: text_sprite_fonts.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
@ -295,6 +345,22 @@ models_heightmap: models_heightmap.c
|
||||||
models_cubicmap: models_cubicmap.c
|
models_cubicmap: models_cubicmap.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [shaders] example - model shader
|
||||||
|
shaders_model_shader: shaders_model_shader.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [shaders] example - shapes texture shader
|
||||||
|
shaders_shapes_textures: shaders_shapes_textures.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [shaders] example - custom uniform in shader
|
||||||
|
shaders_custom_uniform: shaders_custom_uniform.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
|
# compile [shaders] example - postprocessing shader
|
||||||
|
shaders_postprocessing: shaders_postprocessing.c
|
||||||
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
# compile [audio] example - sound loading and playing (WAV and OGG)
|
# compile [audio] example - sound loading and playing (WAV and OGG)
|
||||||
audio_sound_loading: audio_sound_loading.c
|
audio_sound_loading: audio_sound_loading.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
#version 110
|
#version 330
|
||||||
|
|
||||||
attribute vec3 vertexPosition;
|
in vec3 vertexPosition;
|
||||||
attribute vec2 vertexTexCoord;
|
in vec2 vertexTexCoord;
|
||||||
attribute vec4 vertexColor;
|
in vec3 vertexNormal;
|
||||||
|
|
||||||
|
out vec2 fragTexCoord;
|
||||||
|
|
||||||
uniform mat4 projectionMatrix;
|
uniform mat4 projectionMatrix;
|
||||||
uniform mat4 modelviewMatrix;
|
uniform mat4 modelviewMatrix;
|
||||||
|
|
||||||
varying vec2 fragTexCoord;
|
// NOTE: Add here your custom variables
|
||||||
varying vec4 fragColor;
|
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
fragTexCoord = vertexTexCoord;
|
fragTexCoord = vertexTexCoord;
|
||||||
fragColor = vertexColor;
|
|
||||||
|
|
||||||
gl_Position = projectionMatrix*modelviewMatrix*vec4(vertexPosition, 1.0);
|
gl_Position = projectionMatrix*modelviewMatrix*vec4(vertexPosition, 1.0);
|
||||||
}
|
}
|
42
examples/resources/shaders/bloom.fs
Normal file
42
examples/resources/shaders/bloom.fs
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#version 330
|
||||||
|
|
||||||
|
in vec2 fragTexCoord;
|
||||||
|
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
uniform sampler2D texture0;
|
||||||
|
uniform vec4 tintColor;
|
||||||
|
|
||||||
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec4 sum = vec4(0);
|
||||||
|
vec4 tc = vec4(0);
|
||||||
|
|
||||||
|
for (int i = -4; i < 4; i++)
|
||||||
|
{
|
||||||
|
for (int j = -3; j < 3; j++)
|
||||||
|
{
|
||||||
|
sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004) * 0.25;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (texture2D(texture0, fragTexCoord).r < 0.3)
|
||||||
|
{
|
||||||
|
tc = sum*sum*0.012 + texture2D(texture0, fragTexCoord);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (texture2D(texture0, fragTexCoord).r < 0.5)
|
||||||
|
{
|
||||||
|
tc = sum*sum*0.009 + texture2D(texture0, fragTexCoord);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tc = sum*sum*0.0075 + texture2D(texture0, fragTexCoord);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fragColor = tc;
|
||||||
|
}
|
|
@ -1,15 +1,20 @@
|
||||||
#version 110
|
#version 330
|
||||||
|
|
||||||
|
in vec2 fragTexCoord;
|
||||||
|
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
varying vec2 fragTexCoord;
|
uniform vec4 tintColor;
|
||||||
varying vec4 fragColor;
|
|
||||||
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 base = texture2D(texture0, fragTexCoord)*fragColor;
|
vec4 base = texture2D(texture0, fragTexCoord)*tintColor;
|
||||||
|
|
||||||
// Convert to grayscale using NTSC conversion weights
|
// Convert to grayscale using NTSC conversion weights
|
||||||
float gray = dot(base.rgb, vec3(0.299, 0.587, 0.114));
|
float gray = dot(base.rgb, vec3(0.299, 0.587, 0.114));
|
||||||
|
|
||||||
gl_FragColor = vec4(gray, gray, gray, base.a);
|
fragColor = vec4(gray, gray, gray, tintColor.a);
|
||||||
}
|
}
|
|
@ -1,16 +1,19 @@
|
||||||
#version 330
|
#version 110
|
||||||
|
|
||||||
attribute vec3 vertexPosition;
|
attribute vec3 vertexPosition;
|
||||||
attribute vec2 vertexTexCoord;
|
attribute vec2 vertexTexCoord;
|
||||||
attribute vec3 vertexNormal;
|
attribute vec4 vertexColor;
|
||||||
|
|
||||||
uniform mat4 projectionMatrix;
|
uniform mat4 projectionMatrix;
|
||||||
uniform mat4 modelviewMatrix;
|
uniform mat4 modelviewMatrix;
|
||||||
|
|
||||||
varying vec2 fragTexCoord;
|
varying vec2 fragTexCoord;
|
||||||
|
varying vec4 fragColor;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
fragTexCoord = vertexTexCoord;
|
fragTexCoord = vertexTexCoord;
|
||||||
|
fragColor = vertexColor;
|
||||||
|
|
||||||
gl_Position = projectionMatrix*modelviewMatrix*vec4(vertexPosition, 1.0);
|
gl_Position = projectionMatrix*modelviewMatrix*vec4(vertexPosition, 1.0);
|
||||||
}
|
}
|
|
@ -1,16 +1,15 @@
|
||||||
#version 330
|
#version 110
|
||||||
|
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
varying vec2 fragTexCoord;
|
varying vec2 fragTexCoord;
|
||||||
|
varying vec4 fragColor;
|
||||||
uniform vec4 tintColor;
|
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 base = texture2D(texture0, fragTexCoord)*tintColor;
|
vec4 base = texture2D(texture0, fragTexCoord)*fragColor;
|
||||||
|
|
||||||
// Convert to grayscale using NTSC conversion weights
|
// Convert to grayscale using NTSC conversion weights
|
||||||
float gray = dot(base.rgb, vec3(0.299, 0.587, 0.114));
|
float gray = dot(base.rgb, vec3(0.299, 0.587, 0.114));
|
||||||
|
|
||||||
gl_FragColor = vec4(gray, gray, gray, tintColor.a);
|
gl_FragColor = vec4(gray, gray, gray, base.a);
|
||||||
}
|
}
|
41
examples/resources/shaders/swirl.fs
Normal file
41
examples/resources/shaders/swirl.fs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#version 330
|
||||||
|
|
||||||
|
in vec2 fragTexCoord;
|
||||||
|
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
uniform sampler2D texture0;
|
||||||
|
uniform vec4 tintColor;
|
||||||
|
|
||||||
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
const float renderWidth = 800; // HARDCODED for example!
|
||||||
|
const float renderHeight = 480; // Use uniforms instead...
|
||||||
|
|
||||||
|
float radius = 250.0;
|
||||||
|
float angle = 0.8;
|
||||||
|
|
||||||
|
uniform vec2 center = vec2(200, 200);
|
||||||
|
|
||||||
|
void main (void)
|
||||||
|
{
|
||||||
|
vec2 texSize = vec2(renderWidth, renderHeight);
|
||||||
|
vec2 tc = fragTexCoord*texSize;
|
||||||
|
tc -= center;
|
||||||
|
float dist = length(tc);
|
||||||
|
|
||||||
|
if (dist < radius)
|
||||||
|
{
|
||||||
|
float percent = (radius - dist)/radius;
|
||||||
|
float theta = percent*percent*angle*8.0;
|
||||||
|
float s = sin(theta);
|
||||||
|
float c = cos(theta);
|
||||||
|
|
||||||
|
tc = vec2(dot(tc, vec2(c, -s)), dot(tc, vec2(s, c)));
|
||||||
|
}
|
||||||
|
|
||||||
|
tc += center;
|
||||||
|
vec3 color = texture2D(texture0, tc/texSize).rgb;
|
||||||
|
|
||||||
|
fragColor = vec4(color, 1.0);;
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue