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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

2PTj|lepQ;T_#AXy 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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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 literal 0 HcmV?d00001