From 4ae0a416f44195317d6b20af5b357c88c294faf1 Mon Sep 17 00:00:00 2001 From: BugraAlptekinSari <94199723+BugraAlptekinSari@users.noreply.github.com> Date: Sat, 11 Feb 2023 15:37:50 +0300 Subject: [PATCH] Added raymarch example and thumbnail for write depth (#2919) --- examples/Makefile | 9 +- .../shaders/glsl100/hybrid_raster.fs | 16 + .../shaders/glsl100/hybrid_raymarch.fs | 288 ++++++++++++++++++ .../shaders/glsl330/hybrid_raster.fs | 14 + .../shaders/glsl330/hybrid_raymarch.fs | 284 +++++++++++++++++ examples/shaders/shaders_hybrid_render.c | 212 +++++++++++++ examples/shaders/shaders_hybrid_render.png | Bin 0 -> 111135 bytes examples/shaders/shaders_write_depth.png | Bin 0 -> 11174 bytes 8 files changed, 819 insertions(+), 4 deletions(-) create mode 100644 examples/shaders/resources/shaders/glsl100/hybrid_raster.fs create mode 100644 examples/shaders/resources/shaders/glsl100/hybrid_raymarch.fs create mode 100644 examples/shaders/resources/shaders/glsl330/hybrid_raster.fs create mode 100644 examples/shaders/resources/shaders/glsl330/hybrid_raymarch.fs create mode 100644 examples/shaders/shaders_hybrid_render.c create mode 100644 examples/shaders/shaders_hybrid_render.png create mode 100644 examples/shaders/shaders_write_depth.png diff --git a/examples/Makefile b/examples/Makefile index dce02218a..574975d23 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -523,7 +523,8 @@ SHADERS = \ shaders/shaders_hot_reloading \ shaders/shaders_mesh_instancing \ shaders/shaders_multi_sample2d \ - shaders/shaders_write_depth + shaders/shaders_write_depth \ + shaders/shaders_hybrid_render AUDIO = \ audio/audio_module_playing \ @@ -581,10 +582,10 @@ ifeq ($(PLATFORM),PLATFORM_DRM) rm -fv *.o endif ifeq ($(PLATFORM),PLATFORM_WEB) - ifeq ($(PLATFORM_OS),WINDOWS) + ifeq ($(PLATFORM_OS),WINDOWS) del *.wasm *.html *.js *.data - else + else rm -f */*.wasm */*.html */*.js */*.data - endif + endif endif @echo Cleaning done diff --git a/examples/shaders/resources/shaders/glsl100/hybrid_raster.fs b/examples/shaders/resources/shaders/glsl100/hybrid_raster.fs new file mode 100644 index 000000000..28188a454 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl100/hybrid_raster.fs @@ -0,0 +1,16 @@ +#version 100 +#extension GL_EXT_frag_depth : enable // Extension required for writing depth +precision mediump float; // Precision required for OpenGL ES2 (WebGL) + +varying vec2 fragTexCoord; +varying vec4 fragColor; + +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +void main() +{ + vec4 texelColor = texture2D(texture0, fragTexCoord); + gl_FragColor = texelColor*colDiffuse*fragColor; + gl_FragDepthEXT = gl_FragCoord.z; +} \ No newline at end of file diff --git a/examples/shaders/resources/shaders/glsl100/hybrid_raymarch.fs b/examples/shaders/resources/shaders/glsl100/hybrid_raymarch.fs new file mode 100644 index 000000000..6241186de --- /dev/null +++ b/examples/shaders/resources/shaders/glsl100/hybrid_raymarch.fs @@ -0,0 +1,288 @@ +#version 100 +#extension GL_EXT_frag_depth : enable //Extension required for writing depth +#extension GL_OES_standard_derivatives : enable //Extension used for fwidth() +precision mediump float; // Precision required for OpenGL ES2 (WebGL) + + +// Input vertex attributes (from vertex shader) +varying vec2 fragTexCoord; +varying vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// Custom Input Uniform +uniform vec3 camPos; +uniform vec3 camDir; +uniform vec2 screenCenter; + +#define ZERO 0 + +// https://learnopengl.com/Advanced-OpenGL/Depth-testing +float CalcDepth(in vec3 rd, in float Idist){ + float local_z = dot(normalize(camDir),rd)*Idist; + return (1.0/(local_z) - 1.0/0.01)/(1.0/1000.0 -1.0/0.01); +} + +// https://iquilezles.org/articles/distfunctions/ +float sdHorseshoe( in vec3 p, in vec2 c, in float r, in float le, vec2 w ) +{ + p.x = abs(p.x); + float l = length(p.xy); + p.xy = mat2(-c.x, c.y, + c.y, c.x)*p.xy; + p.xy = vec2((p.y>0.0 || p.x>0.0)?p.x:l*sign(-c.x), + (p.x>0.0)?p.y:l ); + p.xy = vec2(p.x,abs(p.y-r))-vec2(le,0.0); + + vec2 q = vec2(length(max(p.xy,0.0)) + min(0.0,max(p.x,p.y)),p.z); + vec2 d = abs(q) - w; + return min(max(d.x,d.y),0.0) + length(max(d,0.0)); +} + +// r = sphere's radius +// h = cutting's plane's position +// t = thickness +float sdSixWayCutHollowSphere( vec3 p, float r, float h, float t ) +{ + // Six way symetry Transformation + vec3 ap = abs(p); + if(ap.x < max(ap.y, ap.z)){ + if(ap.y < ap.z) ap.xz = ap.zx; + else ap.xy = ap.yx; + } + + vec2 q = vec2( length(ap.yz), ap.x ); + + float w = sqrt(r*r-h*h); + + return ((h*q.x0.0 ) + { + tmax = min( tmax, tp1 ); + res = vec2( tp1, 1.0 ); + } + + float t = tmin; + for( int i=0; i<70 ; i++ ) + { + if(t>tmax) break; + vec2 h = map( ro+rd*t ); + if( abs(h.x)<(0.0001*t) ) + { + res = vec2(t,h.y); + break; + } + t += h.x; + } + + return res; +} + + +// https://iquilezles.org/articles/rmshadows +float calcSoftshadow( in vec3 ro, in vec3 rd, in float mint, in float tmax ) +{ + // bounding volume + float tp = (0.8-ro.y)/rd.y; if( tp>0.0 ) tmax = min( tmax, tp ); + + float res = 1.0; + float t = mint; + for( int i=ZERO; i<24; i++ ) + { + float h = map( ro + rd*t ).x; + float s = clamp(8.0*h/t,0.0,1.0); + res = min( res, s ); + t += clamp( h, 0.01, 0.2 ); + if( res<0.004 || t>tmax ) break; + } + res = clamp( res, 0.0, 1.0 ); + return res*res*(3.0-2.0*res); +} + + +// https://iquilezles.org/articles/normalsSDF +vec3 calcNormal( in vec3 pos ) +{ + vec2 e = vec2(1.0,-1.0)*0.5773*0.0005; + return normalize( e.xyy*map( pos + e.xyy ).x + + e.yyx*map( pos + e.yyx ).x + + e.yxy*map( pos + e.yxy ).x + + e.xxx*map( pos + e.xxx ).x ); +} + +// https://iquilezles.org/articles/nvscene2008/rwwtt.pdf +float calcAO( in vec3 pos, in vec3 nor ) +{ + float occ = 0.0; + float sca = 1.0; + for( int i=ZERO; i<5; i++ ) + { + float h = 0.01 + 0.12*float(i)/4.0; + float d = map( pos + h*nor ).x; + occ += (h-d)*sca; + sca *= 0.95; + if( occ>0.35 ) break; + } + return clamp( 1.0 - 3.0*occ, 0.0, 1.0 ) * (0.5+0.5*nor.y); +} + +// https://iquilezles.org/articles/checkerfiltering +float checkersGradBox( in vec2 p ) +{ + // filter kernel + vec2 w = fwidth(p) + 0.001; + // analytical integral (box filter) + vec2 i = 2.0*(abs(fract((p-0.5*w)*0.5)-0.5)-abs(fract((p+0.5*w)*0.5)-0.5))/w; + // xor pattern + return 0.5 - 0.5*i.x*i.y; +} + +// https://www.shadertoy.com/view/tdS3DG +vec4 render( in vec3 ro, in vec3 rd) +{ + // background + vec3 col = vec3(0.7, 0.7, 0.9) - max(rd.y,0.0)*0.3; + + // raycast scene + vec2 res = raycast(ro,rd); + float t = res.x; + float m = res.y; + if( m>-0.5 ) + { + vec3 pos = ro + t*rd; + vec3 nor = (m<1.5) ? vec3(0.0,1.0,0.0) : calcNormal( pos ); + vec3 ref = reflect( rd, nor ); + + // material + col = 0.2 + 0.2*sin( m*2.0 + vec3(0.0,1.0,2.0) ); + float ks = 1.0; + + if( m<1.5 ) + { + float f = checkersGradBox( 3.0*pos.xz); + col = 0.15 + f*vec3(0.05); + ks = 0.4; + } + + // lighting + float occ = calcAO( pos, nor ); + + vec3 lin = vec3(0.0); + + // sun + { + vec3 lig = normalize( vec3(-0.5, 0.4, -0.6) ); + vec3 hal = normalize( lig-rd ); + float dif = clamp( dot( nor, lig ), 0.0, 1.0 ); + //if( dif>0.0001 ) + dif *= calcSoftshadow( pos, lig, 0.02, 2.5 ); + float spe = pow( clamp( dot( nor, hal ), 0.0, 1.0 ),16.0); + spe *= dif; + spe *= 0.04+0.96*pow(clamp(1.0-dot(hal,lig),0.0,1.0),5.0); + //spe *= 0.04+0.96*pow(clamp(1.0-sqrt(0.5*(1.0-dot(rd,lig))),0.0,1.0),5.0); + lin += col*2.20*dif*vec3(1.30,1.00,0.70); + lin += 5.00*spe*vec3(1.30,1.00,0.70)*ks; + } + // sky + { + float dif = sqrt(clamp( 0.5+0.5*nor.y, 0.0, 1.0 )); + dif *= occ; + float spe = smoothstep( -0.2, 0.2, ref.y ); + spe *= dif; + spe *= 0.04+0.96*pow(clamp(1.0+dot(nor,rd),0.0,1.0), 5.0 ); + //if( spe>0.001 ) + spe *= calcSoftshadow( pos, ref, 0.02, 2.5 ); + lin += col*0.60*dif*vec3(0.40,0.60,1.15); + lin += 2.00*spe*vec3(0.40,0.60,1.30)*ks; + } + // back + { + float dif = clamp( dot( nor, normalize(vec3(0.5,0.0,0.6))), 0.0, 1.0 )*clamp( 1.0-pos.y,0.0,1.0); + dif *= occ; + lin += col*0.55*dif*vec3(0.25,0.25,0.25); + } + // sss + { + float dif = pow(clamp(1.0+dot(nor,rd),0.0,1.0),2.0); + dif *= occ; + lin += col*0.25*dif*vec3(1.00,1.00,1.00); + } + + col = lin; + + col = mix( col, vec3(0.7,0.7,0.9), 1.0-exp( -0.0001*t*t*t ) ); + } + + return vec4(vec3( clamp(col,0.0,1.0) ),t); +} + +vec3 CalcRayDir(vec2 nCoord){ + vec3 horizontal = normalize(cross(camDir,vec3(.0 , 1.0, .0))); + vec3 vertical = normalize(cross(horizontal,camDir)); + return normalize(camDir + horizontal*nCoord.x + vertical*nCoord.y); +} + +mat3 setCamera() +{ + vec3 cw = normalize(camDir); + vec3 cp = vec3(0.0, 1.0 ,0.0); + vec3 cu = normalize( cross(cw,cp) ); + vec3 cv = ( cross(cu,cw) ); + return mat3( cu, cv, cw ); +} + +void main() +{ + vec2 nCoord = (gl_FragCoord.xy - screenCenter.xy)/screenCenter.y; + mat3 ca = setCamera(); + + // focal length + float fl = length(camDir); + vec3 rd = ca * normalize( vec3(nCoord,fl) ); + vec3 color = vec3(nCoord/2.0 + 0.5, 0.0); + float depth = gl_FragCoord.z; + { + vec4 res = render( camPos - vec3(0.0, 0.0, 0.0) , rd ); + color = res.xyz; + depth = CalcDepth(rd,res.w); + } + gl_FragColor = vec4(color , 1.0); + gl_FragDepthEXT = depth; +} \ No newline at end of file diff --git a/examples/shaders/resources/shaders/glsl330/hybrid_raster.fs b/examples/shaders/resources/shaders/glsl330/hybrid_raster.fs new file mode 100644 index 000000000..85ef492c0 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/hybrid_raster.fs @@ -0,0 +1,14 @@ +#version 330 + +in vec2 fragTexCoord; +in vec4 fragColor; + +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +void main() +{ + vec4 texelColor = texture2D(texture0, fragTexCoord); + gl_FragColor = texelColor*colDiffuse*fragColor; + gl_FragDepth = gl_FragCoord.z; +} \ No newline at end of file diff --git a/examples/shaders/resources/shaders/glsl330/hybrid_raymarch.fs b/examples/shaders/resources/shaders/glsl330/hybrid_raymarch.fs new file mode 100644 index 000000000..5b66dd71c --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/hybrid_raymarch.fs @@ -0,0 +1,284 @@ +# version 330 + +// Input vertex attributes (from vertex shader) +in vec2 fragTexCoord; +in vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// Custom Input Uniform +uniform vec3 camPos; +uniform vec3 camDir; +uniform vec2 screenCenter; + +#define ZERO 0 + +// https://learnopengl.com/Advanced-OpenGL/Depth-testing +float CalcDepth(in vec3 rd, in float Idist){ + float local_z = dot(normalize(camDir),rd)*Idist; + return (1.0/(local_z) - 1.0/0.01)/(1.0/1000.0 -1.0/0.01); +} + +// https://iquilezles.org/articles/distfunctions/ +float sdHorseshoe( in vec3 p, in vec2 c, in float r, in float le, vec2 w ) +{ + p.x = abs(p.x); + float l = length(p.xy); + p.xy = mat2(-c.x, c.y, + c.y, c.x)*p.xy; + p.xy = vec2((p.y>0.0 || p.x>0.0)?p.x:l*sign(-c.x), + (p.x>0.0)?p.y:l ); + p.xy = vec2(p.x,abs(p.y-r))-vec2(le,0.0); + + vec2 q = vec2(length(max(p.xy,0.0)) + min(0.0,max(p.x,p.y)),p.z); + vec2 d = abs(q) - w; + return min(max(d.x,d.y),0.0) + length(max(d,0.0)); +} + +// r = sphere's radius +// h = cutting's plane's position +// t = thickness +float sdSixWayCutHollowSphere( vec3 p, float r, float h, float t ) +{ + // Six way symetry Transformation + vec3 ap = abs(p); + if(ap.x < max(ap.y, ap.z)){ + if(ap.y < ap.z) ap.xz = ap.zx; + else ap.xy = ap.yx; + } + + vec2 q = vec2( length(ap.yz), ap.x ); + + float w = sqrt(r*r-h*h); + + return ((h*q.x0.0 ) + { + tmax = min( tmax, tp1 ); + res = vec2( tp1, 1.0 ); + } + + float t = tmin; + for( int i=0; i<70 ; i++ ) + { + if(t>tmax) break; + vec2 h = map( ro+rd*t ); + if( abs(h.x)<(0.0001*t) ) + { + res = vec2(t,h.y); + break; + } + t += h.x; + } + + return res; +} + + +// https://iquilezles.org/articles/rmshadows +float calcSoftshadow( in vec3 ro, in vec3 rd, in float mint, in float tmax ) +{ + // bounding volume + float tp = (0.8-ro.y)/rd.y; if( tp>0.0 ) tmax = min( tmax, tp ); + + float res = 1.0; + float t = mint; + for( int i=ZERO; i<24; i++ ) + { + float h = map( ro + rd*t ).x; + float s = clamp(8.0*h/t,0.0,1.0); + res = min( res, s ); + t += clamp( h, 0.01, 0.2 ); + if( res<0.004 || t>tmax ) break; + } + res = clamp( res, 0.0, 1.0 ); + return res*res*(3.0-2.0*res); +} + + +// https://iquilezles.org/articles/normalsSDF +vec3 calcNormal( in vec3 pos ) +{ + vec2 e = vec2(1.0,-1.0)*0.5773*0.0005; + return normalize( e.xyy*map( pos + e.xyy ).x + + e.yyx*map( pos + e.yyx ).x + + e.yxy*map( pos + e.yxy ).x + + e.xxx*map( pos + e.xxx ).x ); +} + +// https://iquilezles.org/articles/nvscene2008/rwwtt.pdf +float calcAO( in vec3 pos, in vec3 nor ) +{ + float occ = 0.0; + float sca = 1.0; + for( int i=ZERO; i<5; i++ ) + { + float h = 0.01 + 0.12*float(i)/4.0; + float d = map( pos + h*nor ).x; + occ += (h-d)*sca; + sca *= 0.95; + if( occ>0.35 ) break; + } + return clamp( 1.0 - 3.0*occ, 0.0, 1.0 ) * (0.5+0.5*nor.y); +} + +// https://iquilezles.org/articles/checkerfiltering +float checkersGradBox( in vec2 p ) +{ + // filter kernel + vec2 w = fwidth(p) + 0.001; + // analytical integral (box filter) + vec2 i = 2.0*(abs(fract((p-0.5*w)*0.5)-0.5)-abs(fract((p+0.5*w)*0.5)-0.5))/w; + // xor pattern + return 0.5 - 0.5*i.x*i.y; +} + +// https://www.shadertoy.com/view/tdS3DG +vec4 render( in vec3 ro, in vec3 rd) +{ + // background + vec3 col = vec3(0.7, 0.7, 0.9) - max(rd.y,0.0)*0.3; + + // raycast scene + vec2 res = raycast(ro,rd); + float t = res.x; + float m = res.y; + if( m>-0.5 ) + { + vec3 pos = ro + t*rd; + vec3 nor = (m<1.5) ? vec3(0.0,1.0,0.0) : calcNormal( pos ); + vec3 ref = reflect( rd, nor ); + + // material + col = 0.2 + 0.2*sin( m*2.0 + vec3(0.0,1.0,2.0) ); + float ks = 1.0; + + if( m<1.5 ) + { + float f = checkersGradBox( 3.0*pos.xz); + col = 0.15 + f*vec3(0.05); + ks = 0.4; + } + + // lighting + float occ = calcAO( pos, nor ); + + vec3 lin = vec3(0.0); + + // sun + { + vec3 lig = normalize( vec3(-0.5, 0.4, -0.6) ); + vec3 hal = normalize( lig-rd ); + float dif = clamp( dot( nor, lig ), 0.0, 1.0 ); + //if( dif>0.0001 ) + dif *= calcSoftshadow( pos, lig, 0.02, 2.5 ); + float spe = pow( clamp( dot( nor, hal ), 0.0, 1.0 ),16.0); + spe *= dif; + spe *= 0.04+0.96*pow(clamp(1.0-dot(hal,lig),0.0,1.0),5.0); + //spe *= 0.04+0.96*pow(clamp(1.0-sqrt(0.5*(1.0-dot(rd,lig))),0.0,1.0),5.0); + lin += col*2.20*dif*vec3(1.30,1.00,0.70); + lin += 5.00*spe*vec3(1.30,1.00,0.70)*ks; + } + // sky + { + float dif = sqrt(clamp( 0.5+0.5*nor.y, 0.0, 1.0 )); + dif *= occ; + float spe = smoothstep( -0.2, 0.2, ref.y ); + spe *= dif; + spe *= 0.04+0.96*pow(clamp(1.0+dot(nor,rd),0.0,1.0), 5.0 ); + //if( spe>0.001 ) + spe *= calcSoftshadow( pos, ref, 0.02, 2.5 ); + lin += col*0.60*dif*vec3(0.40,0.60,1.15); + lin += 2.00*spe*vec3(0.40,0.60,1.30)*ks; + } + // back + { + float dif = clamp( dot( nor, normalize(vec3(0.5,0.0,0.6))), 0.0, 1.0 )*clamp( 1.0-pos.y,0.0,1.0); + dif *= occ; + lin += col*0.55*dif*vec3(0.25,0.25,0.25); + } + // sss + { + float dif = pow(clamp(1.0+dot(nor,rd),0.0,1.0),2.0); + dif *= occ; + lin += col*0.25*dif*vec3(1.00,1.00,1.00); + } + + col = lin; + + col = mix( col, vec3(0.7,0.7,0.9), 1.0-exp( -0.0001*t*t*t ) ); + } + + return vec4(vec3( clamp(col,0.0,1.0) ),t); +} + +vec3 CalcRayDir(vec2 nCoord){ + vec3 horizontal = normalize(cross(camDir,vec3(.0 , 1.0, .0))); + vec3 vertical = normalize(cross(horizontal,camDir)); + return normalize(camDir + horizontal*nCoord.x + vertical*nCoord.y); +} + +mat3 setCamera() +{ + vec3 cw = normalize(camDir); + vec3 cp = vec3(0.0, 1.0 ,0.0); + vec3 cu = normalize( cross(cw,cp) ); + vec3 cv = ( cross(cu,cw) ); + return mat3( cu, cv, cw ); +} + +void main() +{ + vec2 nCoord = (gl_FragCoord.xy - screenCenter.xy)/screenCenter.y; + mat3 ca = setCamera(); + + // focal length + float fl = length(camDir); + vec3 rd = ca * normalize( vec3(nCoord,fl) ); + vec3 color = vec3(nCoord/2.0 + 0.5, 0.0); + float depth = gl_FragCoord.z; + { + vec4 res = render( camPos - vec3(0.0, 0.0, 0.0) , rd ); + color = res.xyz; + depth = CalcDepth(rd,res.w); + } + gl_FragColor = vec4(color , 1.0); + gl_FragDepth = depth; +} \ No newline at end of file diff --git a/examples/shaders/shaders_hybrid_render.c b/examples/shaders/shaders_hybrid_render.c new file mode 100644 index 000000000..86ba6397b --- /dev/null +++ b/examples/shaders/shaders_hybrid_render.c @@ -0,0 +1,212 @@ +/******************************************************************************************* +* +* raylib [shaders] example - Hybrid Rendering +* +* Example originally created with raylib 4.2, last time updated with raylib 4.2 +* +* Example contributed by Buğra Alptekin Sarı (@BugraAlptekinSari) and reviewed by Ramon Santamaria (@raysan5) +* +* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, +* BSD-like license that allows static linking with closed source software +* +* Copyright (c) 2022-2023 Buğra Alptekin Sarı (@BugraAlptekinSari) +* +********************************************************************************************/ + +#include "raylib.h" +#include "rlgl.h" +#include "math.h" // Used for tan() +#include "raymath.h" // Used to calculate camera Direction + +#if defined(PLATFORM_DESKTOP) +#define GLSL_VERSION 330 +#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB +#define GLSL_VERSION 100 +#endif + +//------------------------------------------------------------------------------------ +// Declare custom functions required for the example +//------------------------------------------------------------------------------------ +// Load custom render texture, create a writable depth texture buffer +static RenderTexture2D LoadRenderTextureDepthTex(int width, int height); +// Unload render texture from GPU memory (VRAM) +static void UnloadRenderTextureDepthTex(RenderTexture2D target); + +//------------------------------------------------------------------------------------ +// Declare custom Structs +//------------------------------------------------------------------------------------ + +typedef struct { + unsigned int camPos, camDir, screenCenter; +}RayLocs ; + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - write depth buffer"); + + // This Shader calculates pixel depth and color using raymarch. + Shader raymarch_shader = LoadShader(0, TextFormat("resources/shaders/glsl%i/hybrid_raymarch.fs", GLSL_VERSION)); + // This Shader is a standard rasterization fragment shader with the addition of depth writing. You are required to write depth for all shaders if one shader does it. + Shader raster_shader = LoadShader(0, TextFormat("resources/shaders/glsl%i/hybrid_raster.fs", GLSL_VERSION)); + + // Declare Struct used to store camera locs. + RayLocs march_locs = {0}; + + // Fill the struct with shader locs. + march_locs.camPos = GetShaderLocation(raymarch_shader, "camPos"); + march_locs.camDir = GetShaderLocation(raymarch_shader, "camDir"); + march_locs.screenCenter = GetShaderLocation(raymarch_shader, "screenCenter"); + + { // Transfer screenCenter position to shader. Which is used to calculate ray direction. + Vector2 screenCenter = {.x = screenWidth/2.0, .y = screenHeight/2.0}; + SetShaderValue(raymarch_shader, march_locs.screenCenter , &screenCenter , SHADER_UNIFORM_VEC2); + } + + + // Use Customized function to create writable depth texture buffer + RenderTexture2D target = LoadRenderTextureDepthTex(screenWidth, screenHeight); + + // Define the camera to look into our 3d world + Camera camera = { + .position = (Vector3){ 0.5f, 1.0f, 1.5f }, // Camera position + .target = (Vector3){ 0.0f, 0.5f, 0.0f }, // Camera looking at point + .up = (Vector3){ 0.0f, 1.0f, 0.0f }, // Camera up vector (rotation towards target) + .fovy = 45.0f, // Camera field-of-view Y + .projection = CAMERA_PERSPECTIVE // Camera mode type + }; + + // Camera FOV is pre-calculated in the camera Distance. + double camDist = 1.0/(tan(camera.fovy*0.5*DEG2RAD)); + + SetCameraMode(camera, CAMERA_FIRST_PERSON); + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera); + + //Update Camera Postion in the ray march shader. + SetShaderValue(raymarch_shader, march_locs.camPos, &(camera.position), RL_SHADER_UNIFORM_VEC3); + + { // Update Camera Looking Vector. Vector length determines FOV. + Vector3 camDir = Vector3Scale( Vector3Normalize( Vector3Subtract(camera.target, camera.position)) , camDist); + SetShaderValue(raymarch_shader, march_locs.camDir, &(camDir), RL_SHADER_UNIFORM_VEC3); + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + + // Draw into our custom render texture (framebuffer) + BeginTextureMode(target); + ClearBackground(WHITE); + + // Raymarch Scene + rlEnableDepthTest(); //Manually enable Depth Test to handle multiple rendering methods. + BeginShaderMode(raymarch_shader); + DrawRectangleRec((Rectangle){0,0,screenWidth,screenHeight},WHITE); + EndShaderMode(); + + // Raserize Scene + BeginMode3D(camera); + BeginShaderMode(raster_shader); + DrawCubeWiresV((Vector3){ 0.0f, 0.5f, 1.0f }, (Vector3){ 1.0f, 1.0f, 1.0f }, RED); + DrawCubeV((Vector3){ 0.0f, 0.5f, 1.0f }, (Vector3){ 1.0f, 1.0f, 1.0f }, PURPLE); + DrawCubeWiresV((Vector3){ 0.0f, 0.5f, -1.0f }, (Vector3){ 1.0f, 1.0f, 1.0f }, DARKGREEN); + DrawCubeV((Vector3) { 0.0f, 0.5f, -1.0f }, (Vector3){ 1.0f, 1.0f, 1.0f }, YELLOW); + DrawGrid(10, 1.0f); + EndShaderMode(); + EndMode3D(); + EndTextureMode(); + + // Draw into screen our custom render texture + BeginDrawing(); + ClearBackground(RAYWHITE); + + DrawTextureRec(target.texture, (Rectangle) { 0, 0, screenWidth, -screenHeight }, (Vector2) { 0, 0 }, WHITE); + DrawFPS(10, 10); + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadRenderTextureDepthTex(target); + UnloadShader(raymarch_shader); + UnloadShader(raster_shader); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//------------------------------------------------------------------------------------ +// Define custom functions required for the example +//------------------------------------------------------------------------------------ +// Load custom render texture, create a writable depth texture buffer +RenderTexture2D LoadRenderTextureDepthTex(int width, int height) +{ + RenderTexture2D target = { 0 }; + + target.id = rlLoadFramebuffer(width, height); // Load an empty framebuffer + + if (target.id > 0) + { + rlEnableFramebuffer(target.id); + + // Create color texture (default to RGBA) + target.texture.id = rlLoadTexture(0, width, height, PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); + target.texture.width = width; + target.texture.height = height; + target.texture.format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; + target.texture.mipmaps = 1; + + // Create depth texture buffer (instead of raylib default renderbuffer) + target.depth.id = rlLoadTextureDepth(width, height, false); + target.depth.width = width; + target.depth.height = height; + target.depth.format = 19; //DEPTH_COMPONENT_24BIT? + target.depth.mipmaps = 1; + + // Attach color texture and depth texture to FBO + rlFramebufferAttach(target.id, target.texture.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_TEXTURE2D, 0); + rlFramebufferAttach(target.id, target.depth.id, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_TEXTURE2D, 0); + + // Check if fbo is complete with attachments (valid) + if (rlFramebufferComplete(target.id)) TRACELOG(LOG_INFO, "FBO: [ID %i] Framebuffer object created successfully", target.id); + + rlDisableFramebuffer(); + } + else TRACELOG(LOG_WARNING, "FBO: Framebuffer object can not be created"); + + return target; +} + +// Unload render texture from GPU memory (VRAM) +void UnloadRenderTextureDepthTex(RenderTexture2D target) +{ + if (target.id > 0) + { + // Color texture attached to FBO is deleted + rlUnloadTexture(target.texture.id); + rlUnloadTexture(target.depth.id); + + // NOTE: Depth texture is automatically + // queried and deleted before deleting framebuffer + rlUnloadFramebuffer(target.id); + } +} \ No newline at end of file diff --git a/examples/shaders/shaders_hybrid_render.png b/examples/shaders/shaders_hybrid_render.png new file mode 100644 index 0000000000000000000000000000000000000000..0a63d19c20c026c2355bd80cefd38cbefd0e8a5b GIT binary patch literal 111135 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 z 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 literal 0 HcmV?d00001 diff --git a/examples/shaders/shaders_write_depth.png b/examples/shaders/shaders_write_depth.png new file mode 100644 index 0000000000000000000000000000000000000000..5a56d7d25a084c61a1fff502c3c55291a0f91fea GIT binary patch literal 11174 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