A 3D game engine from scratch.
at main 69 lines 2.5 kB view raw
1// (c) 2020 Vlad-Stefan Harbuz <vlad@vladh.net> 2 3uniform sampler2D g_position_texture; 4uniform sampler2D g_normal_texture; 5uniform sampler2D g_albedo_texture; 6uniform sampler2D g_pbr_texture; 7 8uniform sampler2D l_color_texture; 9uniform sampler2D l_bright_color_texture; 10uniform sampler2D l_depth_texture; 11 12uniform sampler2D blur1_texture; 13uniform sampler2D blur2_texture; 14 15in BLOCK { 16 vec2 tex_coords; 17} fs_in; 18 19out vec4 frag_color; 20 21void main() { 22 if (renderdebug_displayed_texture_type == TEXTURETYPE_NONE) { 23 discard; 24 } 25 26 float preview_screen_proportion = 1.0; 27 float aspect_ratio = window_width / window_height; 28 vec2 preview_size = vec2( 29 preview_screen_proportion, 30 preview_screen_proportion / aspect_ratio 31 ); 32 33 if ( 34 fs_in.tex_coords.x < preview_size.x && 35 fs_in.tex_coords.y < preview_size.y 36 ) { 37 vec2 preview_tex_coords = fs_in.tex_coords / preview_size; 38 vec2 sample_p = preview_tex_coords; 39 40 vec3 color; 41 if (renderdebug_displayed_texture_type == TEXTURETYPE_G_POSITION) { 42 color = vec3(texture(g_position_texture, sample_p)); 43 } else if (renderdebug_displayed_texture_type == TEXTURETYPE_G_NORMAL) { 44 color = vec3(texture(g_normal_texture, sample_p)); 45 } else if (renderdebug_displayed_texture_type == TEXTURETYPE_G_ALBEDO) { 46 color = vec3(texture(g_albedo_texture, sample_p)); 47 } else if (renderdebug_displayed_texture_type == TEXTURETYPE_G_PBR) { 48 color = vec3(texture(g_pbr_texture, sample_p)); 49 } else if (renderdebug_displayed_texture_type == TEXTURETYPE_L_COLOR) { 50 color = vec3(texture(l_color_texture, sample_p)); 51 } else if (renderdebug_displayed_texture_type == TEXTURETYPE_L_BRIGHT_COLOR) { 52 color = vec3(texture(l_bright_color_texture, sample_p)); 53 } else if (renderdebug_displayed_texture_type == TEXTURETYPE_L_DEPTH) { 54 color = vec3(texture(l_depth_texture, sample_p)); 55 } else if (renderdebug_displayed_texture_type == TEXTURETYPE_BLUR1) { 56 color = vec3(texture(blur1_texture, sample_p)); 57 } else if (renderdebug_displayed_texture_type == TEXTURETYPE_BLUR2) { 58 color = vec3(texture(blur2_texture, sample_p)); 59 } else if (renderdebug_displayed_texture_type == TEXTURETYPE_SHADOWMAPS_3D) { 60 color = texture(shadowmaps_3d, vec4(sample_p, 0.0, 0.0)).rrr; 61 } else if (renderdebug_displayed_texture_type == TEXTURETYPE_SHADOWMAPS_2D) { 62 color = texture(shadowmaps_2d, vec3(sample_p, 0.0)).rrr; 63 } 64 65 frag_color = vec4(color, 1.0); 66 } else { 67 discard; 68 } 69}