Mit welchem Programm...
>Am Schluß werden immer Pixel gerendert, natürlich. Das ist doch der Sinn des Renderns: 3D-Vektor-Daten werden unter einer bestimmten Kamera-Einstellung usw. in ein 2D-Pixel-Raster gezeichnet.
Das ist ja wohl klar. Aber ichd achte, das Povray etc. jetzt in dem Sinne wirklich nur Pixel rendert und Schatten usw. alles selber berechnet und nicht über DirectX meshes erstellt und der ganze Kram.
@Kaeru Gaman:
Ich sagte auch nicht: Nur die Schachtel. Wenn die virtuelle 3D Welt mit Polygonen vollgepumpt wäre.
Nene, glaub mir, ich weiß, wovon spreche. Und das wäre ja ziemlich hohl, wenn da im Spiel sone mega Schachtel wäre und der Rest Schrott.
Das ist ja wohl klar. Aber ichd achte, das Povray etc. jetzt in dem Sinne wirklich nur Pixel rendert und Schatten usw. alles selber berechnet und nicht über DirectX meshes erstellt und der ganze Kram.
@Kaeru Gaman:
Ich sagte auch nicht: Nur die Schachtel. Wenn die virtuelle 3D Welt mit Polygonen vollgepumpt wäre.
Nene, glaub mir, ich weiß, wovon spreche. Und das wäre ja ziemlich hohl, wenn da im Spiel sone mega Schachtel wäre und der Rest Schrott.
Povray ist ein Raytracer, d.h. es werden auf Deiner Grafikkarte keine Polygone erstellt, falls Du das meinst. Sondern es werden von der Kamera aus "Strahlen" berechnet, die irgendwann auf die 3D-Objekte auftreffen. Je nach Entfernung und Beleuchtung etc bekommt dann dieser einzelne Strahl quasi eine Farbe, die dann letztendlich als Pixel dargestellt wird.
Für Realtime-Sachen ist das tatsächlich recht aufwendig, vor allem auch, weil Grafikkarten sowas nicht unterstützen. Es gibt natürlich dennoch Beispiele für Spiele mit Raycasting, z.B. Wolfenstein, Doom oder Duke Nukem 3D. Ab Quake jedoch wurde auf Raycasting verzichtet, weil das "Rastern", also Meshes aus Polygonen basteln die dann auf den Bildschirm gerastert werden, effizienter ist.
Letztendlich haben beide Verfahren natürlich Vor- und Nachteile. Raycasting ist eben für statische Bilder oder auch für Filme eine gute Wahl, gerade auch weil man Reflektionen damit sehr gut hinkriegt, und auch perfekte Objekte wie z.B. Kugeln (die dann tatsächlich rund sind). Für Spiele hingegen ist es sinnvoller, auf Polygone zurückzugreifen, weil es eben schneller geht, aber dafür hat man halt dann z.B. keine perfekten Kugeln.
Für Realtime-Sachen ist das tatsächlich recht aufwendig, vor allem auch, weil Grafikkarten sowas nicht unterstützen. Es gibt natürlich dennoch Beispiele für Spiele mit Raycasting, z.B. Wolfenstein, Doom oder Duke Nukem 3D. Ab Quake jedoch wurde auf Raycasting verzichtet, weil das "Rastern", also Meshes aus Polygonen basteln die dann auf den Bildschirm gerastert werden, effizienter ist.
Letztendlich haben beide Verfahren natürlich Vor- und Nachteile. Raycasting ist eben für statische Bilder oder auch für Filme eine gute Wahl, gerade auch weil man Reflektionen damit sehr gut hinkriegt, und auch perfekte Objekte wie z.B. Kugeln (die dann tatsächlich rund sind). Für Spiele hingegen ist es sinnvoller, auf Polygone zurückzugreifen, weil es eben schneller geht, aber dafür hat man halt dann z.B. keine perfekten Kugeln.
Zuletzt geändert von ZeHa am 04.01.2007 13:26, insgesamt 1-mal geändert.


ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
So eine Diskussion über nen Schuhkarton ist doch völlige Zeitverschwendung. Bring erstmal das was in den Karton rein muss, dann lohnt es sich darüber nach zu denken.
Ja, sicher kommts auf die 8 Quads auch nichtmehr drauf an bei ner 3DWelt mit 10000 Polygonen. Aber davon sprechen wir doch garnicht, oder heißt das Thema "Schuhkarton im Dschungel darstellen: Zu langsam?".
Btw.:
"Nene, glaub mir, ich weiß, wovon spreche." Achja? Ok, ab sofort nenn ich dich den Allwissenden Fragensteller, ok?
Danke.
Hä? Gehts hier jetzt um einen Dschungel oder um nen Schuhkarton? Oder wachsen plötzlich fertige Schuhkartons in Massen auf den Palmen? Was willst du mit nem Schuhkarton in einem Spiel?Ich sagte auch nicht: Nur die Schachtel. Wenn die virtuelle 3D Welt mit Polygonen vollgepumpt wäre.
Nene, glaub mir, ich weiß, wovon spreche. Und das wäre ja ziemlich hohl, wenn da im Spiel sone mega Schachtel wäre und der Rest Schrott.

