Ich erinnere mich, wie John Carmack darüber sprach, wie sie Megatexturing ursprünglich für Quake Wars: Enemy Territory verwendeten. Die Technologie hat sich in Rage seitdem ziemlich weiterentwickelt.
Ich habe mich gefragt, ob jemand hier einige technische Details zu den Einzelheiten darüber geben kann, was und wie es sich seitdem entwickelt hat.
Ich würde empfehlen, den Artikel "Virtual Texture Mapping 101" auf GPU Gems zu lesen. Grundsätzlich wird die ursprüngliche Textur (die normalerweise sehr groß ist) in kleinere Kacheln aufgeteilt und bei Bedarf in den GPU-Speicher geladen. Die gleiche Idee kann verwendet werden, um riesige und detailreiche Terrains zu rendern.
quelle
Für den Anfang hat Beyond3D eine nette kleine Zusammenfassung einiger technischer Details, die während eines Interviews mit Arnout van Meer, dem technischen Direktor von Splash Damage, sowie dem Senior Graphics Programmer Mike Armstrong gesammelt wurden. In demselben Artikel werden insbesondere einige Nachteile von MegaTexturing in seiner damals aktuellen Iteration auf Seite 5 genannt. Er weist darauf hin, dass John Carmack einige davon bereits in einer späteren Überarbeitung behoben hat und dass einige andere behoben werden konnten, die zu diesem Zeitpunkt nicht realisierbar waren.
Bemerkenswerte Beispiele sind:
In diesem Interview stellt John Carmack außerdem fest, dass einige der Mängel der in Quake Wars verwendeten Technologie bereits in internen Builds behoben wurden - beispielsweise die Anwendung von MegaTextures auf beliebige Geometrien, einschließlich Zeichen und Fahrzeuge.
quelle
Sean Barrets GDC 2008 Sparse Virtual Texture-Präsentation war sein Versuch, das, was Carmack zu dieser Zeit tat, nachzubilden. Es gibt auch eine Quelle. Seitdem besteht eine gewisse Korrespondenz zwischen Carmack und Barrett.
(Die Präsentation ist etwas dicht, aber es lohnt sich, sich die Zeit zum Verstehen zu nehmen. Nachdem ich sie zwei Tage lang zweimal angesehen hatte, verbrachte ich einige Stunden mit einem Whiteboard und kam schließlich zu dem Punkt, an dem ich zu verstehen glaubte es ist alles. Viel einfacher , wenn Sie einen Fragment - Shader Hintergrund haben, die ich damals nicht tat. es ist auch wirklich ordentlich , dass die Präsentation ist die Demo.)
+1 an zacharmarz für die Erwähnung der hervorragenden GDC2011 Mega Meshes-Präsentation der Lionhead-Leute, die an Milo und Kate arbeiten. Es werden viele sehr praktische Lösungen erwähnt, zum Beispiel: Rendern jedes zweiten Frames an verschiedenen Stellen (Hotspots, 180-Grad-Drehungen, Zooms, weiter entlang eines Kontroll-Splines usw.), um die Sichtbarkeit der Textur und die Mip-Ebenen zu bestimmen und die Ergebnisse zu kommunizieren in einen "L2-Cache", um einige der Textur-Streaming-Probleme zu lösen. Nicht unbedingt einfach, aber dennoch elegant in seiner Direktheit.
quelle