aboutsummaryrefslogtreecommitdiff
path: root/resources/shaders/main.glsl
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2020-07-09 13:02:31 +0200
committerLoic Guegan <manzerbredes@mailbox.org>2020-07-09 13:02:31 +0200
commit12829892b262a0c7fcccba9198e5b6b31b2a8015 (patch)
tree908152ccc4fd1f4ee2c16b4bb8e0bee215ebdae7 /resources/shaders/main.glsl
parentaac94e911b0bab8db5cdb5efb8d4d8f2d4072610 (diff)
Cleaning codeHEADmaster
Diffstat (limited to 'resources/shaders/main.glsl')
-rw-r--r--resources/shaders/main.glsl93
1 files changed, 0 insertions, 93 deletions
diff --git a/resources/shaders/main.glsl b/resources/shaders/main.glsl
deleted file mode 100644
index 2888d56..0000000
--- a/resources/shaders/main.glsl
+++ /dev/null
@@ -1,93 +0,0 @@
-// ----- Vertex Shader -----
-#version 330 core
-
-layout(location = 0) in vec3 position;
-uniform mat4 projection;
-uniform mat4 model;
-
-void main(){
- gl_Position = projection * model * vec4(position,1);
-}
-
-// ----- Fragment Shader -----
-
-#version 330 core
-
-uniform vec2 resolution;
-uniform float time;
-
-out vec3 color;
-
-
-#define MAX_STEPS 100
-#define MAX_DIST 100.
-#define SURF_DIST .01
-
-float GetDist(vec3 p) {
- vec4 s = vec4(0, 1, 6, 1);
-
- float sphereDist = length(p-s.xyz)-s.w;
- float planeDist = p.y;
-
- float d = min(sphereDist, planeDist);
- return d;
-}
-
-float RayMarch(vec3 ro, vec3 rd) {
- float dO=0.;
-
- for(int i=0; i<MAX_STEPS; i++) {
- vec3 p = ro + rd*dO;
- float dS = GetDist(p);
- dO += dS;
- if(dO>MAX_DIST || dS<SURF_DIST) break;
- }
-
- return dO;
-}
-
-vec3 GetNormal(vec3 p) {
- float d = GetDist(p);
- vec2 e = vec2(.01, 0);
-
- vec3 n = d - vec3(
- GetDist(p-e.xyy),
- GetDist(p-e.yxy),
- GetDist(p-e.yyx));
-
- return normalize(n);
-}
-
-float GetLight(vec3 p) {
- vec3 lightPos = vec3(0, 5, 6);
- lightPos.xz += vec2(sin(time), cos(time))*2.;
- vec3 l = normalize(lightPos-p);
- vec3 n = GetNormal(p);
-
- float dif = clamp(dot(n, l), 0., 1.);
- float d = RayMarch(p+n*SURF_DIST*2., l);
- if(d<length(lightPos-p)) dif *= .1;
-
- return dif;
-}
-
-void main()
-{
- vec2 uv = (gl_FragCoord.xy-.5*resolution.xy)/resolution.y;
-
- vec3 col = vec3(0);
-
- vec3 ro = vec3(0, 1, 0);
- vec3 rd = normalize(vec3(uv.x, uv.y, 1));
-
- float d = RayMarch(ro, rd);
-
- vec3 p = ro + rd * d;
-
- float dif = GetLight(p);
- col = vec3(dif);
-
- col = pow(col, vec3(.4545)); // gamma correction
-
- color = col;
-}