PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : warum dauert rendern so lang, im gegensatz zu...


(del)
2003-11-27, 22:24:55
warum laufen grafisch sehr gute spiele in echtzeit mit 30 frames pro sekunde und man braucht zum rendern von nicht komplexeren szenen eine halbe minute pro bild? werden spiele schon "vorgerendert" ?

RaumKraehe
2003-11-27, 22:45:41
Dafür gibt es warscheinlich mehrer Antworten.

1. Der "Render" wird in Hardware auf der GraKa abgebildet. Ich denke das ist der entscheidene Geschwindigkeitsvorteil. Der Nachteil: Der Render ist an die Hardware gebunden. D.h. nur ein bestimmter Funktionsumfang. z.B. DX8 oder 9 der nicht veränder werden kann. Pixel-Shader weisen da einen gewissen Ausweg.

2. Die Genauikeit der Spiele-Rendere erreichen momentan nicht die Qualität eines guten Software-Renderes. Vermute ich mal. Ich weiß nicht wie weit die Hardware im Profibereich aussieht. :D Aber gut gerenderte Bilder haben ja meist den Anspruch fotorealistisch zu sein. Das macht ja auch einen Teil de Reizes dieser Rendere aus. Das sind Spiele aber noch lange nicht.

(del)
2003-11-27, 22:58:28
ja schon klar aber das der unterschied zwischen schon halbwegs realistisch und photorealismus zwischen 1/30 sekunde und 30 minuten liegt... na ja ich weiß nicht...

RaumKraehe
2003-11-27, 23:04:35
Auf nem 1 ghz Pentium braucht es noch so seine Zeit bis eine MP3-Datei kodiert ist. Dabei gab es zu der gleichen Zeit, in der der Pentium aktuell war schon DSP die diese Aufgabe in Hardware und damit in Echzeit realisieren konnten.

Dabei würde ich heutige Spielegrafik nicht mal ansatzweise als "halbwegs realistisch" bezeichnen.

nggalai
2003-11-28, 11:15:32
Hi bazooka,
Original geschrieben von bazooka
ja schon klar aber das der unterschied zwischen schon halbwegs realistisch und photorealismus zwischen 1/30 sekunde und 30 minuten liegt... na ja ich weiß nicht... Ich kopiere dazu mal einen Text, den ich mal für cgworld.de ins Forum gepflanzt habe, rein. Ein User hat gefragt, weshalb zum Geier C4D soviel langsamer rendert als Unreal2, obwohl Unreal2 besser aussehe ...

***
Echtzeit-3D à la Unreal2 kannst Du nie mit CGI vergleichen, das mal vorneweg. ;) Mit Applikationen wie Maya oder Softimage können mitlerweilen auf Wunsch Grafikkarten (GFFX) Bilder und Animationen rendern, so dass nicht ALLES per CPU erledigt werden muss, aber normalerweise, naja, macht die CPU alles. Da, wo ein Spiel oder eine 3D-Engine auf die Beschleunigungsfunktionen der Grafikkarte setzen kann (Texturieren, Vertex-Transformationen, Pixel-Shader etc.) dürfen 3D-Programme üblicherweise alles mit der CPU erledigen. Dass es länger dauert, mit einer "allgemeinen" CPU was zu machen als mit einer spezialisierten Zusatzhardware sollte klar sein.

Dazu kommt, dass 3D-Engines anders arbeiten als ein Renderer wie eben in C4D. Wenn Du die Standard-Einstellungen genommen hast, wird auf Raytracing zurückgegriffen. Ich zitiere ausm 3DWorkxx-Glossar:

http://www.3d-worxx.com/faq/index.php?sid=4215&aktion=artikel&rubrik=005&id=52&lang=de
Strahlverfolgung. Bei diesem Rendering-Verfahren werden – wie der Name schon andeutet – für jeden Bildpunkt der Kamera Strahlen in den virtuellen Raum gesendet. Treffen diese auf ein Objekt, wird anhand der definierten Materialeigenschaften und der Umgebungsbedingungen (z.B. Winkel zur Lichtquelle) ermittelt, wie der entsprechende Bildpunkt gefärbt sein muß. So setzt sich dann das endgültige Gesamtbild aus vielen Einzelpunkten zusammen.
In der Realität gehen die Strahlen immer von der Lichtquelle aus. Diese breiten sich je nach Lichtquelle in alle Richtungen aus, wobei der größte Teil unter Umständen völlig irrelevant für den gewählten Bildausschnitt ist. Somit würde man sehr viel Zeit für unnötige Berechnungen aufwenden. Aus diesem Grund geht man beim Raytracing den umgekehrten Weg und berechnet nur die Strahlen die für das resultierende Bild erforderlich sind.Eine Grafikkarte und damit ein Spiel arbeitet nicht so. Da läuft's ähnlich ab wie im Arbeitsfenster von C4D. Entsprechend kannst Du Spiel und Render nicht vergleichen, auch wenn die Ergebnisse vergleichbar aussehen mögen.

