Ich bin sowohl für Gamedev als auch für Blender neu und es gibt etwas, das ich nicht rütteln kann:
In Blender kann ein einzelnes Rendern (auch mit dem erweiterten Renderer "Zyklen") auf meinem Computer bis zu 45 Sekunden dauern. Aber offensichtlich kann man in einem Spiel erstaunliche Grafiken haben, und so geschieht das Rendern offensichtlich kontinuierlich, mehrere Male pro Sekunde in Echtzeit.
Daher frage ich mich auch, was die Trennung ist, in Bezug darauf, wie "langsam" Blenders Rendering zu sein scheint, im Vergleich dazu, wie Game Engines Echtzeit-Rendering (oder nahezu Echtzeit-Rendering) erzielen.
Antworten:
Echtzeit-Rendering, auch modernes Echtzeit-Rendering, ist eine Fülle von Tricks, Shortcuts, Hacks und Approximationen.
Nehmen Sie zum Beispiel Schatten.
Wir verfügen immer noch nicht über einen vollständig genauen und robusten Mechanismus zum Rendern von Echtzeitschatten aus einer beliebigen Anzahl von Lichtern und beliebig komplexen Objekten. Wir haben mehrere Varianten von Shadow-Mapping-Techniken, aber alle leiden unter den bekannten Problemen mit Shadow-Maps, und selbst die "Korrekturen" für diese sind nur eine Sammlung von Workarounds und Kompromissen (als Faustregel, wenn Wenn Sie die Begriffe "Tiefenverzerrung" oder "Polygonversatz" in irgendetwas sehen, dann ist dies keine robuste Technik.
Ein weiteres Beispiel für eine von Echtzeit-Renderern verwendete Technik ist die Vorberechnung. Wenn etwas (z. B. Beleuchtung) zu langsam ist, um in Echtzeit berechnet zu werden (und dies kann von dem verwendeten Beleuchtungssystem abhängen), können wir es vorberechnen und speichern. Dann können wir die vorberechneten Daten in Echtzeit verwenden -Zeit für eine Leistungssteigerung, die oft auf Kosten dynamischer Effekte geht. Dies ist ein direkter Vergleich zwischen Arbeitsspeicher und Rechenleistung: Arbeitsspeicher ist oft billig und reichlich, Rechenleistung häufig nicht. Daher wird der zusätzliche Arbeitsspeicher im Austausch gegen Einsparungen bei der Rechenleistung verbraucht.
Offline-Renderer und Modellierungswerkzeuge konzentrieren sich dagegen eher auf Korrektheit und Qualität. Da sie mit sich dynamisch ändernder Geometrie arbeiten (z. B. einem Modell, während Sie es erstellen), müssen sie häufig die Dinge neu berechnen, wohingegen ein Echtzeit-Renderer mit einer endgültigen Version arbeiten würde, für die diese Anforderung nicht besteht.
quelle
Die aktuelle Antwort hat die allgemeinen Probleme sehr gut erklärt, aber meines Erachtens fehlt ein wichtiges technisches Detail: Die Render-Engine "Cycles" von Blender ist eine andere Art von Engine als die, die die meisten Spiele verwenden.
In der Regel werden Spiele gerendert, indem alle Polygone in einer Szene durchlaufen und einzeln gezeichnet werden. Dazu werden die Polygonkoordinaten durch eine virtuelle Kamera projiziert, um ein flaches Bild zu erzeugen. Der Grund, warum diese Technik für Spiele verwendet wird, ist, dass moderne Hardware auf dieser Technik basiert und in Echtzeit mit relativ hohen Detaillierungsgraden ausgeführt werden kann. Aus Interesse ist dies auch die Technik, die bei der vorherigen Render-Engine von Blender angewendet wurde, bevor die Blender Foundation die alte Engine zugunsten der Cycles-Engine fallen ließ.
Cycles ist dagegen eine sogenannte Raytracing-Engine. Anstatt die Polygone zu betrachten und einzeln zu rendern, werden virtuelle Lichtstrahlen in die Szene ausgestrahlt (einer für jedes Pixel im endgültigen Bild), der Lichtstrahl wird von mehreren Oberflächen reflektiert und anhand dieser Daten entschieden, welche Farbe das Pixel hat sollte sein. Raytracing ist eine sehr rechenintensive Technik, die für das Rendern in Echtzeit unpraktisch ist. Sie wird jedoch für das Rendern von Bildern und Videos verwendet, da sie ein höheres Maß an Detailgenauigkeit und Realismus bietet.
Bitte beachten Sie, dass meine kurzen Beschreibungen von Raytracing und Polygon-Rendering der Kürze halber stark reduziert sind. Wenn Sie mehr über die Techniken erfahren möchten, empfehle ich Ihnen, ein ausführliches Tutorial oder Buch zu besuchen, da ich vermute, dass es sehr viele Leute gibt, die bessere Erklärungen geschrieben haben, als ich aufbringen könnte.
Beachten Sie auch, dass beim 3D-Rendering eine Vielzahl von Techniken zum Einsatz kommen und einige Spiele für bestimmte Zwecke tatsächlich Variationen des Raytracing verwenden.
quelle