branchsbox/shader-stagingcancel
31 Commits over 30 Days - 0.04cph!
Remove crumbs of ToolsShadingComplexity, we can replicate quad overdraw in almost every material without a special mode, shading complexity itself is on toolsvis now, toolsvis class
There's also a duplicate shading complexity shader
Lightmapping combos go on shadingmodel
Fix typos
Remove ToolsVis() and ToolsShadingComplexity() ( & ToolsWireframe ) mode from everything
EnvironmentMap::From to calculate all envmaps on a position
PerViewLightingConstantBuffer_t completely unused
environmentmapped bool is bullshit now that cubemaps are gpu driven, add stub EnvironmentMapping.hlsl
Detangle all of this, vr_lighting never directly referenced from any of our hlsls now
Fuck of with light.environment, light.dynamic and light.static are just in Light.hlsl instead of own internal files
Move shadow functions to Shadow.hlsl, much like BRDF.hlsl, will make it easy for us to upgrade, move LightMap definitions to Light.hlsl
Lightmapping definiton should be in shadingmodel.hlsl not Material.hlsl, that works only as a contract to shadingmodels, fix toolvis on shadingmodelstandard
DynamicLight refactor
Refactor StaticLight class, can do Light::From() to get all lights (static/dynamic) at once
https://i.imgur.com/jqko5ON.mp4
Remove more crumbs off S_MODE_TOOLS_VIS
Be able to fetch all light information with Light::Count() and Light::From(), while doing all optimization from tiled lighting etc
Move light.hlsl to common/classes/Light.hlsl, start unfucking it, make it have same structure as everything else
Nag message to remove S_MODE_TOOLS_VIS
Use single path for vr_common_ps_code to match what's on shadingmodel, eventually to just delete all of it, remove unused DISABLE_TONEMAPPING
Move BRDF stuff to BRDF.hlsl, organizes it and makes it easier to move to CS2's one with multiscatter
Fuck off with LightingTerms for toolsvis, we should be accepting any structure
Remove unused ShadingModel postprocessing ( handle it better )
ToolVis in a class
Single ToolsVis.hlsl, tidy it up
Initial ToolsVis without ToolsVis mode, cleanup some unsued
Goodbye S_MODE_TOOLS_VIS combo
Enumize ToolVis modes, dont keep this logic on shared_standard_ps_code
Shadingmodel uses Fog::Apply instead of duplicate DoAtmospherics
Add namespace_name to antlr grammar so that we can do "type Class::Function()" definition instead of defining all in class itself, we should just let it accept any HLSL
Handle AmbientLightKind::LightMapProbeVolume and AmbientLightKind::LightMap
Shading Complexity in ToolVis, quad overdraw isn't even working now, and certainly doesnt need it's own shading mode, can make all materials use same shader
Remove CUSTOM_MATERIAL_INPUTS and CUSTOM_TEXTURE_FILTERING, vfx optimizes it out if not used
Remove D_BAKED_LIGHTING_FROM_VERTEX_STREAM, never used
Rewrite AmbientLight into a class, stub
Remove CUSTOM_MATERIAL_INPUTS and CUSTOM_TEXTURE_FILTERING, vfx optimizes it out if not used
Remove D_BAKED_LIGHTING_FROM_VERTEX_STREAM, never used
Shading Complexity in ToolVis, quad overdraw isn't even working now, and certainly doesnt need it's own shading mode, can make all materials use same shader
Remove long unused shit from pixelinput and vertexinput and clean it up
Convert world position to projected position on FinalizeVertex, don't like that these are opaque, let's see what we can do about it
SQRTRoughness was correct behavior for sampling envmaps
Use multi-bounce ambient occlusion
Feathering goes outer rather than center, allow to have inner (negative) feathering again, fixes light leaks in maps
Update shaders
Gamma correct samples during accumulated ggx, makes highlight less blown out and makes the cubemap more vibrant
Start moving same fast ggx filtering code to cpu for resourcecompiler also for consistency
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
tiled light culling with edge feathering additions
vLevel isn't const
Update path of build-shaders, upload all shaders as artifacts
Fix EnvironmentMapLight::GetEnvMapColor using deprecated variable
Fix EnvironmentMapLight::GetEnvMapColor using deprecated variable
Update path of build-shaders, upload all shaders as artifacts
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
tiled light culling with edge feathering additions
vLevel isn't const
Update shaders, might get stumped with AO changes but i'll just build them back
Update shaders, might get stumped with AO changes but i'll just build them back
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
tiled light culling with edge feathering additions