Seite 2 von 2
Verfasst: 04.01.2007 12:57
von DW
>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.
Verfasst: 04.01.2007 13:04
von ZeHa
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.
Verfasst: 04.01.2007 13:24
von DarkDragon
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.
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.
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?
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.
Verfasst: 04.01.2007 13:28
von Kaeru Gaman
@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.
Verfasst: 04.01.2007 13:30
von ZeHa
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

Verfasst: 04.01.2007 14:36
von RaVeN99
@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
Verfasst: 04.01.2007 19:52
von DW
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.
Zu den Glanz- und Lichteffekten: HDRR machts auch möglich.
Verfasst: 04.01.2007 23:13
von Kaeru Gaman
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.
der rendert auch wirklich alles selber...
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...
Verfasst: 05.01.2007 00:33
von RaVeN99
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