During the last weekend or two I’ve been making something that was meant as a drop-in replacement for the default, build in shader generator… that’s not actually generating any shader code (maybe apart from some tiny configuration header) but just works and is just as easy to use as render.setShaderAuto()
The idea was, that you import a class, init it, maybe give it some optional configuration values depending on what features you’d want, and that’s it. The class would automagically make a new node available anywhere (just like ‘render’) and all you have to do is reparent your models to this special node, even if your model has no normal map, no tangent or binormals, no gloss, glow, height map - it will just work.
That’s the goal, it’s not done yet, but you can try what’s there if you grab the code here:
github.com/wezu/p3d_auto_deferred_shader
Features:
-point lights
-directional light
-spotlights
-cube map shadows for point lights
-projected shadows for spotlights (not done!)
-fog/dof
-parallax mapping
-screen space reflections
-bloom/glow
-ambient occlusion
-lut color mapping
-dithering
-fxaa
Screen from current beta:
(click for full size)
s27.postimg.org/z8uxj1xer/def_ren_beta.png
Bad quality video:
youtu.be/PyOgZHCBGD4
This is in no way a competing project to the Render Pipeline Tobias is making. He is making a modern, advanced rendered with fancy things targeting OpenGL 4.x with bits and pieces of C++. Mine is closer to the firefly demo, it’s all Python (+GLSL) and should run on OpenGL 3.x.
Credits:
-Josh Yelon for the original FireflyDemo (…and whoever else edited it?)
-tobspr for the color LUT, normals packing and probably something else that I can’t remember
-rdb for helping with lighting, shadows and a ton of other things
-ninth for ssr
-Nvidia for FXAA(?)
-anyone else I forgot