[...]

***

Kurz gesagt--komplett anderer technischer Ansatz. Ist ein wenig so, wie wenn Du dich wundern würdest, weshalb's denn länger dauert, wenn ein Künstler ein Gesicht zeichnet, als wenn er einfach ein Photo machen würde.

93,
-Sascha.rb

Fragman
2003-11-28, 12:41:02
@ bazooka:
ich bezweifle, das der unterschied zwischen spiel und photorealismus nur 30 minuten sind, ein aktuelles beispiel:

fuer hdr3 standen 3200 prozessoren zur verfuegung, das rendern eines frames dauerte im schnitt 2 stunden und die hoechste renderzeit pro bild lag bei 2 tagen, ich weiss, nicht alle prozessoren rendern an einem bild, der wuerde der renderer kippen, aber man kann sicher mit mind 20 stueck pro bild rechnen, rechne das nochmal auf dein beispiel hoch, achja, jeder proz hat 4 gb ram zur verfuegung. das sind schon realistischere daten fuer photorealismus.

(del)
2003-11-28, 14:19:22
Original geschrieben von Fragman
@ bazooka:
ich bezweifle, das der unterschied zwischen spiel und photorealismus nur 30 minuten sind, ein aktuelles beispiel:

fuer hdr3 standen 3200 prozessoren zur verfuegung, das rendern eines frames dauerte im schnitt 2 stunden und die hoechste renderzeit pro bild lag bei 2 tagen, ich weiss, nicht alle prozessoren rendern an einem bild, der wuerde der renderer kippen, aber man kann sicher mit mind 20 stueck pro bild rechnen, rechne das nochmal auf dein beispiel hoch, achja, jeder proz hat 4 gb ram zur verfuegung. das sind schon realistischere daten fuer photorealismus.
:stareup: ja is gut aber was ich damit sagen wollte wurde ja sschon verstanden

@nggalei wie rendern geht weiß ich jetzt aber was passiert denn in meinem cinema fenbsterchen? übrigens in weitaus schlechter qualität wie aktuelle spiele und auch nicht ganz in echtzeit.

nggalai
2003-11-28, 15:34:33
Original geschrieben von bazooka
@nggalei wie rendern geht weiß ich jetzt aber was passiert denn in meinem cinema fenbsterchen? übrigens in weitaus schlechter qualität wie aktuelle spiele und auch nicht ganz in echtzeit. Naja, was heisst "weitaus schlechtere Qualität wie aktuelle Spiele?" Als Wireframe? ;)

Spiele-Engines sind halt schön auf die Spiele zugeschnitten, Effekte, Vertex-Transformationen etc. hardcoded als Teil des Renderers der Game-Engine, alles noch schön getunt (z.B. auf Sichtweite, Polygonzahl, LOD, FOV eingeschränkt, Anti-Portale und Portale für die Einschränkung des Sichtbaren, Anzahl gleichzeitig möglicher Ansichten etc.). Ein 3D-Viewport einer Rendering-Anwendung muss da ein "wenig" flexibler sein und alles abbilden können, was der Designer sehen möchte; das noch dazu so genau wie's nur geht. Egal, ob's ein Würfel ist oder ein 2 Mio-Polygone Model ist; egal, ob Du eine 3-Fenster-Ansicht oder ein grosses Arbeitsfenster verwendest. Oder im Hintergrund noch eine Animation renderst, oder einen Shader zusammenklickst, oder ... you get the idea. Ausserdem ist alles editierbar; i.e. Du brauchst noch einiges mehr im Hintergrund am laufen, damit Du mal kurz Vertices rumschieben kannst oder kurz was extruieren darfst.

Wenn's dir ums Texturierte geht: Die Texturen werden in den Viewports entweder wie bei Spielen gewohnt gemappt--dann aber meist eben nur eine bis zwei Texturebenen, damit's auch sicher auf der Zielhardware läuft. Grafikworkstations werden selten wie bei Hardcore-Spielern im Jahresabstand aufgerüstet; so eine Kiste muss schonmal 4-5 Jahre ohne ein Update hinhalten. Hardware-Shader unterstützen erst wenige Applikationen direkt--entweder weil der Aufwand im Verhältnis zur Zielgruppe zu gross ist, oder weil man unter OpenGL halt erst mit GLSlang eine flexible Shader-Unterstützung unabhängig vom IHV bekommt. Kurz mal einen universellen Viewport-"Renderer" zu schreiben, der jeglichen vom User zusammengeklickten Shader mit vielleicht 40 Texturebenen auch darstellen kann, ist gar nicht so einfach. ;) Gouraud-Shading wär etwa das Maximum, was ohne kartenspezifische Pfade und mit der geforderten Darstellungsflexibilität noch drin liegt, bei 3D-Viewports.

