PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CELL-Chip als Basis für Raytracing


Jules
2005-03-15, 16:41:47
in einem magazin hab ich mal was davon gehört das
das möglich ware

wäre da was dran?

Coda
2005-03-15, 16:56:24
Jo das kann er sicher gut. Aber ein richtiger Hardware Chip wäre immer noch die viel idealere Lösung.

Lilebror
2005-03-16, 09:42:06
Was ist raytracing und wat kann der Cell denn so tolles ?
Weiß nich was das is.

Jules
2005-03-16, 13:06:03
raytrcing ist da um umsere welt so perfekt zu simulieren
sprich: mathematisch korrekte schatten (far cry, doom III und sogar die
neue UNREAL ENGINE 3 rechnen spiegelungen sowaohl auch schatten falsch
,obwohl man bei EPIC von raytrcing gesprochen hat, stimmt aber nicht.)

also mathematisch korrekt berechnete schatten, spiegelungen und sonst was so in unsrerer umwelt anfällt, ist raytracing.

da gibts noch so andere sachen, das würde dann aber keiner lesen,
weil es ein paar seiten füllen würde.

Coda
2005-03-16, 13:22:31
Stencil Shadows ala Doom 3 sind genauso exakt wie Raytracing.

Weder Raytracing noch Rasterizing ist physikalisch korrekt, da muss noch viel mehr getan werden (was Raytracing erfordern kann aber nicht muss)

Jules
2005-03-16, 13:37:21
dann hab ich mich wohl an die falschen quellen gewendet.

hatte nämlich auch was von stencil shadows als korrekt berechnete schattenwürfe irgendwo gelesen, dachte wäre aber nur so dahingesagt.

PrefoX
2005-03-16, 14:12:15
raytracing =strahlenverfolgung

Jules
2005-03-16, 14:22:19
?

stav0815
2005-03-16, 16:00:07
?

Raytracing bedeutet eigentlich dass jeder Lichtstrahl exakt berechnet wird, bei Rasterizing muss ein extra Lichtengine eingebaut werden (glaub ich)

Jesus
2005-03-16, 18:41:09
Stencil Shadows ala Doom 3 sind genauso exakt wie Raytracing.



Das Thema hatten wir ja schon mal zu genüge diskutiert :rolleyes:

Coda
2005-03-16, 18:48:26
Da gibt's nix zu diskuttieren. Reines Raytracing generiert auch nur harte Schatten, da ist absolut kein visueller Unterschied vorhanden zu Stencil.

Ich habe nicht gesagt dass ich Stencil Schatten besonders toll finde.

tombman
2005-03-17, 02:08:01
Da gibt's nix zu diskuttieren. Reines Raytracing generiert auch nur harte Schatten, da ist absolut kein visueller Unterschied vorhanden zu Stencil.

Ich habe nicht gesagt dass ich Stencil Schatten besonders toll finde.

Also ich denke wir sind uns einige, daß RT verdammt geil aussehen kann wenn man es richtig macht und abartig hohe Poligonmengen erlaubt ;)

][immy
2005-03-17, 07:12:29
Da gibt's nix zu diskuttieren. Reines Raytracing generiert auch nur harte Schatten, da ist absolut kein visueller Unterschied vorhanden zu Stencil.

Ich habe nicht gesagt dass ich Stencil Schatten besonders toll finde.

ganz und gar nicht
reines raytracing würde sogar recht sanfte schatten erzeugen. da du nicht nur die "strahlen" berechnest die auf einen körper treffen und daher hinter ihm einen schatten werfen, sondern auch strahlen die an diesem körper vorbeigehen und diesen schatten auch wieder ein wenig aufhellen

das ist zwar ein extremer rechenaufwand, aber chips die darauf hin entwickelt wurden sollten das schon recht gut und flott können.

Neomi
2005-03-17, 11:39:57
[immy']ganz und gar nicht
reines raytracing würde sogar recht sanfte schatten erzeugen. da du nicht nur die "strahlen" berechnest die auf einen körper treffen und daher hinter ihm einen schatten werfen, sondern auch strahlen die an diesem körper vorbeigehen und diesen schatten auch wieder ein wenig aufhellen

Die hellen nicht den Schatten auf, sondern den Bereich, der nicht im Schatten liegt. ;)

Ich glaube aber, du meinst was völlig anderes. Global Illumination wird zusätzlich verwendet, da man mit Raytracing alleine eben nur harte Schatten generieren kann. Global Illumination wird dadurch aber noch lange nicht zum Raytracing.

SuppenKaspa
2005-03-17, 16:06:24
Die hellen nicht den Schatten auf, sondern den Bereich, der nicht im Schatten liegt. ;)

