Hi,
Da würde ich dir widersprechen. Die Doom 3 Engine und die Half-Life 2 Engine (übrigens Weiterentwicklung der Half-Life Engine, welche aus der Quake 1 Engine stammte) benutzen einen Mischmasch aus strukturierter und objektorientierter Programmierung, wohingegen die Unreal Engine und dei Cry Tek Engine strikt objektorientiert programmiert wurden.
Wenn man nun sagt, die Half-Life 2 Engine hätte "minimale Anforderungen für maximale Optik", und führt vergleichsweise die Doom 3 Engine, die Half-Life 2 Engine, die CryTek Engine und die Unreal Engine auf, und stellt dies in den Bezug von "astrein programmiert", so hinkt dieser Vergleich. Die Methoden, welche von der Half-Life 2 Engine für die Grafik benutzt werden, also Lightmapping anhand von Radiosityberechnungen und dazu Bumpmapping und Per-Pixel-Lights, sind milde gesagt "antiquiert". Dazu noch ungefiltertes Shadow-Mapping, um Schatten zu berechnen.
Jemand, der sich mit der aktuellen Entwicklung der Grafikprogrammierung schlau gemacht hat, sieht schnell ein, dass diese Techniken einfach nicht mehr den heutigen Gegebenheiten angemessen sind. Wo ist beispielsweise das Parallax-Mapping und wo sind die PCF-Shadowmaps? Wieso hat man immer auf das Ziel des Lightmappings hingearbeitet?
Dadurch, dass so vieles auf Lightmapping in der Half-Life 2 Engine ausgelegt wurde, ist die Engine weniger flexibel geworden. In abzusehender Zeit wird er keine Notwendigkeit mehr für Lightmaps geben, wobei ich mit abzusehend eine Zeit meine, die nach dem erscheinen der Unreal 3 Engine liegt. Es gibt bereits Grafikalgorithem, die auf Ambient Occlusion Mapping aufbauen und so Lightmaps überflüssig machen. Ich habe das auch schon mal live in Aktion gesehen. Problematisch ist nur, dass der Algorithmus wohl noch eine Weile unter Verschluss liegen wird (wohl bis genug Geld gemacht wurde) und dann erst veröffentlicht werden wird.
Zurück zur Half-Life 2 Engine. Es aus Sicht eines Programmierers immer schlecht, sein Werk starr und unflexibel zu halten, wie es mit der Half-Life 2 Engine und dem darin benutzen Lightmapping geschehen ist. Die Zukunft weist in eine andere Richtung, und da ist es wahrscheinlich, dass diese Bindung Probleme bereiten wird. Von daher ist grade aus der Sicht von "astrein programmiert" es falsch zu sagen, Half-Life 2 sei der Gewinner. Ich werde mich hier nicht zu einem Urteil hinreißen lassen, welche Engine denn nun am "astreinesten" programmiert wurde.
PS: Von mir aus kann man in den meisten Fällen beim Bumpmapping auch den Specular-Term verschmeissen B)
Mit freundlichen Grüßen,
eXile.