Ja, sicher kommts auf die 8 Quads auch nichtmehr drauf an bei ner 3DWelt mit 10000 Polygonen. Aber davon sprechen wir doch garnicht, oder heißt das Thema "Schuhkarton im Dschungel darstellen: Zu langsam?".
Btw.:
"Nene, glaub mir, ich weiß, wovon spreche." Achja? Ok, ab sofort nenn ich dich den Allwissenden Fragensteller, ok?



Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@ZeHa
du wirfst jetzt aber Raycasting und Raytracing in einen topf.
das Raycasting ist auch nur ein abgespecktes Raytracing,
nur halt mit anderen begrenzungen als heutige Hardware-3D.
man hat sich bei der entwicklung der hardware entschieden,
nur polygone zu verwenden, weil die berechnungen für flache oberflächen weit einfacher sind.
ein Raytracer arbeitet auch mit mathematischem oberflächendefinitionen,
die sind allerdings wesentlich komplexer, weil es in jeder form gekrümmte oberflächen sein können.
ein Torus beispielsweise ist ein Polynom 4ten grades,
das braucht wesentlich kompliziertere berechnungen,
als eine gruppe von zwanzigtausend dreiecken.
@DW
> Aber ichd achte, das Povray etc. jetzt in dem Sinne wirklich nur Pixel rendert und Schatten usw. alles selber berechnet und nicht über DirectX meshes erstellt und der ganze Kram.
ist ja richtig gedacht, aber im grunde ist DX eine billig-billig version von POV,
weil es NUR den sonderfall "Polygon" berechnen kann,
und nicht die komplexen oberflächen wie ein echter Raytracer.
es wäre also für POV in keiner weise praktisch, sich für einen teil seiner berechnungen DX zunutze zu machen.
DX macht mit seinen meshes auch nix anderes als POV, auch DX rendert daraus pixel,
nur das seine Routinen deshalb schneller sind weil sie
a) auf hardware gebrannt sind und direkt in der Graka ablaufen und
b) eben extrem abgespeckt sind um nur mit polygonen klarkommen zu müssen.
raytracing-karten sind mittlerweile in der entwicklung.
schon vor zwei jahren wurden die ersten experimentalen karten vorgestellt.
du wirfst jetzt aber Raycasting und Raytracing in einen topf.
das Raycasting ist auch nur ein abgespecktes Raytracing,
nur halt mit anderen begrenzungen als heutige Hardware-3D.
man hat sich bei der entwicklung der hardware entschieden,
nur polygone zu verwenden, weil die berechnungen für flache oberflächen weit einfacher sind.
ein Raytracer arbeitet auch mit mathematischem oberflächendefinitionen,
die sind allerdings wesentlich komplexer, weil es in jeder form gekrümmte oberflächen sein können.
ein Torus beispielsweise ist ein Polynom 4ten grades,
das braucht wesentlich kompliziertere berechnungen,
als eine gruppe von zwanzigtausend dreiecken.
@DW
> Aber ichd achte, das Povray etc. jetzt in dem Sinne wirklich nur Pixel rendert und Schatten usw. alles selber berechnet und nicht über DirectX meshes erstellt und der ganze Kram.
ist ja richtig gedacht, aber im grunde ist DX eine billig-billig version von POV,
weil es NUR den sonderfall "Polygon" berechnen kann,
und nicht die komplexen oberflächen wie ein echter Raytracer.
es wäre also für POV in keiner weise praktisch, sich für einen teil seiner berechnungen DX zunutze zu machen.
DX macht mit seinen meshes auch nix anderes als POV, auch DX rendert daraus pixel,
nur das seine Routinen deshalb schneller sind weil sie
a) auf hardware gebrannt sind und direkt in der Graka ablaufen und
b) eben extrem abgespeckt sind um nur mit polygonen klarkommen zu müssen.
raytracing-karten sind mittlerweile in der entwicklung.
schon vor zwei jahren wurden die ersten experimentalen karten vorgestellt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Ich weiß, ich hab's korrigiert. Raycasting und Raytracing, hatte grad in dem Moment gar nicht dran gedacht, daß es da zwei Wörter gab 



ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
@DW:
So ne Grafik wurde schonmal in nem game umgesetzt, sogar ein äusserst beliebtes + bekanntes:
Quake 3
Also nicht in der verkauften version - logo, aber irgend so n paar freaks an ner uni haben das ganze auf raytracing umgeschrieben wodurch die grafik nochmal ne ganze ecke gepushed wurde, gerade in sachen licht, schatten und spiegelungen.
Nachteil an der Sache:
Das ding lief auf nem Cluster oder Supercomputer (weiss ich leider nimmer genau)... So gesehen hast du recht: n standard Home-PC würde da gewaltig ins schwitzen kommen ^^
Allerdings wurde damals auch darauf hingewiesen dass sich wohl der ein oder andere unbekannte Chip Hersteller drauf konzentriert GPUs zu erschaffen welche für raytracing geeignet sind. Bis dahin wirds wohl noch dauern, aber wenn es so weit ist können wir uns auf eine ganz neue Grafikpracht freuen. Zwar sind wir dank shadern usw. auch schon recht weit fortgeschritten, aber raytracing iss imho doch ne andere klasse. Ausserdem gibt es bereits einige echtzeit raytracing engines die schon relativ akzeptable framerates liefern... Also mal abwarten was kommt...
Aber bei dem Thema erinnere ich mich gerade wehmütig an 3Dfx... Wären die nicht geschluckt worden hätten wir uns schon viel früher über gutes+schnelles antialiasing, motion blur, depth of field etc ohne merklichen geschwindigkeitsverlust freuen können...
Mfg
RaVeN
So ne Grafik wurde schonmal in nem game umgesetzt, sogar ein äusserst beliebtes + bekanntes:
Quake 3
Also nicht in der verkauften version - logo, aber irgend so n paar freaks an ner uni haben das ganze auf raytracing umgeschrieben wodurch die grafik nochmal ne ganze ecke gepushed wurde, gerade in sachen licht, schatten und spiegelungen.
Nachteil an der Sache:
Das ding lief auf nem Cluster oder Supercomputer (weiss ich leider nimmer genau)... So gesehen hast du recht: n standard Home-PC würde da gewaltig ins schwitzen kommen ^^
Allerdings wurde damals auch darauf hingewiesen dass sich wohl der ein oder andere unbekannte Chip Hersteller drauf konzentriert GPUs zu erschaffen welche für raytracing geeignet sind. Bis dahin wirds wohl noch dauern, aber wenn es so weit ist können wir uns auf eine ganz neue Grafikpracht freuen. Zwar sind wir dank shadern usw. auch schon recht weit fortgeschritten, aber raytracing iss imho doch ne andere klasse. Ausserdem gibt es bereits einige echtzeit raytracing engines die schon relativ akzeptable framerates liefern... Also mal abwarten was kommt...
Aber bei dem Thema erinnere ich mich gerade wehmütig an 3Dfx... Wären die nicht geschluckt worden hätten wir uns schon viel früher über gutes+schnelles antialiasing, motion blur, depth of field etc ohne merklichen geschwindigkeitsverlust freuen können...

Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
der rendert auch wirklich alles selber...DW hat geschrieben:Ok. Danke für die Aufklärung von diesem Povray. Ich dachte immer, der berechnet alles, wirklich alles selber und rendert dann nur Pixels. Nix mit Polygonen.
nur ist ein polygon eben auch ein objekt im raum, nämlich eine begrenzte fläche.
POV kann aber eben noch andere gebilde im raum, nämlich Kugeln und andere gekrümmte flächen,
was eben reine polygon-engines nicht können.
außerdem rechnen die polygon-engines gewisse oberflächen-eigenschaften eben polygonweise.
in POV kann jeder allerkleinste abschnitt der oberfläche besondere eigenschaften aufweisen.
außerdem ist POV nicht auf bitmap-textures angewiesen.
er kann sie auch benutzen, aber seine wirkliche stärke liegt in texturen,
die aufgrund von dreidimensionalen formeln berechnet werden.
maln kleines beispiel:

