diff options
author | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-08-10 14:06:15 +1000 |
---|---|---|
committer | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-08-10 14:06:15 +1000 |
commit | 9cb4bfacc69b2a95ce8e9250afc33fb04d1ba548 (patch) | |
tree | fbe75da188ac83b34153ac79c367b9d57e0d5ff9 /src/render/builtin_materials.h | |
parent | 071a635e63536e50abfad7d5aeca1208dba58025 (diff) |
remove old code
Diffstat (limited to 'src/render/builtin_materials.h')
-rw-r--r-- | src/render/builtin_materials.h | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/src/render/builtin_materials.h b/src/render/builtin_materials.h deleted file mode 100644 index b15e62e..0000000 --- a/src/render/builtin_materials.h +++ /dev/null @@ -1,153 +0,0 @@ -/** - * @file builtin_materials.h - * @author your name (you@domain.com) - * @brief - * @version 0.1 - * @date 2024-06-15 - * - * @copyright Copyright (c) 2024 - * - */ -#pragma once - -#include <assert.h> -#include "defines.h" -#include "ral_types.h" - -// Currently supported materials -// - Blinn Phong (textured) -// - PBR (params) -// - PBR (textured) - -// Thoughts -// -------- -// -// A material and a shader are inextricably linked. The input data for a shader needs the material. -// However, a shader may require more than just a material? - -// --- Common uniform blocks - -/* In glsl code we call it 'MVP_Matrices' */ -typedef struct mvp_matrix_uniforms { - mat4 model; - mat4 view; - mat4 projection; -} mvp_matrix_uniforms; - -// --- PBR (params) - -typedef struct pbr_params_material_uniforms { - vec3 albedo; - f32 metallic; - f32 roughness; - f32 ao; - f32 pad[2]; -} pbr_params_material_uniforms; - -typedef struct pbr_point_light { - vec3 pos; - f32 pad; - vec3 color; - f32 pad2; -} pbr_point_light; - -typedef struct pbr_params_light_uniforms { - pbr_point_light pointLights[4]; - vec4 viewPos; -} pbr_params_light_uniforms; - -typedef struct pbr_params_bindgroup { - mvp_matrix_uniforms mvp_matrices; - pbr_params_material_uniforms material; - pbr_params_light_uniforms lights; -} pbr_params_bindgroup; - -static shader_data_layout pbr_params_shader_layout(void* data) { - pbr_params_bindgroup* d = (pbr_params_bindgroup*)data; - bool has_data = data != NULL; - - shader_binding b1 = { .label = "MVP_Matrices", - .type = SHADER_BINDING_BYTES, - .stores_data = has_data, - .data = { .bytes = { .size = sizeof(mvp_matrix_uniforms) } } }; - - shader_binding b2 = { .label = "PBR_Params", - .type = SHADER_BINDING_BYTES, - .stores_data = has_data, - .data = { .bytes = { .size = sizeof(pbr_params_material_uniforms) } } }; - - shader_binding b3 = { .label = "Scene_Lights", - .type = SHADER_BINDING_BYTES, - .stores_data = has_data, - .data = { .bytes = { .size = sizeof(pbr_params_light_uniforms) } } }; - - if (has_data) { - // printf("Size %d \n", b3.data.bytes.size); - b1.data.bytes.data = &d->mvp_matrices; - b2.data.bytes.data = &d->material; - /* d->lights.viewPos = vec3(0, 1, 0); */ - b3.data.bytes.data = &d->lights; - // print_vec3(d->lights.viewPos); - } - - return (shader_data_layout){ .name = "pbr_params", .bindings = { b1, b2, b3 }, .bindings_count = 3 - - }; -} - -static void* shader_layout_get_binding(shader_data_layout* layout, u32 nth_binding) { - assert(nth_binding < layout->bindings_count); - return &layout->bindings[nth_binding].data; -} - -typedef struct pbr_textures { - texture_handle albedo_tex; - texture_handle metal_roughness_tex; - texture_handle ao_tex; - texture_handle normal_tex; -} pbr_textures; - -typedef struct pbr_textured_bindgroup { - mvp_matrix_uniforms mvp_matrices; - pbr_params_light_uniforms lights; - pbr_textures textures; -} pbr_textured_bindgroup; - -static shader_data_layout pbr_textured_shader_layout(void* data) { - pbr_textured_bindgroup* d = (pbr_textured_bindgroup*)data; - bool has_data = data != NULL; - - shader_binding b1 = { .label = "MVP_Matrices", - .type = SHADER_BINDING_BYTES, - .stores_data = has_data, - .data = { .bytes = { .size = sizeof(mvp_matrix_uniforms) } } }; - - shader_binding b2 = { .label = "Scene_Lights", - .type = SHADER_BINDING_BYTES, - .stores_data = has_data, - .data = { .bytes = { .size = sizeof(pbr_params_light_uniforms) } } }; - - shader_binding b3 = { .label = "albedoMap", - .type = SHADER_BINDING_TEXTURE, - .stores_data = has_data }; - shader_binding b4 = { .label = "metallicRoughnessMap", - .type = SHADER_BINDING_TEXTURE, - .stores_data = has_data }; - shader_binding b5 = { .label = "aoMap", .type = SHADER_BINDING_TEXTURE, .stores_data = has_data }; - shader_binding b6 = { .label = "normalMap", - .type = SHADER_BINDING_TEXTURE, - .stores_data = has_data }; - - if (has_data) { - b1.data.bytes.data = &d->mvp_matrices; - b2.data.bytes.data = &d->lights; - b3.data.texture.handle = d->textures.albedo_tex; - b4.data.texture.handle = d->textures.metal_roughness_tex; - b5.data.texture.handle = d->textures.ao_tex; - b6.data.texture.handle = d->textures.normal_tex; - } - - return (shader_data_layout){ .name = "pbr_params", - .bindings = { b1, b2, b3, b4, b5, b6 }, - .bindings_count = 6 }; -} |