Add render passes

This commit is contained in:
2024-09-14 18:05:09 +01:00
parent 7a17d129a1
commit 0aacccdf67
3 changed files with 20 additions and 8 deletions

View File

@@ -83,9 +83,10 @@ internal i32 tinyrenderer(Arena *arena, TinyArgs args) {
Colour bg = {.r = 42, .g = 45, .b = 52, .a = 255};
Colour main_colour = {.r = 14, .g = 156, .b = 208, .a = 255};
Render shadowbuffer, framebuffer;
if (!init_render(arena, &shadowbuffer, IMAGE_DIMENSION, IMAGE_DIMENSION) ||
!init_render(arena, &framebuffer, IMAGE_DIMENSION, IMAGE_DIMENSION)) {
Render *shadowbuffer = &(g_render_passes[RENDER_PASS_SHADOW]);
Render *framebuffer = &(g_render_passes[RENDER_PASS_MAIN]);
if (!init_render(arena, shadowbuffer, IMAGE_DIMENSION, IMAGE_DIMENSION) ||
!init_render(arena, framebuffer, IMAGE_DIMENSION, IMAGE_DIMENSION)) {
return TINY_EXIT_RENDER_INIT_FAILED;
}
@@ -99,12 +100,12 @@ internal i32 tinyrenderer(Arena *arena, TinyArgs args) {
load_shaders(viewport(0, 0, IMAGE_DIMENSION, IMAGE_DIMENSION));
clear_buffer(&(framebuffer.img), &bg);
clear_buffer(&(framebuffer->img), &bg);
render_model(&obj, &shadowbuffer, depth, RENDER_TYPE_SHADED, main_colour);
render_model(&obj, &framebuffer, perspective_diffuse, RENDER_TYPE_SHADED, main_colour);
render_model(&obj, shadowbuffer, depth, RENDER_TYPE_SHADED, main_colour);
render_model(&obj, framebuffer, perspective_diffuse, RENDER_TYPE_SHADED, main_colour);
save_image(&(framebuffer.img), "result.pam");
save_image(&(framebuffer->img), "result.pam");
return TINY_EXIT_SUCCESS;
}