Skip to content

Commit

Permalink
reorganized shaders
Browse files Browse the repository at this point in the history
  • Loading branch information
orangeduck committed Mar 31, 2012
1 parent a46462d commit 7e7e06b
Show file tree
Hide file tree
Showing 68 changed files with 260 additions and 235 deletions.
4 changes: 2 additions & 2 deletions LICENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ Corange is licensed under a basic BSD license.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Expand Down
1 change: 0 additions & 1 deletion TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ Tweaks/Cleanup
* Optimise SDL_ReadLine to read more than one character at once.
* const stuff where needed (including asset stuff)
* Convert skeleton stuff to quaternions - though not sure if I trust my quaternion code. Slerp them nicely.
* Reorganize shaders into component specific and general sections. Make them unload and load correctly on init/finish of components.
* Remove all fixed function stuff inc builtins from all shaders.

In the Future
Expand Down
5 changes: 0 additions & 5 deletions core_assets/shaders/collision_mesh.fs

This file was deleted.

2 changes: 0 additions & 2 deletions core_assets/shaders/collision_mesh.prog

This file was deleted.

7 changes: 0 additions & 7 deletions core_assets/shaders/collision_mesh.vs

This file was deleted.

3 changes: 0 additions & 3 deletions core_assets/shaders/deferred.prog

This file was deleted.

3 changes: 3 additions & 0 deletions core_assets/shaders/deferred/animated.prog
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
vertex_shader : $CORANGE/shaders/deferred/animated.vs
fragment_shader : $CORANGE/shaders/deferred/static.fs
fragment_shader : $CORANGE/shaders/colors.fs
File renamed without changes.
File renamed without changes.
2 changes: 2 additions & 0 deletions core_assets/shaders/deferred/clear.prog
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
vertex_shader : $CORANGE/shaders/deferred/clear.vs
fragment_shader : $CORANGE/shaders/deferred/clear.fs
File renamed without changes.
File renamed without changes.
6 changes: 6 additions & 0 deletions core_assets/shaders/deferred/compose.prog
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
vertex_shader : $CORANGE/shaders/deferred/compose.vs
fragment_shader : $CORANGE/shaders/deferred/compose.fs
fragment_shader : $CORANGE/shaders/shadows.fs
fragment_shader : $CORANGE/shaders/colors.fs
fragment_shader : $CORANGE/shaders/screen_ao.fs
fragment_shader : $CORANGE/shaders/fog.fs
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
vertex_shader : $CORANGE/shaders/deferred_post.vs
fragment_shader : $CORANGE/shaders/deferred_post.fs
vertex_shader : $CORANGE/shaders/deferred/post.vs
fragment_shader : $CORANGE/shaders/deferred/post.fs
fragment_shader : $CORANGE/shaders/colors.fs
fragment_shader : $CORANGE/shaders/anti_aliasing.fs
fragment_shader : $CORANGE/shaders/post_effects.fs
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions core_assets/shaders/deferred/ssao.prog
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
vertex_shader : $CORANGE/shaders/deferred/ssao.vs
fragment_shader : $CORANGE/shaders/deferred/ssao.fs
fragment_shader : $CORANGE/shaders/screen_ao.fs
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions core_assets/shaders/deferred/static.prog
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
vertex_shader : $CORANGE/shaders/deferred/static.vs
fragment_shader : $CORANGE/shaders/deferred/static.fs
fragment_shader : $CORANGE/shaders/colors.fs
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions core_assets/shaders/deferred/tonemap.prog
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
vertex_shader : $CORANGE/shaders/deferred/tonemap.vs
fragment_shader : $CORANGE/shaders/deferred/tonemap.fs
fragment_shader : $CORANGE/shaders/colors.fs
File renamed without changes.
3 changes: 0 additions & 3 deletions core_assets/shaders/deferred_animated.prog

This file was deleted.

2 changes: 0 additions & 2 deletions core_assets/shaders/deferred_clear.prog

This file was deleted.

