bin beim Surfen durch die aktuelle GDC Newsflut auf folgendes gestoßen:
Nun frage ich mich, auf welche traditionellen Nachteile von Uber Shaders könnte das bezogen sein? AFAIK braucht man ja immer noch pro Lichttyp (+ evtl. pro Anzahl, auch wenn das bei Deferred Shading wegfallen kann, wenn man nur 1 Licht / Post-Processing Pass rendert) eine andere Permutation des Shaders, auch die Permutationen des Uber Shaders für verschiedene Materialeigenschaften dürften erhalten bleiben. Der Shader sollte also nach wie vor sehr komplex und umfangreich sein.Crytek hat geschrieben:Deferred Lighting
The CryENGINE® 3 unique deferred lighting solution allows the rendering of a vast amount of light sources with per pixel shading efficiently; and simplifies engine performance tuning across multiple platforms.
Uber Shader Technology
CryENGINE® 3 shaders are written once in a high level language, then compiled automatically to each platform. The shader output is optimized based on the artists’ settings and the 3D environment in which the shader is used. This creates high performance unique effects, such as: “cloaking”, wet, muddy, and frozen surfaces, which can be layered together and combined with other shaders, such as: metal, glass and other visual effects. CryENGINE® 3 supports real time per-pixel lighting, bumpy reflections, refractions, volumetric glow effects and animated textures to simulate windows, bullet holes, shiny surfaces and many other effects. CryENGINE® 3 also takes advantage of the unified shader architecture of current and next-gen hardware. The combination of deferred lighting and this technology allows CryENGINE® 3 to avoid the traditional shortcomings of Uber Shaders alone.
Unter Umständen lassen sich die Shader beim Rendern mit Deferred Shading besser sortieren und sich so überflüssige Wechsel einsparen, möglicherweise lässt sich bei Deferred Shading auch mit early Pixel Clipping was reißen, aber das hat alles recht wenig mit den Nachteilen von Uber Shaders zu tun. Was habt ihr dazu für Ideen?