Artikelempfehlungen, interessante Publikationen o.Ä.
Forumsregeln
Möglichst sinnvolle Präfixe oder die Themensymbole nutzen.
Möglichst sinnvolle Präfixe oder die Themensymbole nutzen.
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
[Video] Andrei Alexandrescu - Three Optimization Tips for C++. Tatsächlich weit mehr als drei, und mindestens so viel zu CPUs wie zu C++.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Robust Image Denoising using a Virtual Flash Image for Monte Carlo Ray Tracing - Verbessertes Denoising von Monte-Carlo-Ray-Tracing-Ergebnissen durch Einfügen eines intermediären Kamera-Blitzlichtes, das beim Denoising hilft, aus dem Endergebnis aber wieder herausgerechnet wird. Die Ergebnisse sehen beeindruckend aus, insbesondere in den dunklen Bildbereichen, in denen Noise oftmals besonders schwer in den Griff zu bekommen ist, scheint dieser Ansatz zu glänzen. Die Grundidee ist, an Stelle von Farb- oder G-Buffer-Daten das Feedback des Lichtes (inklusive des zusätzlichen Blitzlichtes) zu nutzen, um Noise von Bildelementen unterscheiden zu können. Damit lassen sich beim Blurren auch Reflexionen und Refraktionen (Geometrie in mehreren Ebenen!) berücksichtigen, welche sich in einem G-Buffer schwerlich umfassend speichern lassen. Die Reaktion auf das Licht enthält gewissermaßen sowohl Farbgebung als auch Geometrie der sichtbaren Szene, ähnlich der Signalantwort auf ein Testsignal in der Systemtheorie.
Nachtrag: Projektseite inklusive Video, sogar mit nahezu noisefreier Animation bei 16 Path Tracing Samples. Allerdings scheinen bei den Fliesen etwas später beim Denoising auch etwas die hochfrequenten Details verloren zu gehen.
Nachtrag: Projektseite inklusive Video, sogar mit nahezu noisefreier Animation bei 16 Path Tracing Samples. Allerdings scheinen bei den Fliesen etwas später beim Denoising auch etwas die hochfrequenten Details verloren zu gehen.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Fixing cache issues, the lazy way und Frustum culling: turning the crank von ryg zeigen wunderbar deutlich, wie man bestehenden, objektorientierten Quelltext durch datenorientierte Optimierung um ein Vielfaches schneller macht.
(Die Beiträge stammen aus einer großen Serie über das Refactoring eines Intel-Beispielprojekts, aber man kann die beiden Beiträge ruhig isoliert lesen.)
… was zwar nicht heißt, dass der Text schöner wurde; aber wem der Schuh drückt …we’re talking less than 10 lines of code changed for all the improvements in this post. Total.
(Die Beiträge stammen aus einer großen Serie über das Refactoring eines Intel-Beispielprojekts, aber man kann die beiden Beiträge ruhig isoliert lesen.)
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Ein Torrent-Link
von einem Battle vim vs emacs vs sed, der typische Schwanzvergleich. Absolut genial.
Dateigröße: 700 MB
Code: Alles auswählen
magnet:?xt=urn:btih:fabf08e38d8c43ea88f5f51e26fb2139bc769491&dn=28c3-4722-de-dick_size_war_for_nerds_h264.mp4&tr=http%3A%2F%2Fexodus.1337x.org%2Fannounce
Dateigröße: 700 MB
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
- Chromanoid
- Moderator
- Beiträge: 4273
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Making it in Indie Games: Starter Guide, Derek Yu, Make Games, 27.02.2013
Praktische Tipps für angehende Indiespieleentwickler von einem, der es wissen muss.
[via Gamasutra]
Praktische Tipps für angehende Indiespieleentwickler von einem, der es wissen muss.
[via Gamasutra]
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
In der Woche vom 25. bis 29. März 2013 gab's wieder die GDC. Ich habe mal den Schedule durchgearbeitet, bis dato die Twitter-Nachrichten und Autoren-Seiten ausgewertet, und ein paar interessante Talks herausgefunden. Als Disclaimer muss ich dazusagen, dass meine Auswahl natürlich sehr subjektiv ist; ich kann ja nicht ahnen, was die anderen interessant finden. Und so hat die folgende Liste einen starken Programmier- und Graphikentwicklungsschwerpunkt. Entschuldigung an jeden, der sich damit nicht anfreunden kann. ;)
Leider ist es so, dass es, wie in den letzten Jahren auch, erstmal mit den Veröffentlichungen der Präsentationen sehr, sehr schleppend vorangeht – dementsprechend ist die Quellenliste noch ziemlich leer. Die Erfahrung der letzten Jahre hat aber gezeigt, dass das Meiste in den nächsten drei Wochen verfügbar sein sollte. Die Liste wird dann von mir, sobald ich irgendetwas abschnorcheln kann, umgehend aktualisiert und ergänzt.
Zumindest bietet die Liste wohl einen ganz guten Anhaltspunkt, was es so interessantes gab, und nach welchen Präsentationen man überhaupt Nachforschungen anstellen könnte.
Monday:
Leider ist es so, dass es, wie in den letzten Jahren auch, erstmal mit den Veröffentlichungen der Präsentationen sehr, sehr schleppend vorangeht – dementsprechend ist die Quellenliste noch ziemlich leer. Die Erfahrung der letzten Jahre hat aber gezeigt, dass das Meiste in den nächsten drei Wochen verfügbar sein sollte. Die Liste wird dann von mir, sobald ich irgendetwas abschnorcheln kann, umgehend aktualisiert und ergänzt.
Zumindest bietet die Liste wohl einen ganz guten Anhaltspunkt, was es so interessantes gab, und nach welchen Präsentationen man überhaupt Nachforschungen anstellen könnte.
Monday:
- Advanced Visual Effects with DirectX 11—schedule—presentation
- DirectX 11 Performance Reloaded - Nick Thibieroz (AMD) and Holger Grun (NVIDIA)
page—presentation - Particle Shadows and Cache-Efficient Post-Processing - Louis Bavoil (NVIDIA)
page—presentation - DirectCompute for Gaming : Supercharge your engine with Compute Shaders - Stephan Hodes and Layla Mah (AMD)
page—presentation - A Survivor Reborn: Tomb Raider on DX11 - Jason Lacroix (Crystal Dynamics)
page—page—presentation (PPTX)—presentation (PDF) - The Rendering Technologies of Crysis 3 - Tiago Sousa (Crytek)
page—page—presentation - Tiled Rendering Showdown: Forward++ vs. Deferred Rendering - Jason Stewart and Gareth Thomas (AMD)
page—presentation - D3D11 Deferred Contexts: Primer & Best Practices - Bryan Dudash (NVIDIA)
- DirectX 11 Performance Reloaded - Nick Thibieroz (AMD) and Holger Grun (NVIDIA)
- Math for Game Programmers—schedule—page
- Interpolation and Splines - Squirrel Eiserloh (The Guildhall at SMU)
- Matrix Transformations - Squirrel Eiserloh (The Guildhall at SMU)
- Understanding Quaternions - Jim Van Verth (Google)
presentation - Dual Numbers - Gino van den Bergen (Dtecta)
presentation - Orthogonal Matching Pursuit and K-SVD for Sparse Encoding - Robin Green (Microsoft) and Manny Ko (Imaginations Technologies)
presentation - Computational Geometry - Graham Rhodes (Applied Research Associates Inc.)
- Interaction with 3D Geometry - Stan Melax (Intel)
- Physics for Game Programmers—schedule
- The Separating Axis Test - Dirk Gregorius (Valve)
presentation - Continuous Collision - Erin Catto (Blizzard Entertainment)
presentation - Spatial Data Structures - Gino van den Bergen (Dtecta)
presentation - Iterative Rigid Body Solvers - Richard Tonge (NVIDIA)
presentation - Stop my Constraints from Blowing Up! - Oliver Strunk (Havok)
presentation - Virtual Go - Glenn Fiedler (Sony Santa Monica)
page—presentation (Keynote)—presentation (PDF)
- The Separating Axis Test - Dirk Gregorius (Valve)
- Behind the Scenes: Optimizing Far Cry 3, Left 4 Dead 2 and Assassins Creed using AMD's GPU PerfStudio2 (Presented by AMD)
schedule—page—presentation - Loading Based on Imperfect Data
schedule—page—presentation - Static Lighting Tricks in Halo 4
schedule - Horizon and Beyond: A Look into Tomb Raider's Tools
schedule—page—presentation (PPTX)—presentation (PDF) - LOD Techniques for Boosting Rendering Performance (Presented by Simplygon)
schedule - Assassin's Creed III Homestead: Code, Data, and Tools
schedule - Next Generation Character Rendering
schedule—page—presentation preview - Powering the Next Generation of Graphics: The AMD GCN Architecture (Presented by AMD)
schedule—page—presentation preview - Under the Hood of Blizzard's Internal Build System
schedule—page+presentation - Casting a New Light on a Familiar Face: Light Based Rendering in Tomb Raider
schedule—page—presentation (PPTX)—presentation (PDF) - How CryEngine 3 and AMD GCN Architecture Gave Birth to a Red Gem: 'Project Phoenix' (Presented by AMD)
schedule—page—presentation (PPTX)
- NVIDIA Nsight Visual Studio Edition 3.0 - Catzilla Engine Development in DirectX 11 and OpenGL 4.2 (Presented by NVIDIA)
schedule—page—presentation - LOD Techniques for Boosting Rendering Performance (Presented by Simplygon)
schedule - Postmortem: GPU Accelerated Effects in Borderlands 2 (Presented by NVIDIA)
schedule—page—video - Sand Rendering in Journey
schedule - Breaking the Rules on a GPU (Presented by Intel Corporation)
schedule—page—presentation - Porting Source to Linux: Valve's Lessons Learned (Presented by NVIDIA)
schedule—page—presentation - Cross-Platform Game Development: Best Practices Learned from Unreal, Unity, and Others (Presented by Intel Corporation)
schedule—page—presentation - Enhancing Hawken and PlanetSide 2 Through Turbulence and Destruction (Presented by NVIDIA)
schedule—page - GPU Rigid Body Simulation
schedule - Powering up Destiny's Level Creation and Rendering with Umbra 3 (Presented by Umbra Soft)
schedule - Rendering Tricks in Dead Space 3
schedule - Low-Level Thinking in High-Level Shading Languages
schedule—page—presentation (PPTX)—presentation (PDF) - Relighting Forge in Halo 4: Just-In-Time Lighting of User Generated Content
schedule - Why Render Hidden Objects? Cull Them With a Software Depth-Buffer Rasterizer! (Presented by Intel Corporation)
schedule—page—presentation - Why Virtual Reality Is Hard (And Where It Might Be Going)
schedule—presentation - What We Learned Porting Team Fortress 2 to Virtual Reality
schedule—page—presentation
- Eliminating Texture Waste: Borderless Realtime Ptex
schedule—page—presentation - LOD Techniques for Boosting Rendering Performance (Presented by Simplygon)
schedule - Rendering Assassin's Creed III
schedule - Practical Implementation of Light Scattering Effects Using Epipolar Sampling and 1D Min/Max Binary Trees
schedule—page—demo+source
- GPU Rigid Body Dynamics
page—presentation - OpenGL 4.x and Beyond
page—presentation - nvFX: A New Shader-Effect Framework for OpenGL, DirectX and Even Compute
page—presentation
Zuletzt geändert von eXile am 21.04.2013, 21:56, insgesamt 23-mal geändert.
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Und noch unabhängig von der GDC ein paar Sachen, die ich heute gefunden habe:
Adaptive Volumetric Shadow Maps
Robert Svilpa
Rational BRDF
Romain Pacanowski, Oliver Salazar-Celis, Christophe Schlick, Xavier Granier, Poulin Pierre, Cuyt Annie
TVCG 2012
Adaptive Transparency
Aaron Lefohn
HPG 2011
Adaptive Volumetric Shadow Maps
Robert Svilpa
Rational BRDF
Romain Pacanowski, Oliver Salazar-Celis, Christophe Schlick, Xavier Granier, Poulin Pierre, Cuyt Annie
TVCG 2012
Adaptive Transparency
Aaron Lefohn
HPG 2011
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Exzellente Zusammenstellung! Danke für Deine Arbeit! Allerdings besagt bei "Next Generation Character Rendering" sowohl Dateiname als auch die Webseite, dass das nur ein "Teaser" sei. Falls es unvollständig ist, wäre es damit wertlos.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Ja, das ist mir wohlbekannt. Vielleicht hätte ich das auch mal hinschreiben sollen. ;) Die obige Liste soll zu jedem Zeitpunkt die beste Näherung an eine vollständige Liste sein, damit kommen auch erstmal Previews mit rein.Schrompf hat geschrieben:Allerdings besagt bei "Next Generation Character Rendering" sowohl Dateiname als auch die Webseite, dass das nur ein "Teaser" sei. Falls es unvollständig ist, wäre es damit wertlos.
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Auch wenn einige Links davon sicher schon gepostet wurden: DICE Publications (Entwickler von Battlefield und Mirror's Edge)
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Die Suche nach Präsentationen von der GDC 2013 ist von meiner Seite erst einmal beendet – auch wenn leider da oben noch einige Lücken klaffen (I'm looking at you, Bungie!). Jedoch ist in den letzten Tagen einfach nichts neues mehr gekommen. Vermutlich schau ich in einem Monat wieder vorbei, was sich so getan hat. An dieser Stelle möchte ich auch noch einmal ausdrücklich Javier Arévalo Baeza danken, welcher einige Artikel aufgestöbert hat, die ich vergessen habe; und auch umgekehrt (siehe dortige Blog-Kommentare) ;).
Selbst wenn ihr gar keine Zeit haben solltet: Auf jeden Fall die Präsentation Low-Level Thinking in High-Level Shading Languages anschauen; die ist sehr abgeschlossen und ein absolutes Highlight der GDC 2013. Los!
Selbst wenn ihr gar keine Zeit haben solltet: Auf jeden Fall die Präsentation Low-Level Thinking in High-Level Shading Languages anschauen; die ist sehr abgeschlossen und ein absolutes Highlight der GDC 2013. Los!
- Chromanoid
- Moderator
- Beiträge: 4273
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Skyrim’s Modular Approach to Level Design, Joel Burgess, 19.04.2013
Lesenswerter Artikel über die Hindernisse und Vorteile, die ein modularer Ansatz beim Level Design mit sich bringt.
[via Gamasutra.com]
Lesenswerter Artikel über die Hindernisse und Vorteile, die ein modularer Ansatz beim Level Design mit sich bringt.
[via Gamasutra.com]
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Virtuality - Uralt, mir bisher dennoch entgangen. Kurzzusammenfassung: Um öffentliche Schnittstelle und durch abgeleitete Klassen spezialisierbares Verhalten zu trennen, virtuelle Methoden private deklarieren; es sei denn, Wiederverwendung des Basisverhaltens durch abgeleitetes Verhalten explizit erwünscht, dann protected. öffentliche Schnittstelle hingegen non-virtual.
So lässt sich leicht fix spezifiziertes Verhalten in der Basisklasse erzwingen. Die geschützten virtuellen Methoden werden in der Basisimplementierung der öffentlichen Schnittstelle zum richtigen Zeitpunkt aufgerufen und ermöglichen so anpassbares Verhalten in strengem Rahmen. Dieses Muster ist keineswegs erstaunlich oder neu, die Vorzüge sind intuitiv ersichtlich. Dennoch war mir die Umsetzung über private virtual-Methoden bisher nicht geläufig.
So lässt sich leicht fix spezifiziertes Verhalten in der Basisklasse erzwingen. Die geschützten virtuellen Methoden werden in der Basisimplementierung der öffentlichen Schnittstelle zum richtigen Zeitpunkt aufgerufen und ermöglichen so anpassbares Verhalten in strengem Rahmen. Dieses Muster ist keineswegs erstaunlich oder neu, die Vorzüge sind intuitiv ersichtlich. Dennoch war mir die Umsetzung über private virtual-Methoden bisher nicht geläufig.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
War für mich auch neu. Wenn ich noch virtuelle Funktionen hätte, würde ich sie nun anpassen.
Ebenfalls großartig!Guideline #4: A base class destructor should be either public and virtual, or protected and nonvirtual.
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Natuerlich, das Event des Jahres (zumindest fuer mich *gg*): Die Google I/O.
Es gibt so viel von dem die "Newsseiten" nicht berichten... vielleicht bin ich auch einfach nur auf den Falschen..
Es gibt so viel von dem die "Newsseiten" nicht berichten... vielleicht bin ich auch einfach nur auf den Falschen..
Best Android Apps ;)[/b]
König der Mathematik | King of Math
Der Bro Kodex | The Bro Code
Kompetente Firma: Troubi Entertainment
König der Mathematik | King of Math
Der Bro Kodex | The Bro Code
Kompetente Firma: Troubi Entertainment
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Da ich mich gerade selber mit der Netzwerk/Multiplayer-Lib RakNet beschäftige
und auf der Suche nach guten Tutorials war, möchte ich meine Ergebnisse gerne teilen.
Es existiert auf YouTube ein Channel von Kendoge1234, in dem ausführlich RakNet erklärt wird.
Es bezieht sich in dem Fall auf die Leadwerks-Engine, ist aber allgemein anwendbar.
Wer also Lust auf diese Tutorial-Videos hat, der findet diese hier im Channel.
und auf der Suche nach guten Tutorials war, möchte ich meine Ergebnisse gerne teilen.
Es existiert auf YouTube ein Channel von Kendoge1234, in dem ausführlich RakNet erklärt wird.
Es bezieht sich in dem Fall auf die Leadwerks-Engine, ist aber allgemein anwendbar.
Wer also Lust auf diese Tutorial-Videos hat, der findet diese hier im Channel.
- Chromanoid
- Moderator
- Beiträge: 4273
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Minimalism in Game Narrative: Can we say more by talking less?, Paul Andrew Mcgee, Felt Thought, 17.05.2013
[via Making Games]
[via Making Games]
- Chromanoid
- Moderator
- Beiträge: 4273
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Krompression von Sparse Voxel Octrees zu Sparse Voxel Directed Acyclic Graphs. Die Idee ist so naheliegend wie genial: SVOs werden bottom-up minimiert, indem Unterbäume mit gleicher Struktur zu einem verschmolzen werden. Die Struktur ist dabei einfach rekursiv durch die binären Voxelwerte aller enthaltenen Voxel definiert. Der jeweils beschriebene Raum lässt sich ganz normal aus der Baumstruktur rekonstruieren, d.h. gleiche Unterbäume werden beim Traversal quasi implizit an verschiedenen Stellen instantiiert. Das SVDAG-Traversal ist obendrein nicht bedeutend langsamer als bisherige SVO-Traversal-Implementierungen.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Die Idee ist in der Tat naheliegend, aber mir war bisher keine Methode bekannt, wie man effizient identische Strukturen in den Datenmengen finden könnte. Meine Versuche in der Richtung liefen jedesmal darauf hinaus, dass ich schon für kleinste Teilbäume für die Indizierung mehr Speicher brauchte, als ich nachher eingespart habe. Mal schauen, was das Paper dazu sagt.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- kimmi
- Moderator
- Beiträge: 1405
- Registriert: 26.02.2009, 09:42
- Echter Name: Kim Kulling
- Wohnort: Luebeck
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Das klingt sehr nach der Substruktur-technik, die in der finiten Elemente Analyse benutzt werden Auch hier werden gleiche Bereiche von Steifigkeitsmatrizen einfach wiederverwendet.
Gruß Kimmi
Gruß Kimmi
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Global Illumination with Radiance Regression Functions
Peiran Ren, Jiaping Wang, Minmin Gong, Stephen Lin, Xin Tong, Baining Guo
SIGGRAPH 2013
Man fittet einfach ein (oder mehrere) neuronale Netze an die indirekte Beleuchtung.
Geht auf einem 200-Rechner-Cluster mit je 2×Quadcore-Xeon-Prozessoren und 16 GB RAM schon in dreieinhalb Stunden. Dafür hat man bei statischer Geometrie für beliebige Lichter und beliebige BRDFs die globale Illumination in Echtzeit sehr gut approximiert.
Peiran Ren, Jiaping Wang, Minmin Gong, Stephen Lin, Xin Tong, Baining Guo
SIGGRAPH 2013
Man fittet einfach ein (oder mehrere) neuronale Netze an die indirekte Beleuchtung.
Geht auf einem 200-Rechner-Cluster mit je 2×Quadcore-Xeon-Prozessoren und 16 GB RAM schon in dreieinhalb Stunden. Dafür hat man bei statischer Geometrie für beliebige Lichter und beliebige BRDFs die globale Illumination in Echtzeit sehr gut approximiert.
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Wow. Da habe ich mich gerade neulich noch mit Krishty darüber unterhalten, mit welch fantastischem Realismus manche Maler schon lange vor Aufkommen der Computergrafik in ihren Bildern Schattierung, indirekte Beleuchtung und Tonemapping umgesetzt haben; dann in all dem Chaos wieder das entscheidende Ordnungselement nicht gesehen. Zum Glück schaut die Welt mit vielen Augen, und nicht mit allen nur auf den Datenverkehr.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Chromanoid
- Moderator
- Beiträge: 4273
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Ja, das finde ich auch ziemlich interessant. Wenn wir uns etwas bildlich vorstellen, wandert diese Vorstellung ja ziemlich weit den visuellen Cortex "hoch", ich meine man konnte vorgestellte Bilder sogar schon rudimentär aus MRI-Scans rekonstruieren. "Neuronales" Rendering oder zumindest eine Art Retusche, wie in diesem Fall, finde ich sehr erforschenswert. BTW neuronale Netze und das Gehirn haben natürlich eher wenig gemeinsam, aber das kann sich ja noch ändern :).
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Sorry, aber das ist doch vollkommener Pseudohumbug, welcher von der KI-Community schon in den 70er- und 80er-Jahren propagiert wurde, und direkt in die KI-Winter geführt hat. Neuronale Netze haben nichts mit solchen Dingen wie „Intelligenz“ oder „Geist“ zu tun. Es handelt sich nur um eine Berechnungsvorschrift einer Funktion. Wie immer bei irrationalen Überzeugungssystemen ist der beste Weg, dies zu zeigen, einfach das Problem zu erklären, und analytisch-rational zu untersuchen.
Wir haben also ein Problem, das gelöst werden muss: Es gibt eine hochgeradig nicht-lineare Funktion, an welche wir eine einfach zu berechnende Funktion fitten wollen. Namentlich ist die hochgeradig nicht-lineare Funktion hierbei zufälligerweise die indirekte Beleuchtung unserer Szene. Nun muss man die Funktion, die das Ergebnis unseres Fittings sein soll, irgendwie parametrisieren.
Dazu nehmen wir beispielsweise eine Funktion \($\Phi_{N}^{i}:\mathbb{R}^{n}\times\mathbb{R}^{m}\to\mathbb{R}^{3}$\) der Gestalt\($$\Phi_{N}^{i}(\mathbf{x},\mathbf{w})=w_{i0}^{3}+\sum_{j>0}w_{ij}^{3}\cdot\sigma\Big(w_{j0}^{2}+\sum_{k>0}w_{jk}^{2}\cdot\sigma\big(w_{k0}^{1}+\sum_{l=1}^{9}w_{kl}^{1}x_{l}\big)\Big)$$\)mit\($$\sigma(x)=(1+e^{-x})^{-1}\text{.}$$\)Dabei ist \($\mathbf{x}=(\mathbf{x_{p}},\mathbf{v},\mathbf{l},\mathbf{n},\mathbf{a})$\) ein Parameter-Tupel für eine bestimmte Position in der Welt \($\mathbf{x_{p}}$\), gesehen vom View-Vektor \($\mathbf{v}$\), beleuchtet aus Richtung \($\mathbf{l}$\) mit Normale \($\mathbf{n}$\) und BRDF-Parametern \($\mathbf{a}$\) (im Falle einer Blinn-Phong-BRDF wäre beispielsweise \($\mathbf{a}=(k_{d},k_{s},\alpha)$\) – nach meinem Dafürhalten wäre damit \($n=2+2+2+2+3=11$\), das Paper sagt, es wären mehr; sei es drum). Der zweite Parameter \($\mathbf{w}$\) ist ein Gewichtsvektor, der für das Fitting an die originale Funktion verwendet wird. Aus dem Paper kann man schätzen, dass es ca. 500 Gewichte gibt, d.h. \($m=500$\).
Man macht jetzt also einfach ein Least-Squares-Fitting für jeden Punkt \($\mathbf{x}$\) an die originale Funktion. Moment, was ist die originale Funktion? Genau, sie haben einfach die korrekte globale Illumination mit einem Pathtracer in hundert Jahren vorberechnet; grandios. Also gut, wir haben also Samples \($\mathbf{y}$\) für unsere Zielfunktion an der Stelle \($\mathbf{x}$\), und fitten die Gewichte \($\mathbf{w}$\) unserer Funktion daran: \($$E(\mathbf{w})=\sum_{i}\|\mathbf{y}^{i}-\Phi_{N}(\mathbf{x},\mathbf{w})\|$$\) Das Fitting geht einfach mit der dicken Bertha der nichtlinearen Ausgleichsrechnung, dem Levenberg-Marquardt-Algorithmus. Auch hier versteckt sich kein großer Geist: Das ist einfach das schon aus der Schule bekannte Newton-Verfahren on Steroids.
Jetzt haben wir unsere \($\mathbf{w}$\) gefunden. Diese speichern wir beispielsweise in einer Volumentextur oder einem kd-Tree (jeder kd-Tree-Knoten ist ein \($n$\)-dimensionaler Punkt . Dann können wir die Funktion \($\Phi_{N}^{i}(\mathbf{x},\mathbf{w})$\) oben im Pixel-Shader berechnen.
Nur einmal angenommen, es stecke ein größerer Geist dahinter: Dann wäre das auch bei anderen Funktionsvorschriften der Fall, denn eine Funktionsvorschrift ist einfach eine Berechnungsvorschrift; da drin kann keine von Menschenhand hineingedachte Intelligenz stecken. Also gut, nehmen wir einfach ein paar Gaußfunktionen: \($$\Phi_{N}^{i}(\mathbf{x},\mathbf{w})=\sum_{i=1}^{k}\exp(-\mathbf{x}^{\mathrm{T}}\cdot\mathbf{A}_{k}(\mathbf{w})\cdot\mathbf{x})$$\) Dabei ist \($\exp$\) das Exponential, und \($\mathbf{A}_{k}$\) eine Matrix, welche von den Gewichten abhängt. Als Parameter haben wir dann die Anzahl der Gewichte \($n$\) und den Cutoff \($k$\). Nun schmeißen wir genauso wie zuvor einfach Levenberg-Marquardt drauf, und kriegen unsere Gewichte, und können die abspeichern und die Sachen rendern.
Der Punkt ist doch der: Die Idee des Papers ist von der Wahl der Parametrisierung der zu fittenden Funktion unabhängig. Das ist hierbei etwas, was den Namen „neuronales Netz“ trägt (aber nur eine Berechnungsvorschrift darstellt); es kann aber auch eine Summe von Gaußfunktionen sein, oder etwas ganz anderes. Doch niemand würde einer Summe von Gaußfunktionen irgendwelche Attribute wie „Intelligenz“ zuweisen; so etwas ist einfach nicht für eine Funktion definiert. Dafür dürft ihr euch bei populärwissenschaftlichen Magazinen (mit Journalisten, die nur ihr Brot verdienen wollen, und von der Materie eher wenig Ahnung haben) und den ganzen KI-Heinis bedanken, die in ihren Projektanträge vollkommen unangemessene, hochtrabenden Begriffe verwendet haben, um Gelder einzustreichen (und dann in den
KI-Wintern zu verkacken).
Lasst es mich noch einmal krass sagen: Ihr denkt, da wäre etwas, wo in Wahrheit gar nichts ist.
Wir haben also ein Problem, das gelöst werden muss: Es gibt eine hochgeradig nicht-lineare Funktion, an welche wir eine einfach zu berechnende Funktion fitten wollen. Namentlich ist die hochgeradig nicht-lineare Funktion hierbei zufälligerweise die indirekte Beleuchtung unserer Szene. Nun muss man die Funktion, die das Ergebnis unseres Fittings sein soll, irgendwie parametrisieren.
Dazu nehmen wir beispielsweise eine Funktion \($\Phi_{N}^{i}:\mathbb{R}^{n}\times\mathbb{R}^{m}\to\mathbb{R}^{3}$\) der Gestalt\($$\Phi_{N}^{i}(\mathbf{x},\mathbf{w})=w_{i0}^{3}+\sum_{j>0}w_{ij}^{3}\cdot\sigma\Big(w_{j0}^{2}+\sum_{k>0}w_{jk}^{2}\cdot\sigma\big(w_{k0}^{1}+\sum_{l=1}^{9}w_{kl}^{1}x_{l}\big)\Big)$$\)mit\($$\sigma(x)=(1+e^{-x})^{-1}\text{.}$$\)Dabei ist \($\mathbf{x}=(\mathbf{x_{p}},\mathbf{v},\mathbf{l},\mathbf{n},\mathbf{a})$\) ein Parameter-Tupel für eine bestimmte Position in der Welt \($\mathbf{x_{p}}$\), gesehen vom View-Vektor \($\mathbf{v}$\), beleuchtet aus Richtung \($\mathbf{l}$\) mit Normale \($\mathbf{n}$\) und BRDF-Parametern \($\mathbf{a}$\) (im Falle einer Blinn-Phong-BRDF wäre beispielsweise \($\mathbf{a}=(k_{d},k_{s},\alpha)$\) – nach meinem Dafürhalten wäre damit \($n=2+2+2+2+3=11$\), das Paper sagt, es wären mehr; sei es drum). Der zweite Parameter \($\mathbf{w}$\) ist ein Gewichtsvektor, der für das Fitting an die originale Funktion verwendet wird. Aus dem Paper kann man schätzen, dass es ca. 500 Gewichte gibt, d.h. \($m=500$\).
Man macht jetzt also einfach ein Least-Squares-Fitting für jeden Punkt \($\mathbf{x}$\) an die originale Funktion. Moment, was ist die originale Funktion? Genau, sie haben einfach die korrekte globale Illumination mit einem Pathtracer in hundert Jahren vorberechnet; grandios. Also gut, wir haben also Samples \($\mathbf{y}$\) für unsere Zielfunktion an der Stelle \($\mathbf{x}$\), und fitten die Gewichte \($\mathbf{w}$\) unserer Funktion daran: \($$E(\mathbf{w})=\sum_{i}\|\mathbf{y}^{i}-\Phi_{N}(\mathbf{x},\mathbf{w})\|$$\) Das Fitting geht einfach mit der dicken Bertha der nichtlinearen Ausgleichsrechnung, dem Levenberg-Marquardt-Algorithmus. Auch hier versteckt sich kein großer Geist: Das ist einfach das schon aus der Schule bekannte Newton-Verfahren on Steroids.
Jetzt haben wir unsere \($\mathbf{w}$\) gefunden. Diese speichern wir beispielsweise in einer Volumentextur oder einem kd-Tree (jeder kd-Tree-Knoten ist ein \($n$\)-dimensionaler Punkt . Dann können wir die Funktion \($\Phi_{N}^{i}(\mathbf{x},\mathbf{w})$\) oben im Pixel-Shader berechnen.
Nur einmal angenommen, es stecke ein größerer Geist dahinter: Dann wäre das auch bei anderen Funktionsvorschriften der Fall, denn eine Funktionsvorschrift ist einfach eine Berechnungsvorschrift; da drin kann keine von Menschenhand hineingedachte Intelligenz stecken. Also gut, nehmen wir einfach ein paar Gaußfunktionen: \($$\Phi_{N}^{i}(\mathbf{x},\mathbf{w})=\sum_{i=1}^{k}\exp(-\mathbf{x}^{\mathrm{T}}\cdot\mathbf{A}_{k}(\mathbf{w})\cdot\mathbf{x})$$\) Dabei ist \($\exp$\) das Exponential, und \($\mathbf{A}_{k}$\) eine Matrix, welche von den Gewichten abhängt. Als Parameter haben wir dann die Anzahl der Gewichte \($n$\) und den Cutoff \($k$\). Nun schmeißen wir genauso wie zuvor einfach Levenberg-Marquardt drauf, und kriegen unsere Gewichte, und können die abspeichern und die Sachen rendern.
Der Punkt ist doch der: Die Idee des Papers ist von der Wahl der Parametrisierung der zu fittenden Funktion unabhängig. Das ist hierbei etwas, was den Namen „neuronales Netz“ trägt (aber nur eine Berechnungsvorschrift darstellt); es kann aber auch eine Summe von Gaußfunktionen sein, oder etwas ganz anderes. Doch niemand würde einer Summe von Gaußfunktionen irgendwelche Attribute wie „Intelligenz“ zuweisen; so etwas ist einfach nicht für eine Funktion definiert. Dafür dürft ihr euch bei populärwissenschaftlichen Magazinen (mit Journalisten, die nur ihr Brot verdienen wollen, und von der Materie eher wenig Ahnung haben) und den ganzen KI-Heinis bedanken, die in ihren Projektanträge vollkommen unangemessene, hochtrabenden Begriffe verwendet haben, um Gelder einzustreichen (und dann in den
KI-Wintern zu verkacken).
Lasst es mich noch einmal krass sagen: Ihr denkt, da wäre etwas, wo in Wahrheit gar nichts ist.
- Chromanoid
- Moderator
- Beiträge: 4273
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Ich stimme Dir ja zu, dass KNNs nur entfernt mit biologischen neuronalen Netzen zu tun haben. Allerdings sind soweit ich weiß gerade die ersten Schichten des visuellen Cortex recht gut erforscht und es sind dort eben doch recht einfache mathematisch nachvollziehbare Mechanismen am Werk. Mit Intelligenz muss das ja nichts zu tun haben. Das Neocognitron ist so ein Beispiel für Mustererkennung. Warum sollte es nicht auch KNNs für's Rendering geben, deren Mechanismen sich an Vorgängen im Gehirn orientieren (sofern sich diesbezüglich Erkenntnisse ergeben)? Dort scheint grafische Darstellung jedenfalls recht gut zu klappen :)...
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Oder du denkst, da wäre etwas, wo in Wahrheit gar nichts ist? :P Dass Gehirn und neuronale Netze erstmal nicht allzu viel gemeinsam haben, ist klar. Ob im Gehirn nun tatsächlich ein Geist oder Intelligenz wohnt, oder ob das nur der unglaublich komplexen Zusammensetzung geschuldet ist, sei mal dahin gestellt. Auch dass das Vorgehen nicht an neuronale Netze gebunden ist, ist mir durchaus bewusst; das Paper trägt diese ja nicht mal in seinem unaufgeregt vorgehensbezogenen Titel. Unabhängig davon faszinierte mich eigentlich nur die Herangehensweise, auf dieser Ebene Training/Fitting zu betreiben, deren Maßstab mir ein wenig analog zu der Art und Weise erschien, mit der wir uns beim Malen das Aussehen neuer Kompositionen anhand unserer Erfahrung mit unzähligen bereits gesehenen Lichtverhältnissen und Objektkonstellationen rekonstruieren.eXile hat geschrieben:[...] Lasst es mich noch einmal krass sagen: Ihr denkt, da wäre etwas, wo in Wahrheit gar nichts ist.
So wie so wieder mal schön, wie du die relevanten Grundlagen kompakt und mit der für den magiefreien Nachvollzug erforderlichen Mathematik in einen kurzen Post gepackt hast. :)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Artikelempfehlungen, interessante Publikationen o.Ä.
Falls ich das recht verstehe: Wir kennen die Render-Gleichung, die stets das korrekte Ergebnis liefert; können sie aber nicht in endlicher Zeit lösen.
Allgemein verbreitet ist, dass man von der Render-Gleichung ausgeht und sie in berechenbare Gefilde presst während sie physikalisch halbwegs nachvollziehbar bleibt.
Der Ansatz mit dem neuronalen Netz ist, eine Gleichung zu finden, die die Render-Gleichung für die bekannten Fälle möglichst gut annähert, ohne sich Wissen über die Physik zunutze zu machen. Dabei könnte was rauskommen, was der Render-Gleichung ähnlich sieht, oder aber auch komplett anders; Hauptsache, es liegt nah am Ergebnis der Render-Gleichung.
Liege ich da halbwegs richtig?
Allgemein verbreitet ist, dass man von der Render-Gleichung ausgeht und sie in berechenbare Gefilde presst während sie physikalisch halbwegs nachvollziehbar bleibt.
Der Ansatz mit dem neuronalen Netz ist, eine Gleichung zu finden, die die Render-Gleichung für die bekannten Fälle möglichst gut annähert, ohne sich Wissen über die Physik zunutze zu machen. Dabei könnte was rauskommen, was der Render-Gleichung ähnlich sieht, oder aber auch komplett anders; Hauptsache, es liegt nah am Ergebnis der Render-Gleichung.
Liege ich da halbwegs richtig?
secondedCodingCat hat geschrieben:So wie so wieder mal schön, wie du die relevanten Grundlagen kompakt und mit der für den magiefreien Nachvollzug erforderlichen Mathematik in einen kurzen Post gepackt hast. :)