Auch wenn wir uns hier nur auf Direct3D Based Engine's festlegen, sind die Engines noch lange nett gleich. Ein Beispiel. Ein freund von mir bastelt seit einigen Monaten an eine Direct3D Engine. D.h. sie unterstützt auch D3D, ist aber API unabhängig. Ich Arbeite ebenfalls an ner Engine. Webenfalls auch mit Drirect3D Support. Unsere Engine's sind jedoch völlig anders. Schon alleine der Ansatz ist anders. Ich hab meine in einer DLL ausgelagert und hab PlugIn Support, um sie erweiterbar zu halten, und führe viel durch Scripts aus. Seine wird direkt mit dem Code des Projektes Compiliert. Erweiterungen müssen also nicht in PlugIns gesteckt werden, kein Scripting und baut viel auf Templates.
Beide Engines sind auf OOP Basis, trozdem sind sie unterschiedlich. Natürlich gibt es einige Dinge in denen sich die Engines gleichen, aber denn noch, ist die Implemenation, die Verwendung und die Verarbeitung der Daten, unterschiedlich.
Jeder Implementiert die verwendung der Effekte die du Ansprichst ja anders. Die einen Kapseln nur die anderen verpacken gleich alle Effekte in einem Interface Designe um eine Allgemeine Schnittstelle zu erhalten. Hast du dir schon mal ein paar Engines angesehen? Wenn nicht dann mach das mal und du wirst sehen, das jeder alles irgendwie anders Implementiert. Natürlich gibt es immer sachen wo sie die Engines gleichen. Das bezweifel ich gar nich.