Ich glaube aber, du meinst was völlig anderes. Global Illumination wird zusätzlich verwendet, da man mit Raytracing alleine eben nur harte Schatten generieren kann. Global Illumination wird dadurch aber noch lange nicht zum Raytracing.

Hi,

also wenn Ihr mal wissen wollt, was wer mit welchen Schatten meint, dann soltet Ihr Euch die mindetens 100 Bände zu diesem Thema an Fachliteratur in einer Uni Eurer Wahl ansehen.

Kurze Zusammenfassung:

Ausgangspunkt für Raytracing ist, daß jeder Lichtstrahl auch umkehrbar betrachtet werden kann. Normalerweise geht Licht ja von einer Lichtquelle aus und wird an diversen Gegenständen reflektiert. Diese Reflektionen fallen dann nach diversen Spiegelungen und Brechungen in unser Auge.

Beim Raytracing geht man genau andersherum vor. Es wird quasi aus dem Auge (Monitor) für jeden Bildpunkt ein Lichtstrahl losgeschickt, durch ein Virtuelles Objektiv (Kamera). Dieser fällt dann irgendwann (sonst hat man es mit Himmel zu tun). Auf einen Gegenstand. Für diesen Punkt wird dann ermittelt, welche Farbe sehe ich. Danach wird von dort aus direkt ein Lichtstrahl zu einer Lichtquelle geschickt. Kann ich diese Lichtquelle sehen, dann ist der Bildpunkt hell. Kann ich sie nicht sehen, dann ist ein Objekt zwischen Lichtquelle und meinem Bildpunkt (also Schatten).

Um nun wieder auf die Schatten zurückzukommen:

1. Wenn ich nur genau eine Lichtquelle habe, und auch nur einen Lichtstrahl pro Pixel sende (und auch von diesem Pixel genau einen zur Lichtquelle), dann habe ich immer harte Schatten, die sogar immer schwarz sind.

2. Es gibt aber auch hier Aliasing oder Multisampling (wie auch immer). Dabei werden dann quasi unscharft mehrere Lichtstrahlen losgeschickt. Das führt dann zu weicheren Schatten, bei exponentiell steigendem Rechenbedarf.

