Einmal ein Ausschnitt aus meiner Game Engine an der ich schon die letzten Monate und Jahre arbeite. Da mein "Common RHI" gerade dabei ist final zu werden hier einmal ein Vergleich vom OpenGL3+ und OpenGLES2 Renderer. Sehen beide nahezu identisch aus, das besondere daran ist jedoch das es sich um physically based shaders handelt, wie man sie aus der Unreal Engine 4 kennt. Um genauer zu sein habe ich auch genau dieses Shading Model übernommen.
Genaueres dazu kann man hier nachlesen:
http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_slides.pdfEine weitere Besonderheit ist, dass die Shader nicht fertig geschrieben vorliegen sondern in einem Metaformat vorliegen und erst zur Laufzeit entschieden wird welcher Renderer gerade verwendet wird und welches Shader Modell auf dem zugrundeliegendem System vorhanden ist und verwendet werden kann, daraufhin wird der korrekte MaterialCompiler ausgewählt und das ganze in validen Shadercode übersetzt, kompiliert und gelinkt.
Wie gesagt nur ein kleiner Ausschnitt der Game Engine, da diese aus wesentlich mehr Bestandteilen besteht, diese haben aber nichts mit dem Rendering an sich zu tun sondern dienen nur dazu eine komplette Suite an Tools anzubieten
Das verwendete Modell "Imrod" und dessen Texturen stammen von (
http://www.parkparkin.com/personal_art/imrod.htm) von Dmitry Parkin:
http://www.parkparkin.com und sind somit nicht von mir.
EDIT: Von den Direct3DXX Renderern gibt es leider keine Bilder, da ich kein Windows mein eigen nenne. Es gibt jedoch Implementationen für D3D9, D3D10 und D3D11. (Die Layer für Vulkan und D3D12 liegen schon vor).
Sieht gut aus. Ich sehe nur minimale Unterschiede. Um genauer zu sein: Das einzige, was mir an Unterschied auffällt ist, dass die 3+ Version ein klein wenig deutlicher und detaillierter in den Maps ist (auch die Speculars sind stärker und detaillierter)... und ich meine wirklich ein klitzeklein wenig. Auch mehr Kontrast scheint vorhanden zu sein. Ich musste da echt lang draufgucken, um das überhaupt festzustellen. Das ist so gering, dass es auch einfach nur an einem Parameter der Beleuchtung bei der 3+ Version liegen könnte. Könnte also auch eine Ilussion sein. Gibt es signifikante Unterschiede bei den Shadern?
PBR-Materials sind genial.