Screenshot Thread - Eine gute Idee?
-
Schmiddie schrieb:
sogar der Würfelwurf funktioniert prima (6 seitige und 20 seitige).
-
Ist ja lustig, nettes Bild. Ich meinte damit, das sie wie echte Würfel rollen, die mit der Hand auf den Tisch geworfen werden, also graphisch was hermachen.
-
Das find ich eigentlich eine coole Idee. Bei einer Brettspielumsetzung wär ich glaub ich nie auf die Idee gekommen das Spielen am Brett an sich zu simulieren, sondern eben wie Aoe oder Civilization.
-
Screenshot:
http://loop.servehttp.com/~vertexwahn/uploads/RayDebugger1.pngMit dem Tool kann man bisher nur Strahlen von einem Projektionszentrum aus durch eine Projektionsfläche "schießen" - es spiegelt als das Prinzip der primären Strahlen im Raytracing wieder.
Je nachdem wie ich Zeit finde werde ich das Programm noch ein bisschen erweitern. In der ersten Ausbaustuffe soll es möglich sein Kugeln und Dreiecke in die Szene einzufügen. Das Tool soll dann Schnittpunkte mit dem am nahe liegestem Objekt zum Projektionszentrum berechnen.
Im nächsten Schritt soll es möglich sein der Szene Punktlichter hinzu zu fügen. Außerdem sollen dann Materialen eingeführt werden und es soll der diffuse Lichtanteil berechnet werden und angezeigt werden.
Damit kann jemand der versucht einen Raytracer zu programmieren gegenprüfen, ob sein Raytracer die Richtigen Werte liefert - daher auch der Name des Projekts: RayDebugger
In einer weiteren Ausbaustuffe wären dann auch Reflektierte und gebrochene Strahlen denkbar (also Sekundär Strahlen).
Damit sollte es dem Entwickler eines Raytracers dann möglich sein nachvollziehen ob der Raytracer auch in diesem Programmteilen richtig arbeitet.
Da das manuelle vergleichen von Diffusen Lichtanteilen, das verfolgen von rekursiven Strahlen, das Nachbauen der Szene in dem Editor, usw. sehr aufwendig ist soll eine Schnittstelle geschaffen werden mit der es möglich ist jeden Wert den der Raytracer berechnet an den RayDebugger zu schicken, der daraufhin alle Berechnungen des Raytracers gegenprüft und bei einer Abweichung eine Fehlermeldung ausgibt. Außerdem soll im Zuge der Fehlermeldung auch gleich der Fehler visualisiert werden, wobei dieser dem Korrekten Wert (z. B. Strahl) gegenüber gestellt werden soll.
Die Schnittstelle für einen Raytracer zum Raydebugger könnte z. B. so aussehen:
#ifndef RayDebugger_Interface_h #define RayDebugger_Interface_h void rdCreateSphere(float radius, float x, float y, float z); void rdCreateTriangle(...); void rdSpanRay(float projection_center_x, float projekction_center_y, ..., int cellX, int cellY); void rdPrimaryDiffuseReflection(float diffuse); void rdSecoundaryDiffuseReflection(float diffuse, int recursionLevel); ... #endif
Ob ich überhaupt noch am Projekt weiter mache steht in den Sternen - mich würde jetzt nur noch eines interessieren: würdet ihr den RayDebugger verwenden, wenn ihr einen Raytracer Programmieren würdet?
-
Noch ein paar Screenshots:
http://loop.servehttp.com/~vertexwahn/uploads/RayDebugger2.png
http://loop.servehttp.com/~vertexwahn/uploads/RayDebugger3.png
http://loop.servehttp.com/~vertexwahn/uploads/RayDebugger4.png
-
Da wir gerade beim Thema Raytracing sind, hier paar Bilder meines Raytracers (inkl. Photon-Mapping):
http://www.infoboard.org/screenshots/bunny_scene_local_lighting.jpg (Raytracer, Refraktion, Hardshadows)
http://www.infoboard.org/screenshots/bunny_scene_photon_mapping.jpg (Raytracer, Photon Mapping, Softshadows)
http://www.infoboard.org/screenshots/ray2.JPG (Reflektionen)
http://www.infoboard.org/screenshots/small_participating_media01.JPG (Participating Media, Kaustiken)
http://www.infoboard.org/screenshots/small_participating_media02.JPG
-
this->that schrieb:
Da wir gerade beim Thema Raytracing sind, hier paar Bilder meines Raytracers (inkl. Photon-Mapping):
http://www.infoboard.org/screenshots/bunny_scene_local_lighting.jpg (Raytracer, Refraktion, Hardshadows)
http://www.infoboard.org/screenshots/bunny_scene_photon_mapping.jpg (Raytracer, Photon Mapping, Softshadows)
http://www.infoboard.org/screenshots/ray2.JPG (Reflektionen)
http://www.infoboard.org/screenshots/small_participating_media01.JPG (Participating Media, Kaustiken)
http://www.infoboard.org/screenshots/small_participating_media02.JPGDas sieht ja wirklich ganz nett aus.
-
Ich habe bei mir nochmal das Baum-Modell überarbeitet und die Qualität der Beleuchtungsberechnung erhöht (zum Beispiel haben Blätter ein mattes spec highlight). Hier ein romantischer Sonnenaufgang :
http://firbach.dyndns.org/garbage/screens/screen2.jpg
(irgendwie fehlen Schatten)
-
jaa, schatten, ich will schatten sehen :D, du koenntest, falls du immer nur top-down schaust, einfach pro baum ne schattentextur aufs terrain blenden bevor du irgendeinanderes objekt zeichnest. duerfte relativ simple, performant und gut aussehend sein
-
Der Ansatz hört sich so an als würde es an den Stellen, an denen sich Schatten überlappen, doppelt so dunkel werden. Ich möchte das allerdings auf jeden Fall vermeiden, da während der Dämmerung die Schatten ziemlich lang sind und ich denke, dass es schlecht aussehen würde, da es zu vielen Überlappungen kommt. Performant ist das bestimmt, aber ich glaube ich werde eher eine Technik wählen, die dieses Problem vermeidet. Oder beides anbieten.
einfach pro baum ne schattentextur aufs terrain blenden bevor du irgendeinanderes objekt zeichnest
Außerdem zeichne ich das Terrain als letztes, weil es mit seinen texture lookups den Grafikkarten offenbar massiv zusetzt. Ich hab mir das im NvperfHud mal angesehen. Ich werde wohl auch noch das GUI in den Z-Buffer schreiben und vor der Szene rendern. Ich brauche also eine Schattentechnik, die damit kompatibel ist.
Ich habe mich aber noch nicht genauer mit den Techniken befasst und wahrscheinlich werd ich erstmal eher was am Spiel selber machen.
-
Schaut aber gut aus!!
-
D schrieb:
Schaut aber gut aus!!
vor allem aber ist es immer spielbar (sofern man das neuste .Net hat)
@optimizer
das mit dem sonnen auf und untergang hatte ich nicht mehr im kopf. eine einfache loesung waere dass du die schatten erstmal in eine weisse textur zeichnest. diese kannst du dann im terrainpass ueber die anderen layer blenden.
falls du z-optimierungen brauchst, bietet sich ein z-pass am anfang an. wuerde aber bedeuten dass du alles zweimal durch deine renderpipeline steckst. (wir koennen das im extra thread klaeren falls du denkst, dass da noch mehr konversation noetig ist:) )
-
yeeehaaa, wieder Internet.
@rapso: Danke für den Input, ich werde darauf auch bestimmt mal wieder zurückkommen. Demnächst muss ich aber erstmal was an der Spielmechanik machen. Da gibt es noch fast nichts (es ist ein noch recht junges Projekt).
-
Da wollen wir auch mal:
http://zfxce.sourceforge.net/images/b/b7/Bezier_quake3_release2.pngHier sieht man unseren Q3-Level Renderer mit aktivierten Bezierpatches. Das Ganze wurde mit der ZFX-Community-Engine gerendert. Man kann das level per FP-Camera durchwandern.
MfG Kimmi
-
schaut gut aus, hast du das bezierpatch implementiert oder was daran hast du programmiert?
-
Ich hab den Scenegraphen gemacht, die Kamera, das Resourcemanagement, grundlegende IO Sachen sowie viel an der Infrastruktur und als teamleader als Sündenbock fungiert. Enrico Zschemisch hat den Prototypen entwickelt, den ich dann in eine angemessene Form gebracht habe. Björn meier hat dem ganzen noch ein Lua-Interface verpasst.
Damit andere auch mal in den Genuss des ganzen kommen, wollen wir Ende Dezember das Ganze zusammen in einen neuen Release packen. Unsere Releasepolitik war bisher eher von Faulheit geprägt :-).MfG Kimmi
-
Ich habe jetzt shadow mapping implementiert (die Schatten werden in Echtzeit berechnet).
http://firbach.dyndns.org/garbage/screens/screen4.jpgIch würde es btw. schön finden, wenn hier noch mehr Leute ihre Screenshots reinstellen. Es ist schon interessant zu sehen, was andere so machen.
-
schoene xmas arbeit
welche schattentech ist es, PSM? oder normale schatten mit riesen shadowmap:)?
-
Es ist ne riesen map (2048x2048). Einer 1024er map sieht aber nicht sehr viel schlechter aus, man kann halt gerade so die Texel erkennen. Wahrscheinlich mach ich noch soft shadows draus, dann reicht eine 1024er map bestimmt völlig aus.
-
Optimizer schrieb:
Ich würde es btw. schön finden, wenn hier noch mehr Leute ihre Screenshots reinstellen.
Dem Rufe folge ich mal *hehe*
Fuer mein PSP projekt hab ich einen Moviepacker basierend auf Wavelets gemacht, auf dem Debugouput kann man zeilenweise, von links nach rechts:
-Orginalbild aus avi (vom T3 trailer)
-Residual bild zum vorherigen frame aus dem avi
-mit wavelet und motioncompensation gepacktes bild (sieht an vielen stellen besser aus als das orginal, )
-motion vectors
-Residual bild vom Wavelet gepackten vs orginal avi bild
-residual frame vom Wavelet gepackten+Motion compensation vs orginal avi bild
...sehen.
das ganze packt in etwa mit der rate von mpeg-avc, dabei nutz ich nur huffman als entrophiecodierung damit es dann auch auf der psp zu entpacken ist.Und als Grundlage fuer eine PS3 engine die einen software raterizer haben soll der auf allen SPUs mit SIMD voll laufen soll, hab ich experimentel (nur als research) vor ein paar wochen am Wochenende einen rasterizer geschrieben, der erstmal ohne SIMD nur alle mathematischen und algorithmischen ideen realisiert. Dieser zeichnet nur einen ZBuffer zZ, kann aber beliebig viele interpolatoren haben und deswegen auch texturen, schatten usw. Auf dem Screenshot sieht man als debug ausgabe die erste stuffe vom deffered shading, die colorierung der welt mittels der rekonstruierten Pixel-weltposition aus dem ZBuffer.
Btw. das Model hat ca 175000triangles und bei 512*512 laeuft das ganze bei ca 20fps auf einem 2GHZ amd und auf einem ExtremEdition quadcore von intel bei 3.2 ghz bei ca 60fps (ich glaube das liegt am grossen cache).
wie gesagt, das war nur ein prof of concept und hat keine optimierungen.
Wer kann erraten was mir da der graphiker gemodelt hat?.... aufloesung rueckwaertz: 2 livE tnedseR ... muss man nicht erkennen