6 changes: 0 additions & 6 deletions core_assets/shaders/deferred_screen.prog

This file was deleted.

3 changes: 0 additions & 3 deletions core_assets/shaders/deferred_ssao.prog

This file was deleted.

3 changes: 0 additions & 3 deletions core_assets/shaders/deferred_tonemap.prog

This file was deleted.

5 changes: 5 additions & 0 deletions core_assets/shaders/forward/animated.prog
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
vertex_shader : $CORANGE/shaders/forward/animated.vs
fragment_shader : $CORANGE/shaders/forward/static.fs
fragment_shader : $CORANGE/shaders/shadows.fs
fragment_shader : $CORANGE/shaders/colors.fs
fragment_shader : $CORANGE/shaders/fog.fs
File renamed without changes.
52 changes: 52 additions & 0 deletions core_assets/shaders/forward/post.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
uniform int width;
uniform int height;
uniform int aa_type;

uniform sampler2D ldr_texture;
uniform sampler2D vignetting_texture;

uniform sampler3D lut;

/* Headers */

vec3 color_correction(vec3 color, sampler3D lut, int lut_size);
vec3 fxaa(sampler2D tex, vec2 uvs, int width, int height);
vec3 fxaa_unsharp(sampler2D tex, vec2 uvs, int width, int height);
vec3 unsharp_mask(sampler2D screen, vec2 coords, float strength, int width, int height);
vec3 chromatic_aberration(sampler2D screen, vec2 coords, float offset);

/* End */

#define BLOOM_SIZE 4.0
#define BLOOM_AMOUNT 5.0
#define BLOOM_COLOR 3.0

vec3 pow3(vec3 col, float exponent) {
vec3 ret;
ret.r = pow(col.r, exponent);
ret.g = pow(col.g, exponent);
ret.b = pow(col.b, exponent);
return ret;
}

void main() {

vec3 color;
if (aa_type == 1) {
color = fxaa_unsharp(ldr_texture, gl_TexCoord[0].xy, width, height);
} else {
//color = texture2D(ldr_texture, gl_TexCoord[0].xy).rgb;
//color = chromatic_aberration(ldr_texture, gl_TexCoord[0].xy, 1.0);
color = unsharp_mask(ldr_texture, gl_TexCoord[0].xy, 0.5, width, height);
}

vec3 vignetting = texture2D(vignetting_texture, gl_TexCoord[0].xy).rgb;

vec4 bloom_s = texture2DLod(ldr_texture, gl_TexCoord[0].xy, BLOOM_SIZE);
vec3 bloom = BLOOM_AMOUNT * bloom_s.a * pow3(bloom_s.rgb, BLOOM_COLOR);

color = (color + bloom) * mix(vignetting, vec3(1.0,1.0,1.0), 0.5);

gl_FragColor.rgb = color_correction(color, lut, 64);
gl_FragColor.a = 1.0;
}
5 changes: 5 additions & 0 deletions core_assets/shaders/forward/post.prog
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
vertex_shader : $CORANGE/shaders/deferred/post.vs
fragment_shader : $CORANGE/shaders/deferred/post.fs
fragment_shader : $CORANGE/shaders/colors.fs
fragment_shader : $CORANGE/shaders/anti_aliasing.fs
fragment_shader : $CORANGE/shaders/post_effects.fs
4 changes: 4 additions & 0 deletions core_assets/shaders/forward/post.vs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
void main() {
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
gl_TexCoord[0] = gl_MultiTexCoord0;
}
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
vertex_shader : $CORANGE/shaders/norm_spec_env.vs
fragment_shader : $CORANGE/shaders/norm_spec_env.fs
vertex_shader : $CORANGE/shaders/forward/static.vs
fragment_shader : $CORANGE/shaders/forward/static.fs
fragment_shader : $CORANGE/shaders/shadows.fs
fragment_shader : $CORANGE/shaders/colors.fs
fragment_shader : $CORANGE/shaders/fog.fs
File renamed without changes.
File renamed without changes.
5 changes: 5 additions & 0 deletions core_assets/shaders/forward/terrain.prog
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
vertex_shader : $CORANGE/shaders/forward/terrain.vs
fragment_shader : $CORANGE/shaders/forward/terrain.fs
fragment_shader : $CORANGE/shaders/shadows.fs
fragment_shader : $CORANGE/shaders/colors.fs
fragment_shader : $CORANGE/shaders/fog.fs
File renamed without changes.
17 changes: 17 additions & 0 deletions core_assets/shaders/forward/tonemap.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
uniform sampler2D hdr_texture;

