Screenshot Thread - Eine gute Idee?



  • this->that schrieb:

    Einige Infos zur Implementierung:

    • Theorie: Atmospheric Scattering (für Himmel und Terrain Aerial Perspective), basierend auf den Papern von Nishita
    • Technik: DirectX10, SM4.0, C++
    • Himmel: Implementiert in 2 unterschiedlichen Techniken. Einmal als SkyDome, wobei das Inscattering für jeden Dome-Vertex im Vertexshader berechnet wird. Ferner als SkyBox - hier werden pro Frame die 5 Seiten der Box berechnet (pro Rendertarget Texel wird ein Ray in die Scene geschossen und beim Schnittpunkt mit der Atmosphäre das Scattering ausgeführt) und anschließend die Box selber gerendert. Die Dome-Technique hat auf meiner GTX 8800 ca. 2900 FPS und die Box-Variante ca. 1000 FPS.
      Zur Laufzeit können die Techniken gewechselt und sämtlichen Parameter des Atmospheric Scattering geändert werden.
    • Terrain: Höhendaten gespeichert als FP32-Stream, Normalenberechnung per MWE, Texturierung per Texture Splatting (5 Schichten, automatische Alphamap Generierung). LOD: Bruteforce

    Hallo,

    die Screenshots schauen super aus, respekt. Ich habe mich vor einiger Zeit ebenfalls mit den Thema auseinander gesetzt, daher würden mich einige Details deiner Implementierung interessieren:

    1. Warum benutzt du Direct3D 10? Ich kann für den Anwendungsfall keine großen Vorteile sehen (höchstens vielleicht fürs Terrain).

    2. Berechnest du die Lookup-Table für die Luftdichte auf der Grafikkarte oder auf der CPU?

    3. In welchen Intervall berechnest du die Lookup-Table neu?

    Danke im voraus & Gruß
    gruntle



  • gruntle schrieb:

    1. Warum benutzt du Direct3D 10? Ich kann für den Anwendungsfall keine großen Vorteile sehen (höchstens vielleicht fürs Terrain).

    Hauptsächlich weil es der Fachbereich meiner Uni wollte;) Es ging quasi auch darum die neueste Technik zu benutzen, um die Verwendbarkeit von Atmospheric Scattering in aktuellen Echtzeit-Anwendungen zu ermitteln. Wirklich notwendig wäre nur SM3.0 für den Vertex Texture Fetch gewesen.

    gruntle schrieb:

    2. Berechnest du die Lookup-Table für die Luftdichte auf der Grafikkarte oder auf der CPU?

    Das sind meine 2 wichtigsten Formeln:
    http://www.infoboard.org/screenshots/scattering.png
    und ich berechne die Optical Depth t (für Rayleigh und Mie) sowie die Dichte e^(-h/H0) (wieder für Rayleigh und Mie) auf der CPU vor. Diese 4 Werte passen genau in einen Texel mit RGBA Format einer 2D Textur (Lookup table).
    Zur Laufzeit hab ich dann lediglich das äußere Inscattering Integral - alle Werte innerhalb dieses Integrals sind nur noch Texture Fetches in die LUT.
    Es gibt zwar noch einige Fallstricke, aber das führt hier zu weit;)

    gruntle schrieb:

    3. In welchen Intervall berechnest du die Lookup-Table neu?

    Die x-Achse der LUT enspricht der Höhe in der Atmosphäre, die y-Achse beschreibt einen Winkel. TexCoords von (0.5, 0.5) ensprechen z.B. einem Strahl, der auf halber Höhe der Atmosphäre startet und im 90° Winkel abgefeuert wird. An dieser TexCoord steht dann die Optical Depth t für diesen Strahl.
    Die LUT wird einmal bei der Initialisierung der Anwendung berechnet und danach nie mehr. Da sie nur von der Höhe der Atmosphäre und der Dichteverteilung abhängt, die sich ja nicht so oft ändern;), ist es auch nicht notwendig. Dennoch kann die LUT zur Laufzeit verändert werden - das sieht man in dem youtube Video, wo ich die 2 Regler ganz unten rumschiebe (das verändert die Rayleigh, Mie Dichte).



  • Huhu,
    ich hab gestern mal angefangen mein kleines Homeproject
    zu starten. Es soll natürlich noch wachsen, später soll
    auch noch ein Terrain per HeightMap mit implentiert werden,
    Texturierung kommt selbstverständlich auch noch 😉

    http://www.abload.de/img/pivke6l7.jpg



  • ich arbeite zur zeit an einer externen mapapplikation für das online-rollenspiel eve-online.

    auf basis der verfügbaren daten (statischer datenbank export von ccp selbst und daten des ingame browsers) ist es möglich positionen der eigenen flotte darzustellen, wegpunktberechnungen durchzuführen und übliche daten über planetarische objekte anzeigen zu lassen. der server, welcher als http-server für den ingame browser dient und daten über die eve-api bezieht ist weitestgehend fertig, nun feile ich an der kartenapplikation selbst.

    dieser screenshot ist schon relativ alt:

    linkage

    hier habe ich noch mit dem GLWidget von QT experimentiert, was äusserst komfortabel ist, allerdings machte mir die performance der eventqueue von QT einige probleme.
    deshalb habe ich angefangen einige generische sachen unabhängig von QT portabel zu gestalten. mal sehen, vielleicht wirds ja nochmal fertig 🙂



  • @_sothis
    Sieht Nett aus, wie sieht es aktuell aus ?

    Also ich hab die letzten Tage noch ein bischen was getan, sieht jetzt so aus :
    http://www.abload.de/image.php?img=pivke_homep.kdj.jpg



  • pivke schrieb:

    @_sothis
    Sieht Nett aus, wie sieht es aktuell aus ?

    nicht viel anders, nur etwas 😉

    linkage



  • Zur Erstellung einer Grafik für meine Facharbeit habe ich eine kleine Demoapplikation zur perspektivischen Projektion geschrieben, in der man schön die clipping Ebenen sieht.

    Perspective Projection Demo



  • Sehr schön xindon. Allerdings musste ich auch mit Bedauern feststellen das ich mit keinem Wort bei deinem Quake3 BSP Zeug erwähnt wurde... Frechheit! :p

    Da wir grad dabei sind. Ich hab ja auch mal sowas geschrieben, vor vielen Jahren:

    http://bl4ckd0g.bl.funpic.de/projects/images/q3bsp007.jpg
    http://bl4ckd0g.bl.funpic.de/projects/images/q3bsp010.jpg
    http://bl4ckd0g.bl.funpic.de/projects/images/q3bsp011.jpg
    http://bl4ckd0g.bl.funpic.de/projects/images/q3bsp002.jpg

    Was ging:
    Quake3 Softwareshader (komplett mit Texturtransformation, Multitexturing, ...), Bezierpatches, Vertexlighting, Transparente Objekte, ...

    Was nicht ging:
    Models, Skybox, Fake volumetrische Nebel, Q3 Func_X, ...



  • Netter Thread!

    Zwar ist mein aktuelles "Projekt" (wenn man es denn so nennen kann 😃 ) noch lange nicht fertig; aber weil ich gerade mal nicht lernen muss, arbeite ich wieder daran:

    Mein kleines Tower Defense Game:

    Zwei ältere Bilder:
    http://i191.photobucket.com/albums/z231/kuldren/280908scr3.jpg
    http://i191.photobucket.com/albums/z231/kuldren/scr280908.jpg

    Hier sind die Neusten:
    http://i191.photobucket.com/albums/z231/kuldren/251008-01.jpg
    http://i191.photobucket.com/albums/z231/kuldren/251008-02.jpg
    http://i191.photobucket.com/albums/z231/kuldren/251008-03.jpg
    http://i191.photobucket.com/albums/z231/kuldren/251008-04.jpg

    Ich habe auch ein paar Videos bei Youtube hochgeladen:
    Das ist mMn. das Beste:
    http://www.youtube.com/watch?v=L5Oje1kIaAE


  • Mod

    danke dass du unseren screenshot thread wiederbelebst 🙂

    schoen zu sehen wie weit du schon gekommen bist, hatte mir vor ein paar tagen die tubes angesehen, das eine wo die alle auf den cursor geballert haben, sah recht cool aus, vielleicht kannst du ja als erweiterun zum default tower defens einbauen, dass man selbst so schiessen kann 🙂

    good work 👍 🙂



  • rapso schrieb:

    danke dass du unseren screenshot thread wiederbelebst 🙂

    schoen zu sehen wie weit du schon gekommen bist, hatte mir vor ein paar tagen die tubes angesehen, das eine wo die alle auf den cursor geballert haben, sah recht cool aus, vielleicht kannst du ja als erweiterun zum default tower defens einbauen, dass man selbst so schiessen kann 🙂

    good work 👍 🙂

    Danke..hört man gerne:)
    Ich hab schon ein paar special features in Planung...keine Sorge 😉
    Das von dir erwähnte ist u.A. eines davon.



  • habe vor kurzem meinen DFF format loader fuer die Irrlicht Engine bugfixed und veroeffentlicht.
    damit kann man die welten der GTA-spiele (3, VC, SA) in die engine laden und rendern. aber im moment funktioniert nur GTA3 so richtig.

    screenshot:
    http://b66883.com/projects/dffloader/screenshot2.jpg

    details:
    http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=30439



  • Verdammt, wollte die Tage auch nen DFF-Loader schreiben, bin ich wohl doch nicht der einzige >_<.



  • Ich arbeite jetzt schon einige zeit an einer engine..
    als letztes hab ich mir das wasser vorgeknöpft. is zwar noch ned ganz fertig/perfekt aber ich denk doch schon ansehlich..

    http://spong3bob.sp.funpic.de/wasser.jpg



  • Interessant. Wenn's nicht zu viel Mühe macht, kannst du nochmal nen Screenshot posten wo man den Übergang vom tieferen Wasser zum Ufer sieht? Arbeitest du mit volumetrischem Nebel?



  • an dem arbeite ich noch.. zur zeit male ich einfach das terrain blau an, je tiefer, desto blauer.. schaut eigentlich ganz passabel aus, braucht nicht viel performance und stört nicht, weil sowieso das ganze terrain ab einer bestimmten tiefe unter wasser steht


  • Mod

    spong3bob schrieb:

    an dem arbeite ich noch.. zur zeit male ich einfach das terrain blau an, je tiefer, desto blauer.. schaut eigentlich ganz passabel aus, braucht nicht viel performance und stört nicht, weil sowieso das ganze terrain ab einer bestimmten tiefe unter wasser steht

    👍 so hab ich es auch angestellt als gerade die ersten vertexshader raus waren.
    du kannst zudem mit ein bissl sinus die textur (oder auch ein wenig die geometrie) vom terrain wabbern lassen mit zunehmender tiefe.



  • Hier mal ein bild von meinem raytracer an dem ich gerade rumspiel, bisher nichts aufregendes eingebaut nur das gundgerüst, aber es wird langsamm *g*.

    http://www.urbsch.at/files/raytracing.png

    Was bisher drinn ist:
    Intersections für Dreieck und Kreis
    Octree
    Schrift per freetype
    Multithreading (Threadpooling)
    Texuring (nur ohne schöne texturverwaltung daher erstmal aus)
    Obj files Loader
    "Steuerbar" über netzwerk mit console (in c# geschrieben) (nur ganz simpele sachen wie "kameraposition setzen" oder "dreieck hinzufügen")
    hmm mehr fällt mir gerade nicht ein *g* (bisher nichtmal transparenz oder reflektionen^^)

    (Die Sphere besteht aus 2000 dreiecken und es gibt 2 lichter)

    Gruss



  • gpu raytracing:
    screen1
    screen2



  • hellihjb schrieb:

    gpu raytracing:
    screen1
    screen2

    openrt? :xmas1:


Anmelden zum Antworten