3. Mit mehr Lichtquellen, besser Schatten, was aber Tagsüber nicht realistisch ist. Wer hat schon mehrere Sonnen? :-(

4. Wenn die Lichtquelle nicht ein Punkt ist, (so wie immer), dann bekomme ich auch weichere Schatten. Aber diese Problem ist sehr schwer mit Raytracing zu beschreiben, da ich ja quasi für eine Sonne ermitteln muß, ob ich die an einem Objekt vorbei sehen kann. Das ist wie mit dem Daumen. Scheinbar ist die Sonne kleiner als der Daumen, den man am ausgestreckten Arm vor sich hält. Das heißt, das der Daumen eine gewisse Fläche Verdeckt, aber daneben eben etwas von der Sonne vorbeischimmert. Das ist dann der Halbschatten.

5. Weiterhin wird Licht reflektiert und beleuchtet so evtl. von Hinten den Schatten. Kann man mit Raytracing lösen. Hier gibt es einen brute force Algorythmus, bei dem von jedem Bildpunkt zu jedem objekt ein Lichtstrahl geschickt wird (und geguckt wird, ob da was zwischen ist), und dann noch festgestellt wird, wie stark das Objekt reflektiert, und ob da eine Lichtquelle im richtigen Winkel draufscheint. Das ist leider weder in Software noch in Hardware von irgendjemanden in Echtzeit zu bezahlen.

Bei Raytracing gilt halt: Komplexität = Rechenpower = Kosten.

Ich hoffe ich konnte helfen.

Hier ist der Link zu einem Projekt, daß das ganze in die Spielewelt bringen möchte (sieht auf dem Video gut aus):
http://www.openrt.de/

Hier ist dann der Link zu einer Graphikbibliothek ala OpenGL (OpenRT)
http://graphics.cs.uni-sb.de/RTGames/

Und das ist dann der link zu einem Spiel, was damit geschrieben wurde (unter download gibts ein Video davon):
http://graphics.cs.uni-sb.de/~morfiel/oasen/


SuppenKaspa

Coda
2005-03-17, 17:17:54
2. Es gibt aber auch hier Aliasing oder Multisampling (wie auch immer). Dabei werden dann quasi unscharft mehrere Lichtstrahlen losgeschickt. Das führt dann zu weicheren Schatten, bei exponentiell steigendem Rechenbedarf.Das würde mit Stencil genauso gehene (mehrere leicht verschobene Lichtquelle)

Ich bleibe dabei. Raytracing allein erzeugt keine Soft Shadows. Dazu braucht man irgendein Addon wie Photon Mapping.

Wenn die Lichtquelle nicht ein Punkt ist, (so wie immer), dann bekomme ich auch weichere Schatten. Aber diese Problem ist sehr schwer mit Raytracing zu beschreiben, da ich ja quasi für eine Sonne ermitteln muß, ob ich die an einem Objekt vorbei sehen kann.Du hast recht, das ist mit Raytracing gar nicht zu lösen. :rolleyes:
Das wäre schon eher was für Radiosity. Da funktionieren dafür die Point Lights nicht mehr ;)

Neomi
2005-03-17, 18:01:02
2. Es gibt aber auch hier Aliasing oder Multisampling (wie auch immer). Dabei werden dann quasi unscharft mehrere Lichtstrahlen losgeschickt. Das führt dann zu weicheren Schatten, bei exponentiell steigendem Rechenbedarf.

Falsch. Es können mehrere Strahlen pro Pixel gesendet werden, um das übliche Antialiasing zu erzielen. Von einem Punkt aus kannst du aber immer nur einen Strahl zu einem anderen Punkt schicken.

4. Wenn die Lichtquelle nicht ein Punkt ist, (so wie immer), dann bekomme ich auch weichere Schatten. Aber diese Problem ist sehr schwer mit Raytracing zu beschreiben, da ich ja quasi für eine Sonne ermitteln muß, ob ich die an einem Objekt vorbei sehen kann. Das ist wie mit dem Daumen. Scheinbar ist die Sonne kleiner als der Daumen, den man am ausgestreckten Arm vor sich hält. Das heißt, das der Daumen eine gewisse Fläche Verdeckt, aber daneben eben etwas von der Sonne vorbeischimmert. Das ist dann der Halbschatten.

Das nennt man dann Arealight. Die Sonne wird dann angenähert über massig Punktlichtquellen, die sich alle im Volumen der Kugel befinden. Es wird ein Strahl zu jeder dieser Quellen geschickt, die Ergebnisse werden aufsummiert.

5. Weiterhin wird Licht reflektiert und beleuchtet so evtl. von Hinten den Schatten. Kann man mit Raytracing lösen. Hier gibt es einen brute force Algorythmus, bei dem von jedem Bildpunkt zu jedem objekt ein Lichtstrahl geschickt wird (und geguckt wird, ob da was zwischen ist), und dann noch festgestellt wird, wie stark das Objekt reflektiert, und ob da eine Lichtquelle im richtigen Winkel draufscheint. Das ist leider weder in Software noch in Hardware von irgendjemanden in Echtzeit zu bezahlen.

Das ist dann Regathering, Final Gathering oder wie immer das jeweilige Programm das auch nennen will. Kein Brute Force Raytracing, sondern eine zusätzliche Berechnung zum normalen Raytracing. Das ist für spiegelnde und leuchtende Objekte in der Umgebung gut, für diffuse Reflektion ist weiterhin Global Illumination nötig.

SuppenKaspa
2005-03-23, 17:03:22
Falsch. Es können mehrere Strahlen pro Pixel gesendet werden, um das übliche Antialiasing zu erzielen. Von einem Punkt aus kannst du aber immer nur einen Strahl zu einem anderen Punkt schicken.

??? Das war doch gemeint. Also sind wir doch der gleichen Meinung?

Das nennt man dann Arealight. Die Sonne wird dann angenähert über massig Punktlichtquellen, die sich alle im Volumen der Kugel befinden. Es wird ein Strahl zu jeder dieser Quellen geschickt, die Ergebnisse werden aufsummiert.

Ja, das Problem ist die Rechenzeit. Das wird halt sehr sehr teuer.


Das ist dann Regathering, Final Gathering oder wie immer das jeweilige Programm das auch nennen will. Kein Brute Force Raytracing, sondern eine zusätzliche Berechnung zum normalen Raytracing. Das ist für spiegelnde und leuchtende Objekte in der Umgebung gut, für diffuse Reflektion ist weiterhin Global Illumination nötig.

Tja, das war hier aber nicht die Frage. Hier sollte das theoretisch in Raytracing gelöst werden. Damit geht das halt, aber eben nicht besonders schnell.
Global Illumination ist erzeugt keine realistische Beleuchtung. Hier wird eben davon ausgegangen, daß es eine grundsätzliche Reflektionsstrahlung gibt. Das ist zwar ein Trick, der den Rechenaufwand vermeitet, aber hat nichts mit Raytracing im allgemeinen zu tun. Wir wollten ja keine Tricks :-)

SuppenKaspa

Neomi
2005-03-23, 22:11:47
??? Das war doch gemeint. Also sind wir doch der gleichen Meinung?

Hmmm, hab dich da ein wenig anders verstanden. Ich dachte, du meintest erst einen Strahl zu einem Punkt auf der Oberfläche und von dort aus mehrere Strahlen zur Lichtquelle, einem weiteren Punkt.

Wie auch immer, mehrere Strahlen für einen Pixel können auch nicht zu weichen Schatten verhelfen. Man vermeidet nur das Aliasing des Schattens, der ist aber weiterhin hart. Nur eben hart wie eine Polygonkante mit Antialiasing.

Tja, das war hier aber nicht die Frage. Hier sollte das theoretisch in Raytracing gelöst werden. Damit geht das halt, aber eben nicht besonders schnell.

Eine Frage der Definition. Es werden zwar mehrere Strahlen vom Punkt der Oberfläche aus losgeschickt, um weitere Beleuchtung zu sammeln, aber die werden eher in zufälliger Richtung ausgesand. Bis zum Punkt der Oberfläche wurde der Strahl alleine durch Mathematik und physikalische Parameter zurückverfolgt. Was dann in welche Richtung ausgesand wird, folgt zwar wieder diesen Regeln, diese Strahlen entstanden aber durch Zufallswerte oder anderweitig willkürlich ausgewählte Samplerichtungen. Deshalb gehören die für mich nicht mehr zum eigentlichen Raytracing.

Global Illumination ist erzeugt keine realistische Beleuchtung. Hier wird eben davon ausgegangen, daß es eine grundsätzliche Reflektionsstrahlung gibt. Das ist zwar ein Trick, der den Rechenaufwand vermeitet, aber hat nichts mit Raytracing im allgemeinen zu tun. Wir wollten ja keine Tricks :-)

Was soll den an Photon Bouncing ein Trick sein? Nicht alles muß Photonen vollkommen diffus reflektieren, das ist Sache der Materialeinstellung. Die Realität macht auch nicht mehr als Photonen durch die Gegend zu schicken, davon aber gewaltig viele. Das einzig unreale, was es an richtig durchgeführtem GI gibt, ist die viel zu kleine Zahl an Photonen, weil sie einfach zu rechenintensiv sind.