People everywhere warn against ubershaders, but I felt I needed to make that mistake personally.
This is a work in progress, consider it "public beta" at this point. Comments/bugs very welcome.
Rationale: Much of the work I do is very fast-paced, sometimes just a couple of hours from start to delivery.
The stock materials are nice but not always flexible enough, and wiring up new ones from scratch is often
too time-consuming. Hence this try at a generic-use material that could be used for the majority of surfaces
needed (but of course not all).
This is my first take on an ubershader, I knew from the onset that I will redo it a couple of times. Having now
done it once I have a much better idea on how to make it more modular, and what kind of modules it perhaps
should consist of. Maybe I should've waited until v2 before posting this, but it might be some time before I have
the time again, plus it's good to get other opinions - and maybe this can be of use to someone already.
- ramp usage, mostly copied from lightwave gradients
- grit, accessibility shading
- exported buffers listed in gui
- beginnings of modularity/abstraction (procedurals defined independently and then referenced into by different
- I've grown a bit dissatisfied with the overall structure of the shader, both ui and inside
- not nearly enough modularity/abstraction
- the reflection/refraction setup is perhaps a bit clumsy
- Sometimes mantra crashes when doing glass and rendering with many threads, i still haven't found the cause