Im Laufe der Jahre gab es viele Veröffentlichungen zu verschiedenen Techniken zum Zeichnen von Höhenfeldern in einem Ray-Tracer. Einige Algorithmen durchlaufen das Raster direkt (oder über einen Quadtree). andere wandeln das Gelände in ein Polygonnetz um und verwenden einen Standardtest für die Schnittmenge von Strahlendreiecken. Die Forschung scheint sich in den letzten Jahren weiterentwickelt zu haben, und es ist schwierig, Artikel zu finden, die im letzten Jahrzehnt geschrieben wurden, aber das Gleichgewicht zwischen Arbeitsspeicher und Rechenleistung (sowohl CPU als auch GPU) ändert sich immer noch.
Welche Art von Algorithmus bietet heutzutage die beste Leistung auf High-End-Desktop-Computern? Oder wie unterscheiden sich die Leistungsmerkmale der derzeit besten Algorithmen, wenn es keine einzige Antwort gibt?
quelle
Antworten:
Informationen zum aktuellen Stand der Technik finden Sie in diesem Artikel: "Maximale Mipmaps für schnelles, genaues und skalierbares dynamisches Höhenfeld-Rendering", Tevs et al. 2008
Die Grundidee ist, viel Platz zu überspringen, indem man den Maximalwert über große Geländeflächen kennt. Bleibt der Strahl darüber, fahren Sie mit dem nächsten großen Bereich fort.
In Abbildung 8 sehen Sie einen Vergleich der linearen Grundschritte mit den maximalen Mipmaps. Das lineare Stepping ergibt 200 Schritte, die auf einem modernen GPUS in Echtzeit ausgeführt werden können, jedoch tatsächlich langsam sind. Max Mipmaps machen dasselbe in ungefähr 10 Schritten, alle im Shader.
quelle
Das Beste, was ich persönlich gesehen habe, ist das, was inigo quillez macht und was in Demoszenen verwendet wird. Ray Marschiere durch das Gelände und mache größere Schritte, je weiter du von der Kamera entfernt bist, da (normalerweise) Details in der Ferne weniger wichtig sind (Ausnahme: dünne Wände!). Er verwendet Penetrationsinformationen und andere leicht zu ermittelnde Metriken, um die Umgebungsokklusion und andere ausgefeilte Beleuchtungstechniken zu simulieren.
Hier ist eine Demo des in Aktion befindlichen Materials : https://www.youtube.com/watch?v=_YWMGuh15nE
Und hier ist IQs Seite über das Raymarchen im Gelände, die eine ziemlich interessante Lektüre ist: http://www.iquilezles.org/www/articles/terrainmarching/terrainmarching.htm
Übrigens ist in modernen Spielen die Technik der "Bildschirmraumreflexion" oft nur ein Strahlmarsch gegen den Z-Puffer der gerenderten Szene. Der Z-Puffer ist eigentlich nur ein Höhenfeld.
Ich habe auf der Siggraph 2014 einige Vorträge darüber gesehen, und während einige Leute ähnliche Techniken wie IQ verwendeten, machten einige Dinge nicht einmal so gut wie IQ, was interessant zu sehen war: P
quelle
Cone Step Mapping und Relaxed Cone Step Mapping scheinen sehr gute Algorithmen zu sein. Diese basieren auf einer gewissen Vorverarbeitung des Höhenfelds, um eine 2D-Karte zu erstellen, die für eine effizientere Suche verwendet wird.
http://www.lonesock.net/files/ConeStepMapping.pdf https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch18.html
quelle