1 Year Ago
Shadingmodel Declutter (#1041) * Start cleaning up material and shadingapi * Allow using functions inside of HLSL structs https://i.imgur.com/t1AwQzr.png * Replace all GatherMaterial bullshit with Material::From() * Remove Material parameter references to things that aren't implemented yet, put TransformNormal in normals file * Cut everything from ShadingModel too and let's start from a static class * Redo light api on shaders, start implementing new dynamic light under this structure, move raytracing shit to it's own folder, add sample shadingmodel * Allow structs in structs ( HLSL 2021 and forwards ) * Most of static light with the new api * Fix shadowing on indexed lights on new light api * Move shadingmodel structures to shadingmodel.hlsl * Fix light static assignment for lighting api, fix shadowing for them too * Stub for EnvironmentMapLight * Implement cubemap light * ShadingModelValve * light.envmap.hlsl becomes light.environment.hlsl for better readability, add debug views to material api, CUSTOM_MATERIAL_INPUTS preprocessor * AmbientLight * Sane implementation atmospherics and debug vis postprocessing for shadingmodel api * Finish debug vis, rename ShadingModelValve to ShadingModelStandard * Start rewriting blendable with new api, port glass to new api * Rewritten blendable shader * Refactor remaining shaders to new shadingmodel api, fix shadergraph not working, readd procedural.hlsl for shadergraph but fix typo on title