da ist kein einziges polygon verwendet worden und keine einzige bitmap-texture.
...und jetzt stell dir mal vor, wieviele polygone man bräuchte für diese feingekrümmte fläche,
und wie DX ins schwitzen käme, diese spiegelungen zu berechnen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Und genau Dinge wie diese meine ich - klar gibt es HDR - aber das frisst enorm Leistung und wenn man ne qualität eines raytraycers erreichen will (wie auf Kaerus Bild, nur noch mehr Objekte etc), dann geht die Leistung auch bei modernen Rechnern in die Knie. Hingegen wenn man wirklich ne GPU hat welche auf raytracing optimiert ist, dann läuft das in einem rutsch durch, da das dann zum "standardrepertoire" gehört...
Wie bereits gesagt wurde, die Technik hat einfach nen anderen Weg eingeschlagen... Die ganzen effekte die heute erst richtig salonfähig werden und halbwegs performant sind gab es schon früher bei raytracern. Hätte man damals gleich darauf gesetzt diese Echtzeitfähig zu machen, wer weiss wo wir heute wären? Oder wie im letzten Beitrag: Was wäre wenn sich 3Dfx durchgesetzt hätte?
Wer weiss, wer weiss...
Btw.: Prozedurale Texturen werden mittlerweilen schon von einigen engines genutzt, die erste war zum Beispiel die von Aquanox. Hat den vorteil dass sie sich zur laufzeit verändern lässen, man eine "animation" hat (z.b. Lava), aber nicht x texturen laden muss sondern nur n paar variablen verändert.
Mfg
RaVeN
Wie bereits gesagt wurde, die Technik hat einfach nen anderen Weg eingeschlagen... Die ganzen effekte die heute erst richtig salonfähig werden und halbwegs performant sind gab es schon früher bei raytracern. Hätte man damals gleich darauf gesetzt diese Echtzeitfähig zu machen, wer weiss wo wir heute wären? Oder wie im letzten Beitrag: Was wäre wenn sich 3Dfx durchgesetzt hätte?
Wer weiss, wer weiss...
Btw.: Prozedurale Texturen werden mittlerweilen schon von einigen engines genutzt, die erste war zum Beispiel die von Aquanox. Hat den vorteil dass sie sich zur laufzeit verändern lässen, man eine "animation" hat (z.b. Lava), aber nicht x texturen laden muss sondern nur n paar variablen verändert.
Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94