Tesselation hilft mit der GPU-Last gewaltig wenn entsprechend eingesetzt das es quasi eine Feinkontrolle von LoD Darstellt. Nicht nur die Übertragung von vielen Polygonen braucht Leistung, Culling und Vertex-shader genauso. Auch wird damit teils beträchtlich an Geometrie-Speicher gespart - wenn man es eben zur Leistungssteigerung einsetzen will.
Edit: Damn. Vertex- und Geometry-Shader verwechselt.
Die Speicherthematik hat Eclipso sehr schön zusammengefasst. Ergänzen möchte ich noch, dass Geometrie-Daten meinem Wissen nach einen im Vergleich zu Texturen, Bildpuffern, Beleuchtung,... eher kleinen Teilen des VRAM-Bedarfs ausmachen. Selbst wenn du mit Tesselation 10 Prozent der gesamten Szene erst live generierst, würde ich keinen spürbaren Performance-Vorteil erwarten.
jein, RayTracing ist weitaus breiter einsetzbar und wird, zumindest in den Technischen Unterlagen, auch dafür erklärt. Man kann es zB für Partikel-Physik verwenden oder Umgebungseinflüsse auf Schall.
Für MC ging man den Weg die komplette Grafik umzustellen, andere Spiele verwenden es rein für Spiegelungen oder Global-Illumination.
Wenn die Rechenleistung schon nicht ausreicht, um das Verhalten von Licht zu berechnen, wer wird dann zusätzliche Ressourcen auf Schallwellen verschwenden, die bislang komplett stiefmütterlich behandelt werden? Selbst bei nahezu unbegrenzter Leistung würde ich Raytraycing dort für fragwürdig halten, da Schall sich nicht strahlen- sondern kugelförmig ausbreitet, was nur durch extrem viele Sekundärstrahlen korrekt simuliert werden kann.
Klar, Spiegelungen bringen am einfachsten ein "Wow" zustande, aber viel Sinnvoller wäre es für global-illumination. Da reicht sogar simpelstes Bruteforce noch für 4K 90FPS aus.
Es gibt schon ein paar Videos in denen Leute Linsen und Teleskope zeigen - sowas dynamisch und korrekt zu "faken" wäre für Minecraft sehr aufwendig (hab das mal vor Jahren zu modden probiert mit Spiegeln und Linsen - war eine Lustige Spielerei, aber auf ner r9 280x wars ne Slideshow auch bei 640*480 )
Ich spreche allgemein von den Möglichkeiten der Technik, da ich mit den Fähigkeiten der Minecraft-Engine nur bedingt vertraut bin. Wenn dieser fehle längst etablierte Elemente fehlen, ist es entwicklungstechnisch natürlich einfacher, diese über einen Raytraycer zu implementieren. Der muss, wenn man keine Rücksicht auf die Leistung legt, nur einfach Regeln der Reflektion und Brechung beherrschen, alles andere ergibt sich von selbst. Dieser vermeintlich elegante Code übersteigt aber in aktuellen Auflösungen die Rechenleistung verfügbarer Hardware bei weitem. Ich lasse mich da gerne eines besseren bezugen, aber echte Global Illumination mit vielen Lichtquellen, voller Sichtweite, sekundär-, tertiär- und quartär-Streuung und automatisch auch Schattenwurf habe ich noch nicht in UHD 90 Fps gesehen. Auch nicht in QHD 60 Fps. Und in komplexen Szenen nicht einmal in FHD 30 Fps. Was klappt ist der direkte Licht- und Schattenwurf einzelner Lichtquellen ohne, weitere Ausbreitung des Lichts. Aber das ist dann fast der technischen Stand von Rasterizern mit Stencil-Schatten und hat nicht einmal einen Ambient-Occlusion-Effekt mit drin, geschweige denn physikalisch korrekte, indirekte Beleuchtung der gesamten Szene. Die würde ich umgekehrt sogar als größte Herausforderung für Raytraycer betrachten, eben weil jede matte Oberfläche hunderte von Strahlen der nächst niederen Ordnung für eine korrekte Berechnung provoziert, während perfekte Reflektionen (oder Brechungen – gutes, wenn auch seltenes Beispiel) nur einen einzigen Sekundärstrahl generieren.
Zuletzt bearbeitet: