Quake3: Raytraced



  • ICH WILL VOXEL ZURÜCK!!! *patzigschimpf*

    🤡

    EnERgYzEr schrieb:

    Er hat mit einer Rechenanlage, die wir
    selbst in zehn Jahren nicht zu Hause haben werden, Quake mit Licht/Schatten
    gezeigt - Super.

    DAS wiederum glaube ich nicht. 10 Jahre ist weit übertrieben... 👎

    Blue-Tiger schrieb:

    Es geht hier um eine neue Technik im 3D-Bereich.

    *chr*

    Trienco schrieb:

    Sgt. Nukem schrieb:

    Raygetracte Schatten sehen doch scheiße aus - und sind alles andere als realistisch!!
    Hyper-künstlich trifft es wohl eher... 🙄

    ah ja, da die schatten im ergebnis wohl 1:1 so aussehen dürften wie stencil shadows dürfen wir jetzt also offiziell auch die doom 3 schatten als scheiße und hyper-künstlich bezeichnen?

    Allerdings. Die DooM ]|[ Schatten sind *natürlich* sau-künstlich!! So hart wird in der Realität kein Schatten geworfen!!
    Nur Doom 3 ist _jetzt_!! Und ihr redet von einer Technik, die "in frühestens 10 Jahren Einzug in den Consumer-Markt halten wird"...!
    Sorry, aber in "10 Jahren" erwarte ich schon deutlich mehr als so pümpels D3 Schatten... *SCNR* :p



  • imho würde mir solche "pümpels d3 schatten" reichen, wenn ich sie mit 5 sich bewegenden lichtquellen benutzen könnte,was mit d3 schatten dank shadow maps nicht wirklich funktioniert^^



  • otze schrieb:

    imho würde mir solche "pümpels d3 schatten" reichen, wenn ich sie mit 5 sich bewegenden lichtquellen benutzen könnte,was mit d3 schatten dank shadow maps nicht wirklich funktioniert^^

    ich war mir recht sicher, daß doom 3 stencil shadows benutzt und deswegen auch die häßlich kantigen lowpoly objekte benutzt (die shadow volumes erzeugen wäre sonst wohl kein wirklicher spaß mehr).

    nebenbei, schatten von punkt oder richtungslichtern SIND relativ hart. nur sollte man nicht auf die idee kommen und die schatten fast pechschwarz zu machen, DANN sieht der kontrast wirklich besch..eiden aus. ich kann an der wand z.b. recht scharf einzelne haare bzw. dünne strähnen am schatten sehen. und flächige lichter sind letztlich immer ein problem.



  • es werden hauptsächlich shadow maps verwendet, und maximal ein licht darf überhaupt stencil shadows werfen 😉



  • Trienco schrieb:

    besonders schwache kisten stoppen eben beim ersten schnitt und prüfen nur einmal direkt in richtung lichtquellen (und das ergebnis dürfte dann aussehen wie im moment, mit stencil shadows, ohne spiegelungen) und richtig dicke kisten verfolgen die strahlen dann halt über 10 schritte.

    Toll und wozu dann noch Raytracing, wenn ich die Strahlen bis Tiefe 1 verfolge und nur lokale Reflexionsmodelle wie ein Standard-Renderer habe? Das ist nicht der Sinn.

    Und ich finde es nicht so schlimm, Hacks und Tricks anzuwenden um am ende eine performante und gutaussehende Ausgabe zu erhalten. Das war doch schon immer so, dass, wenn man trickreich war und wusste, wo man mit welchem Trick was rausholen kann, man eben besser dran war. Falls sich Raytracing auf normalen Maschinen irgendwann in flüssig durchsetzt, wird man auch wieder Hacks und Tricks anwenden um auch den Scheiß noch performanter machen zu können.

    Und es ist doch nicht egal, wieviele Polygone die Szene hat. Dem Raytracer vielleicht, aber die vielen Polygone müssen bewegt werden, will man sowas prakatisch umsetzen.



  • Hm, interessante Diskussion. Es heißt doch eigentlich immer, dass Raytracing relativ einfach zu programmieren sei, und was ich hier gelesen habe, scheint dem nicht zu widersprechen. Dass es "sauberer" zu sein scheint, gefällt mir auch gut. Kennt jemand einen Link, wo gut und detailliert beschrieben ist, wie man sowas programmiert? Das müsste doch z.B. mit SDL als unterliegende API gehen?
    Nein, ich möchte kein tolles Spiel mit Echtzeitraytracing auf Terragenniveau machen, sondern vielleicht mal eine schattierte Kugel ohne OpenGL oder so anzeigen können (und ohne Rasterizer etc. schreiben zu müssen).
    Apropos Kugel: Wenn man die mathematisch definieren würde, bräuchte man doch gar keine Polygone mehr, oder?



  • Apropos Kugel: Wenn man die mathematisch definieren würde, bräuchte man doch gar keine Polygone mehr, oder?

    klar



  • Hier, hier auch ein bisschen, und auch hier (weiter unten) gibts Infos zur funktionsweise und zum Programmieren. Im Grunde reicht das aus, um einen auf die Beine zu stellen. Im Zweifelsfall, leg dir noch ein Dickes Mathebuch daneben 😃

    Ja, du kannst das mit den APIs wie DX, OGL, SDL aufs Bild bringen. Du schreibst halt einfach auf den Screen Array.

    Apropos Kugel: Wenn man die mathematisch definieren würde, bräuchte man doch gar keine Polygone mehr, oder?

    Also, ich habe gehört (gelesen) das das unter Umständen unvorteilhaft sein kann. Eine Kompetente Meinung kann ich dir aber hierzu nicht geben.



  • Wow, das ging ja schnell, danke 😃



  • @Trienco:

    Erst einmal danke für deinen Post. Der hat doch viele Unklarheiten bei mir
    beseitigt, da ich mich bis jetzt noch nicht wirklich intensiv mit dem Themen-
    bereich auseinandergesetzt habe.

    Eine Frage bleibt bei mir aber noch: Ist das überstrahlen mit Raytracing
    eigentlich direkt möglich? Oder muss nicht auch hier das fertige Bild
    retuschiert werden? Schließlich existiert das Überstrahlen im Real Life ja auch
    nicht, sondern wird nur in unsere Augen durch die große Heligkeit erzeugt.

    DAS wiederum glaube ich nicht. 10 Jahre ist weit übertrieben...

    @Sgt. Nukem: Wann glaubst du werden wir zu Hause die Leistung von 36 GHz
    stehen haben? Wie wir in den letzten drei Jahren gesehen haben, hat sich fast
    nichts mehr getan. Man versucht die Leistung/Hz zu erhöhen aber einen richtigen
    Durchbruch gab es hier auch noch nicht. Gleichzeitig werden die Hz der CPUs
    eher niedriger. Seit bestimmt einem Jahr hängen wir ca. bei der Leistung eines
    P4 3.5 GHz fest (von wem auch immer die CPUs sind. AMD, Intel,...).
    Intels Top-Desktop-CPU gibts für 300 EUR im Laden. Das sagt doch eigentlich
    schon alles, oder?
    Vielleicht wird dadurch ja dann wirklich der Umbruch zu Strom sparenden, leisen
    CPUs erfolgen. Man denke an diese VIA Epia Boards mit 1 GHz passiv gekühlt.

    Sorry, war jetzt ein bisschen OT, schließlich wurde ja bereits fest gestellt,
    dass man Raytracing auf spezialisierter Hardware mit sehr geringer Leistung
    laufen lassen kann.



  • Hi,
    Ja, so schnell wird keine großartigen CPUs geben, das ist schon richtig. Für nah bis mittelfristig kann man Raytracing komplett vergessen, IMHO.
    Aber Megahertz sind nicht der einzige Maßstab. 64 Bit, zum Beispiel, ist auch von Bedeutung. Auch die anderen CPU Erweiterungen (KA, gibts ne Menge) zählen noch. Deshalb kann auch ein niedriger getakteter AMD einen höheren Intel schlagen.



  • weisst du überhaupt wovon du sprichst? Raytracing ist doch kein fertiges Game
    sondern ist ein Teil eines Gesamtkonzeptes. Was bringt einem das
    schönste Raytracing, wenn die Level schlecht designt sind?

    Hallo, es geht hier um Grafikeffekte. Niemand spricht hier von irgend etwas anderem. Das Grafik alleine kein gutes Spiel macht, mag ja sein hat aber nichts mit der Sache zu tun.

    Wenn du mir erzählen willst, dass Unreal XY eine bessere Grafik hat als ein Spiel was theoretisch einen RayTracer implementiert, dann stimmt das einfach nicht. Egal wie langweilig die beiden Spiele seien mögen.

    Es geht hier nicht darum, dass Quake3 auf RayTracing Basis mit Unreal XY verglichen werden soll, du hast den Thread volkommen falsch verstanden.

    Außerdem habe ich bereits schon gesagt, dass ich mich hauptsächlich auf den RayTracing Beschleuniger beziehe, RayTracing an und für sich ist nicht neu und das man es theoretisch in Spielen benutzen könnte auch nicht.

    Und bitte, informier dich erstmal ein wenig, bevor du einen Blödsinn wie "Raytracing ist die Brute Force Lösung" schreibst. Und das die herkömlichen Verfahren ihre Grenzen haben sollte dir auch klar sein. Vorallem versteh ich nicht, warum du hier gegen RayTracing flamst und dann in den Postings eingestehen musst, dass du keine Ahnung von dem Thema hast. Machst du das immer so, drauf los zu tippen?

    Und ich kann nur noch einmal sagen, dass die RayTracing-Karte hier der entsprechende Punkt ist. (Nun, um es nochmal zu erklären, bevor du einfach drauf lostippst: Eine Ding, das machen RayTracing ganz ganz schnell)

    So ich zieh mich hier aus dem Thread zurück.



  • randa schrieb:

    Toll und wozu dann noch Raytracing, wenn ich die Strahlen bis Tiefe 1 verfolge und nur lokale Reflexionsmodelle wie ein Standard-Renderer habe? Das ist nicht der Sinn.

    deswegen stand da auch "besonders schwache kisten", die letztlich keine oder nur die 5euro variante von rt hardware haben. wozu überhaupt doom 3, wenn es ohne fette 3d-karte gar nicht spielbar ist?

    Und ich finde es nicht so schlimm, Hacks und Tricks anzuwenden um am ende eine performante und gutaussehende Ausgabe zu erhalten.

    performant? ich wage zu behaupten, daß bei typischen spielen ein normaler rechner nichtmal in echtzeit die shadowmaps für eine komplexe szene in brauchbarer geschwindigkeit schafft. was also performant daran sein soll, wenn man die szene letztlich ein halbes dutzend mal pro frame rendern muß entgeht mir grade irgendwie.

    Das war doch schon immer so, dass, wenn man trickreich war und wusste, wo man mit welchem Trick was rausholen kann, man eben besser dran war.

    es geht aber nicht um tricks und hacks, um etwas _schneller_ zu machen, sondern als krücke um einer dafür vollkommen ungeeigneten methode irgendwelche effekte zu entlocken. wenn du eine flasche öffnen willst, dann nimmst du schließlich auch einen öffner und baust keine wilde konstruktion aus armbrust, sekundenkleber und flaschenzug.

    aber die vielen Polygone müssen bewegt werden, will man sowas prakatisch umsetzen.

    und was hat das damit zu tun, wie man die szene darstellt? es geht um den vergleich raytracing und rasterisieren, genauso könntest du sagen "aber rt ist es nicht egal, denn die physik muß ja auch berechnet werden". rechne dann dazu, daß der größte teil eines levels statisch ist und sich dabei rein gar nichts bewegt.

    Apropos Kugel: Wenn man die mathematisch definieren würde, bräuchte man doch gar keine Polygone mehr, oder?

    beim rt würde wahrscheinlich auch nur ein verrückter überhaupt auf die idee kommen eine kugel (die wohl mit abstand einfachste form beim rt) durch tausende polygone anzunähern ,-) deswegen fliegen einem beim rt auch vor allem am anfang überall kugeln um die ohren ,-)
    man könnte auch "direkt" mit oberflächen arbeiten, ohne sie künstlich in dreiecke zu zerlegen (aber den schnittpunkt mit einer halbwegs komplexen oberfläche berechnen ist auch nicht der bringer).



  • EnERgYzEr schrieb:

    @Sgt. Nukem: Wann glaubst du werden wir zu Hause die Leistung von 36 GHz
    stehen haben? Wie wir in den letzten drei Jahren gesehen haben, hat sich fast
    nichts mehr getan. ..

    du hast glaube noch nicht ganzt verstanden das die studenten im saarland eine art graka entwickelt haben, die bei einer taktung von 90 MHz die leistung eines 12 Ghz intel P4 bringt, und das die leute damit diese Demos laufen lassen.

    das ist das eigentliche neue. Software raytracer wurden hier ja schon mehrere gepostet..

    Thus the prototype with on 90 MHz already achieves the performance of the highly optimized OpenRT software ray tracer on a (virtual) Pentium-4 with 8 to 12 GHz!



  • Trienco schrieb:

    deswegen stand da auch "besonders schwache kisten", die letztlich keine oder nur die 5euro variante von rt hardware haben. wozu überhaupt doom 3, wenn es ohne fette 3d-karte gar nicht spielbar ist?

    Das habe ich verstanden, aber es ist ja nicht gerade ein Argument für die Benutzung von Raytracing, da ich einen Standard-Renderer genauso defür nehmen kann. Gewschärmt wurde hier von Spiegelungen und Schatten, und dafür brauche ich höhere Rekursionstiefen (min 2, noch besser mehrere).

    performant? ich wage zu behaupten, daß bei typischen spielen ein normaler rechner nichtmal in echtzeit die shadowmaps für eine komplexe szene in brauchbarer geschwindigkeit schafft. was also performant daran sein soll, wenn man die szene letztlich ein halbes dutzend mal pro frame rendern muß entgeht mir grade irgendwie.

    Es kommt auf das Ergebnis an, und das kann zumindest erreicht werden. Wie gesagt, die Tricks dienen auch dazu, den Eindruck von Realität zu simluieren, nicht die Realität selber. Das kann man, wenn sich evtl. noch was bei den normalen Renderern tut, auch in Zukunft auch noch besser erreichen. Und wenn die Hardware leistungsfähiger wird (sogar soweit, bis man Raytracer flüssig bekommt) kann man mit heutiger Technik auch noch mehr machen, sprich die Realität noch besser simulieren.

    es geht aber nicht um tricks und hacks, um etwas _schneller_ zu machen, sondern als krücke um einer dafür vollkommen ungeeigneten methode irgendwelche effekte zu entlocken.

    Kommt auf die Alternative an.

    wenn du eine flasche öffnen willst, dann nimmst du schließlich auch einen öffner und baust keine wilde konstruktion aus armbrust, sekundenkleber und flaschenzug.

    Kommt, drauf an, wie lange ich mit dem Flaschenöffner brauche 🙂
    Erfinsungsreichtum ist nie verkehrt.

    und was hat das damit zu tun, wie man die szene darstellt? es geht um den vergleich raytracing und rasterisieren,

    Wie du meinst. Ich sprach an, was in Realität dann umsetzbar ist, und da zählt schlussendlich nicht, ob es einem Raytracer egal ist, wieviele Vertices vorhanden sind. Faktisch würde man diesen Vorteil nicht ausnzutzen können, vor allem da das Raytracing selber wieder viel Rechenzeit schluckt und somit wohl sogar noch weniger Vertices drin sind.

    daß der größte teil eines levels statisch ist und sich dabei rein gar nichts bewegt.

    Wenn der Spieler sich bewegt schon.



  • @xroads42: Les mal den letzten Satz meines Posts 😉

    @kingruedi: Nicht jeder kann ja Vollprofi in jedem Gebiet sein, oder? Ich habe
    mit meinem allgemeinen Wissen das ich über das Verfahren habe, meine Bedenken
    angemeldet, ob das Verfahren überhaupt NÖTIG ist oder ob wir nicht auch auf
    einen ähnlichen Realismus kommen, wenn wir konventionelle Verfahren nutzen.
    Kein Grund gleich so aufzufahren. Aber ich entschuldige mich auch, wenn du
    meine Posts als Flames aufgefasst hast. Denn das sollten sie nicht sein.



  • EnERgYzEr schrieb:

    @xroads42: Les mal den letzten Satz meines Posts 😉

    sry 🙂



  • Wie du meinst. Ich sprach an, was in Realität dann umsetzbar ist, und da zählt schlussendlich nicht, ob es einem Raytracer egal ist, wieviele Vertices vorhanden sind. Faktisch würde man diesen Vorteil nicht ausnzutzen können, vor allem da das Raytracing selber wieder viel Rechenzeit schluckt und somit wohl sogar noch weniger Vertices drin sind.

    vergleichen wir mal die unrealX Grafik-engine im software rasterizer mode mit einem software raytracing algorithmus, wie hoch werden die zeit unterschiede sein?

    worauf ich damit hinaus will: ohne optimierte hardware, wie sie jeder von uns in seinem rechner in form einer 3d-Graka hat, ist jede der gängigen Techniken unglaublich langsam und in der Realität nicht umsetzbar. wieviele GHz reine Cpu power bräuchte man, um ein flüssiges Bild im software rasterizer zu bekommen? wieviele GHz werden einem nur von der Graka abgenommen? Wieviele Vertices könnte man ohne 3D-Graka heutzutage mit akzeptabler geschwindigkeit rendern?



  • wieviele GHz reine Cpu power bräuchte man, um ein flüssiges Bild im software rasterizer zu bekommen?

    Ich behaupte mal frech ( 😃 ): weniger als bei der genau gleichen Szene mit einem Raytracer bei zweifacher Rekursionstiefe (schließlich wollen wir Schatten). Ich bezieh das mal auf eine fiktive Szene, in der Schatten gerechnet werden und Spiegelungen/Reflexionen simuliert werden.

    wieviele GHz werden einem nur von der Graka abgenommen?

    Dazu hab ich mir mal gedanken gemacht, als ich mal komplexe Szenen mit meinem Software Renderer darstellen wollte. Ich würde Pi mal Daumen sagen, das das auf jeden Fall mehrere GHz sind, ab 2 aufwärts, wohl noch mehr.

    Sicher ändert sich die Sache mit einer "Raytracing-Karte". Aber das dauert noch seine Weile. 😃



  • die unterschiede werden sich wahrscheinlich bei 1-2 sekunden einpendeln(der software rasterizer _ist_ langsam), grund: overdraw tut verdammt weh.


Anmelden zum Antworten