93,
-Sascha.rb

(del)
2003-11-28, 16:41:24
ich glaub ich habs kapiert...
warum ist eigentlich ne grafikkarte schneller in der darstellung wie softwarerendering? mein hauptprozessor is ja um ein paar mhz schneller wie die grafikkarte und mer ram hab ich auch. (klingt garantiert amateurhaft, aber wer nicht fragt bleibt dumm ;) )

nggalai
2003-11-28, 17:13:34
Original geschrieben von bazooka
ich glaub ich habs kapiert...
warum ist eigentlich ne grafikkarte schneller in der darstellung wie softwarerendering? mein hauptprozessor is ja um ein paar mhz schneller wie die grafikkarte und mer ram hab ich auch. (klingt garantiert amateurhaft, aber wer nicht fragt bleibt dumm ;) ) Kurz gesagt, weil deine CPU eine "flexible" Recheneinheit ist, während eine Grafikkarte von Grund auf für genau die Operationen gebastelt wurde, die für grafische Darstellungen in Echtzeit benötigt werden. Ist wieder ähnlich wie oben--je flexibler ein Ding (CPU, Renderingsoftware), desto "schneller" müsste das Teil laufen (MHz, optimierter Code), um mit einem spezialisierten Gerät (GPU, Game-Engine) mithalten zu können.

93,
-Sascha.rb

(del)
2003-11-28, 17:36:18
könnte ich theoretisch betrachtetr mit meiner grafikkarte das machen was ich mit meinem normalen pc auch machen kann (mit spezieller software usw) oder wäre das unmöglich? abgesehen davon, dass ich nicht direkt laufwerke anschließen kann.

nggalai
2003-11-28, 18:55:56
Yup, mit "modernen" Karten kann man schon recht viel nicht-Grafik-zentriertes erledigen--ist einfach supi-aufwendig. ;)

www.gpgpu.org

Besonders
http://www.gpgpu.org/cgi-bin/blosxom.cgi/Scientific%20Computing/index.html

Der Trend geht Richtung noch flexiblere GPUs, entsprechend kann man damit dann auch immer "mehr" machen.

93,
-Sascha.rb

(del)
2003-11-28, 19:05:42
Original geschrieben von nggalai
Yup, mit "modernen" Karten kann man schon recht viel nicht-Grafik-zentriertes erledigen--ist einfach supi-aufwendig. ;)

www.gpgpu.org

Besonders
http://www.gpgpu.org/cgi-bin/blosxom.cgi/Scientific%20Computing/index.html

Der Trend geht Richtung noch flexiblere GPUs, entsprechend kann man damit dann auch immer "mehr" machen.

93,
-Sascha.rb

wow, umfangreich und englisch. Dankeschön.

Marcel
2003-11-29, 12:18:48
Mal 'ne Frage von jemandem, der vor vielen Jahren mal jemanden mit POVray am 486er hantieren gesehen hat:
Wenn Ihr hier von Rendern sprecht, meint Ihr tatsächlich Rendern oder Raytracing? Damals war Rendern ja sowas wie "So könnte es aussehen", während Raytracing jeden Bildpunkt bis zum bitteren Anfang zurückverfolgt hat (hoffe, ich werfe nicht das bisschen Erinnerung, das ich habe, durcheinander). Haben sich die Grenzen verwischt?

DigiArts C-G-I
2003-11-29, 14:23:38
Nein es hatt sich immer noch nicht gemisch, Raytracing und Scanline sind immer noch 2 paar schuhe,ungekert gibt scanline renderer die kein Raytracing können was aber heute schon wieder seltener ist.

zum Pov war meiner meinung nach einer der ersten freeware die raytract konnte, bin mir aber nicht sicher.

mfg

DigiArts C-G-I
2003-11-29, 14:31:00
Original geschrieben von bazooka
warum laufen grafisch sehr gute spiele in echtzeit mit 30 frames pro sekunde und man braucht zum rendern von nicht komplexeren szenen eine halbe minute pro bild? werden spiele schon "vorgerendert" ?