uniform float exposure;

vec3 filmic_tonemap(vec3 color, float exposure);

void main() {

vec4 color = texture2D(hdr_texture, gl_TexCoord[0].xy);

color.rgb = filmic_tonemap(color.rgb, exposure);

float intensity = (color.r + color.g + color.b) / 3.0;
color.a = max(intensity - 1.0, 0.0);

gl_FragColor = color;
}
3 changes: 3 additions & 0 deletions core_assets/shaders/forward/tonemap.prog
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
vertex_shader : $CORANGE/shaders/deferred/tonemap.vs
fragment_shader : $CORANGE/shaders/deferred/tonemap.fs
fragment_shader : $CORANGE/shaders/colors.fs
4 changes: 4 additions & 0 deletions core_assets/shaders/forward/tonemap.vs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
void main() {
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
5 changes: 0 additions & 5 deletions core_assets/shaders/norm_spec_env_animated.prog

This file was deleted.

5 changes: 0 additions & 5 deletions core_assets/shaders/terrain.prog

This file was deleted.

Binary file modified demos/noise/lib/libcorange.a
Binary file not shown.
Binary file modified demos/noise/obj/noise.o
Binary file not shown.
Binary file modified demos/noise/obj/perlin_noise.o
Binary file not shown.
Binary file modified demos/platformer/lib/libcorange.a
Binary file not shown.
Binary file modified demos/renderers/lib/libcorange.a
Binary file not shown.
4 changes: 2 additions & 2 deletions demos/renderers/resources/cello/cello.mat
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
string name = cello
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/cello/cello.dds
texture bump_map = ./resources/cello/cello_nm.dds
texture spec_map = ./resources/cello/cello_s.dds
Expand All @@ -8,4 +8,4 @@ float glossiness = 35
float bumpiness = 1.5
float specular_level = 8
float env_amount = 1.5
int mat_id = 2
int mat_id = 2
22 changes: 11 additions & 11 deletions demos/renderers/resources/dino/dino.mmat
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
submaterial shell
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/dino/shell.dds
texture bump_map = ./resources/dino/shell_nm.dds
texture spec_map = ./resources/dino/shell_s.dds
Expand All @@ -10,7 +10,7 @@ float specular_level = 1.5
float env_amount = 3.0

submaterial bands
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/dino/bands.dds
texture bump_map = ./resources/dino/bands_nm.dds
texture spec_map = ./resources/dino/bands_s.dds
Expand All @@ -21,7 +21,7 @@ float specular_level = 1.5
float env_amount = 1.0

submaterial gun
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/dino/gun.dds
texture bump_map = ./resources/dino/gun_nm.dds
texture spec_map = ./resources/dino/gun_s.dds
Expand All @@ -32,7 +32,7 @@ float specular_level = 1.5
float env_amount = 3.0

submaterial gunbox
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/dino/gunbox.dds
texture bump_map = ./resources/dino/gunbox_nm.dds
texture spec_map = ./resources/dino/gunbox_s.dds
Expand All @@ -43,7 +43,7 @@ float specular_level = 1.5
float env_amount = 3.0

submaterial ammo_box
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/dino/ammo_box.dds
texture bump_map = ./resources/dino/ammo_box_nm.dds
texture spec_map = ./resources/dino/ammo_box_s.dds
Expand All @@ -55,7 +55,7 @@ float env_amount = 3.0
float alpha_test = 0.5

submaterial main_platform
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/dino/main_platform.dds
texture bump_map = ./resources/dino/main_platform_nm.dds
texture spec_map = ./resources/dino/main_platform_s.dds
Expand All @@ -67,7 +67,7 @@ float env_amount = 3.0
int mat_id = 3

submaterial flag
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/dino/flag.dds
texture bump_map = ./resources/dino/flag_nm.dds
texture spec_map = ./resources/dino/flag_s.dds
Expand All @@ -80,7 +80,7 @@ float alpha_test = 0.5
int mat_id = 3

submaterial gunturret
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/dino/gunturret.dds
texture bump_map = ./resources/dino/gunturret_nm.dds
texture spec_map = ./resources/dino/gunturret_s.dds
Expand All @@ -92,7 +92,7 @@ float env_amount = 3.0
int mat_id = 3

submaterial neck_ring
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/dino/neck_ring.dds
texture bump_map = ./resources/dino/neck_ring_nm.dds
texture spec_map = ./resources/dino/neck_ring_s.dds
Expand All @@ -104,7 +104,7 @@ float env_amount = 3.0
int mat_id = 3

submaterial body
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/dino/body.dds
texture bump_map = ./resources/dino/body_nm.dds
texture spec_map = ./resources/dino/body_s.dds
Expand All @@ -113,4 +113,4 @@ float glossiness = 5.0
float bumpiness = 1.75
float specular_level = 0.25
float env_amount = 0.5
int mat_id = 2
int mat_id = 2
4 changes: 2 additions & 2 deletions demos/renderers/resources/imrod/imrod_animated.mat
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
string name = imrod
program prog = $CORANGE/shaders/norm_spec_env_animated.prog
program prog = $CORANGE/shaders/forward/animated.prog
texture diffuse_map = ./resources/imrod/imrod.dds
texture bump_map = ./resources/imrod/imrod_nm.dds
texture spec_map = ./resources/imrod/imrod_s.dds
Expand All @@ -8,4 +8,4 @@ float glossiness = 20.0
float bumpiness = 3.0
float specular_level = 5.0
float env_amount = 1.25
int mat_id = 2
int mat_id = 2
4 changes: 2 additions & 2 deletions demos/renderers/resources/imrod/imrod_static.mat
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
string name = imrod
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/imrod/imrod.dds
texture bump_map = ./resources/imrod/imrod_nm.dds
texture spec_map = ./resources/imrod/imrod_s.dds
texture env_map = ./resources/imrod/imrod_env.dds
float glossiness = 30.0
float bumpiness = 2.5
float specular_level = 1.5
float env_amount = 1.25
float env_amount = 1.25
4 changes: 2 additions & 2 deletions demos/renderers/resources/piano/piano.mat
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
string name = piano
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/piano/piano.dds
texture bump_map = ./resources/piano/piano_nm.dds
texture spec_map = ./resources/piano/piano_s.dds
Expand All @@ -8,4 +8,4 @@ float glossiness = 30
float bumpiness = 1.75
float specular_level = 3.0
float env_amount = 1.0
int mat_id = 2
int mat_id = 2
4 changes: 2 additions & 2 deletions demos/renderers/resources/podium/podium.mat
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
string name = podium
program prog = $CORANGE/shaders/norm_spec_env.prog
program prog = $CORANGE/shaders/forward/static.prog
texture diffuse_map = ./resources/podium/podium.dds
texture bump_map = ./resources/podium/podium_nm.dds
texture spec_map = ./resources/podium/podium_s.dds
Expand All @@ -8,4 +8,4 @@ float glossiness = 20
float bumpiness = 0.75
float specular_level = 0.75
float env_amount = 1.0
int mat_id = 3
int mat_id = 3
Binary file modified demos/scotland/lib/libcorange.a
Binary file not shown.
Binary file modified demos/scotland/scotland
Binary file not shown.
Binary file modified demos/sea/lib/libcorange.a
Binary file not shown.
Loading

0 comments on commit 7e7e06b

Please sign in to comment.