also dazu kann ich leider nur schmunzeln!
use the google before ask a dump question. ;D

History (http://www.theparallax.org/forum/3d_faq.html)

Bisbald

Gast
2003-11-30, 16:03:40
Original geschrieben von bazooka
ja schon klar aber das der unterschied zwischen schon halbwegs realistisch und photorealismus zwischen 1/30 sekunde und 30 minuten liegt... na ja ich weiß nicht...

Raytracer und Rasterizer sind halt 2 paar Schuhe :)
Spiele zeigen normal nur was an was gut aussieht (zumindest non-raytracing Spiele).
Von Realismus is da keine Rede. Die Raytracer haben halt die Möglichkeit viel realistischere Bilder zu erstellen. Ausserdem braucht auch nicht jeder Raytracer 30 min für ein Bild. Soll auch Leute geben die in den Genuss kommen, dass ganze in Echtzeit zu berechnen *g*

Capt'N Coax
2003-12-01, 02:59:08
Und vielleicht noch folgendes:
Spiele nutzen idR immer Tricks, um eine akzeptable Geschwindigkeitzu erreichen. So sind beispielsweise Verfahren zum Zeichnen von Schatten völlig unterschiedlich gelöst. Beim Rendern möchte ich (in den meisten Fällen) höchste Genauigkeit, wobei bei Spielen ein "emulierter" Schatten meistens völlig ausreicht. Oder schaue dir mal Lightning genauer an: Lightmaps (z.B. Quake 3 und tausend andere) zu nutzen ist nur ein müder Kompromiss um Lichteinfall darzustellen. Die Wirklichkeit arbeitet völlig anders. In der Spieleindustrie wird eben getrickst und angenähert was das Zeusch hält.Da werden noch einige Jahre vergehen, bis Spiele aussehen wie Render-Vids :( :(

RaumKraehe
2003-12-01, 08:57:36
In der neuen CT ist ein interessanter Artikel über High-End-CAD GraKas. Eigentlich eher ein Test, aber die Redakteure gehen auch kurtz auf die Anforderungen ein.

Modulor
2003-12-01, 14:35:52
Original geschrieben von RaumKraehe
...aber die Redakteure gehen auch kurtz auf die Anforderungen ein.

Heute morgen Apocalypse Now gesehen? :D

RaumKraehe
2003-12-01, 14:49:02
Nö, ich bin nur zu blöd zum schreiben. :D

Evil Ash
2003-12-08, 22:12:37
games mit ner 3d-engine sind noch lange nicht fotorealistisch. da fehlt der realistische schatten, meist werden nur vorberechnete shadow-maps verwendet und radiosity - no way ...

Gast
2003-12-17, 08:02:01
http://www.softimage.com/community/xsi/galleries/v3/Gal_Nov03/pop/images/04lg.jpg


bis man sowas mal in echtzeit sieht ... ich glaub das dauert noch ~10 jahre =)

zild@home
2003-12-17, 08:05:59
oder sowas hier http://www.softimage.com/community/xsi/galleries/v3/Gal_Dec03/pop/images/10lg.jpg

in der qualität kann man heute noch nicht mal kino filme produzieren da es warscheinlich zu lange dauern würde szenen in der obigen quali rauszurendern.

wenn man sich standbilder von matrix oder terminator 3 ansieht dann ist das ziemlich billig wenn man es genau nimmt.
in bewegung siehts gut aus, aber wenn man mal auf pause drückt ? "he neo als pures poser export objekt" *g*

RaumKraehe
2003-12-17, 19:22:28
Ja in gewissen Szenen war auch Matrix recht "einfach" Der Kopf von Neo z.B. in dem Kampf gegen die 100 Agenten.

War wirklich nicht soo gut gemacht.

Fragman
2003-12-18, 22:34:08
allein der polycount ist unerreichbar. bei shrek zb der hoechste ueber 1.2 milliarden pro bild, aber man muss man abwarten. heutige grakas koennen schon ne ganze menge, allein das hdr feature ist gold wert (siehe hl2 technik video) und spherical harmonic lighting sieht auch beeindruckend aus, wenn es in echtzeit laufen sollte. was fehlt ist die power fuer shader und dann natuerlich fuer multilayer shader, als bsp: nimm mal die xsi exp version zur hand und bastel im rendertree nen shader mit mehreren proc texturen incl displacements, transparenzen und/oder reflectionen, dann ists vorbei mit der geschwindigkeit schon beim offlinerendering (natuerlich scanline rendering). an echtzeit ist da nicht zu denken, nun noch mehrere objecte oder ganze landschaften mit solchen shadern wie in heutigen filmen und das wars.