DGL https://delphigl.com/forum/ |
|
@Homunculus Engine https://delphigl.com/forum/viewtopic.php?f=14&t=10384 |
Seite 1 von 1 |
Autor: | damadmax [ Sa Apr 07, 2012 19:32 ] |
Betreff des Beitrags: | @Homunculus Engine |
Bitte lasst tüchtig vom Leder... |
Autor: | Ida [ Sa Apr 07, 2012 20:58 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Ich finde das für einen "ANFANG" verdammt beeindruckend. Meine Anfänge einer Engine haben da anders ausgesehen! Besonders toll find ich die ganzen integrierten Effekte wie Bloom, NormalMapping ect, das ist nämlich so ein Thema bei dem ich wissensmäßig komplett im Rückstand bin und warscheinlich nie kapieren werde wie ich sowas richtig implementiere ![]() Was mich vor allem intressieren würde: Hast du eigentlich vor damit später auch Spiele zu realisieren oder ist das wie du gesagt hast rein auf die Darstellung von so architektischen Gebilden gedacht, also völlig ohne Animation und Interaktion? Aber echt tolle Arbeit, ich wünschte ich hätte mal wieder Zeit an meinen Projekten weiterzumachen (Uni sei dank ![]() lg Ida |
Autor: | TAK2004 [ So Apr 08, 2012 10:13 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Das sieht schon sehr gut aus und da steckt auch schon gut Technik drin. Ich empfehle dir auf fxaa2 und hdr buffer zu setzen oder mal die reihenfolge und shader bzgl. der zu hohen signalstärke an zu passen. Man sieht sehr gut das im endbild die signalstärke zu hoch ist, was man an den Artefakten sieht. |
Autor: | damadmax [ So Apr 08, 2012 23:20 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Ida hat geschrieben: Besonders toll find ich die ganzen integrierten Effekte wie Bloom, NormalMapping ect, ... Viele der Shader habe ich mir natürlich ergoogelt bzw mehrere Informationsquelle ausgebeutet und dann so zusammengebaut, wie ich es brauche. Bei einigen habe ich auch erst nach ein wenig rumexperimentieren verstanden wie sie wirklich funktionieren. Was das Normalmapping angeht, habe ich zunächst einen Ansatz verfolgt, der die Tangente im Voraus berechnet. Aber das lies sich nicht so richtig mit Displaylists kombinieren. Hab dann die Normalmaps erstmal weggelassen, bis ich zufällig über einen Fragment-Shader stolperte der das onthefly macht. Kostet zwar etwas GPU-Power...aber das kann man immer noch ändern wenn ich mal auf VBOs umgestellt habe. Zur Frage: Die Architektur-Visualisierung ist erstmal auf Eis gelegt, bis ich eine Lösung für die Konvertierung der unwahrscheinlich schlechten Geometrie gefunden habe. Ich schau mal ob ich noch einen alten Screenshot habe, der die ersten Ergebnisse zeigt. Bzgl. Spiele: Man träumt ja viel. Vor allem wenn man alte Spiele spielt oder z.b. bei Youtube letsplays ansieht. Gibt da schon so einige Sachen, die ich wirklich gerne umsetzen würde. Allen voran ein Commandos Klon. Wobei ich schon Gerüchte gehört habe, dass Pyro einen neuen Teil in Arbeit haben soll. Des weiteren hab ich vor längerer Zeit mal einen Snake Rattle'n Roll Klon unter Delphi angefangen, dessen Daten ich unter Umständen weiterverwenden könnte. @Tak: Hast du irgendwelche Links bzw. Quellen für FXAA2? Google zeigt mir da auf anhieb nichts brauchbares. Ausser Youtube Tutorials in denen gezeigt bekommt wie man im Treiber AA aktiviert. ![]() |
Autor: | TAK2004 [ Mo Apr 09, 2012 19:18 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Nvidia hat im Treiber FXAA 1-4 per Grafiktreiber und nochmal ein seperaten Shader im NV SDK 11(http://developer.nvidia.com/nvidia-graphics-sdk-11). NV ist aktuell sogar bei Version 4. Der Vorteil dabei liegt in Paralax- und Bump-mapping, da die Normals im Buffer verwendet werden, statt Geometry(wie üblich in AA Filter). Dass es mehr als eine FXAA Version gibt, hab ich in Anno2070 zum ersten mal gesehen. |
Autor: | damadmax [ Mo Apr 09, 2012 21:30 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Den Shader aus dem SDK hab ich jetzt eingebaut. Allerdings interessiert den die Normalmap kein bisschen. |
Autor: | TAK2004 [ Di Apr 10, 2012 13:28 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Mhh, bei Unity3D und in einigen gamedev foren hab ich den NFAA als FXAA 2.0 gefunden, also FXAA steht dran aber der Shader von NFAA ist drin. NFAA Ich hab noch ein bisschen nach geforscht, aufgrund dieses Posts und prinzipiell scheint es da keine Nummerierung zu geben. Die Nummern sind keine wirklichen Technologieunterschiede sondern Versionsnummern von den jeweiligen Entwickler. Also FXAA2 ist nicht die 2. Generation, sondern einfach nur die 2. Version von NV und FXAA2 bei Unity3D und Anno 2070 sind nicht unbedingt FXAA2 von NV. Ein bisschen verwirrend, wenn man das nicht vorher wusste. Daher wurde auch NFAA als FXAA2 beschrieben, dabei ist es eine ganz andere Technologie. Also kurz es gibt nur FXAA und NFAA, was ich ursprünglich meinte, war eine optimierte Version von FXAA und NFAA scheint aber wohl die eher state-of-the-art Lösung zu sein, da sie auch innerhalb von Flächen glätten kann. Allerdings sind auch auf der GDC2012 ~250 Slides zusammen gekommen und ich bin noch am sichten. Vieleicht sind ja schon wieder neue Lösungen auf getaucht. |
Autor: | Evil-Devil [ Do Apr 12, 2012 13:21 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Schaut super aus. Vor allem das es mit LWJGL realisiert ist ![]() Nutzt du SLICK für die GUI oder wo findet es Verwendung? |
Autor: | damadmax [ Do Apr 12, 2012 13:41 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Von slick nutze ich bislang nur PNGDecoder und AngelCodeFont zum zeichnen der Schrift. Der Rest der GUI ist ein Eigenbau, der noch einiges an Optimierung vertragen kann. Vor allem was das Layout angeht. Jedes Element einzeln zu positionieren ist doch recht aufwendig und umständlich. Aber das hat Zeit, im Moment quäle ich meine Grafikkarte mit einer neuen Ambient Occlusion Implementierung. Mit allen Effekten geht die Framerate dann auf 30 frames/sek runter. |
Autor: | TAK2004 [ Do Apr 12, 2012 15:04 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Zu Ambient Occlusion kann ich auch noch 2 Papers bei steuern. Battlefield 3 nutzt Horizon Ambient Occlusion und Nvidia schwört auch seit ner weile drauf. Es soll wohl ein zickiges Kind sein, was aber sehr schön sein kann ^^ Auf der GDC 2012 haben noch einige andere Firmen in ihren Paper diese Technik erwähnt(z.B. Crytek). http://www.slideshare.net/DICEStudio/st ... -filtering http://developer.download.nvidia.com/as ... SSAO11.pdf Wenn du schon AngelCodeFont verwendest, kannst du auch Distance field based font rendering nutzten(http://bitsquid.blogspot.de/2010/04/dis ... ng-of.html). Das ist um einiges schneller, wenn man mehrere Schriftgrößen, der gleichen Schriftart hat und es sieht um einiges besser aus. Das Tool kann die entsprechenden PNG files generieren und ein Shader findest du im Link aber ist auch super einfach selber zu schreiben. Wenn du allerdings mehrere Schriftarten verwendest, dann bringt es keine weitere Leistung aber noch geglättete Schrift. Hast du schon mal die CPU und GPU Zeiten geprofiled ? Würde mich mal sehr interessieren. Edit: Sieht nun übrigens echt gut aus mit FXAA ![]() |
Autor: | damadmax [ Do Apr 12, 2012 18:01 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Danke für die Papers. Das DistanceField Paper hatte ich sogar schon mal zwischen den Fingern. TAK2004 hat geschrieben: Hast du schon mal die CPU und GPU Zeiten geprofiled ? Würde mich mal sehr interessieren. Kommt auf die Todo-Liste. Der Profiler braucht noch etwas Arbeit bis er ordentliche Ergebnisse bringt. Allerdings kann ich soweit schon sagen, dass die GPU doch sehr viel zu tun hat. Die CPU-Auslastung ist dagegen zwischen 5 und 10% laut Taskmanager. Besonders böse aufgefallen ist allerdings, der eine glGetPixels Befehl, der mal geschmeidige 14ms benötigt. In der gleichen Zeit kann die gesamte Szene 3-4 mal gezeichnet werden. Es ist auch ziemlich egal ob man nur einen Pixel oder mehrere Hundert ausliest. Aber ich nehme an, dass das normal ist sobald man etwas von der Grafikkarte zurückfordert. |
Autor: | TAK2004 [ Fr Apr 13, 2012 22:51 ] |
Betreff des Beitrags: | Re: @Homunculus Engine |
Sleep, Join, viele IO Funktionen, CPUID und eingige andere Befehle sind Aussprungspunkte für den Prozess Scheduler. Bis er wieder zurück zum Prozess springt kann also einiges an Zeit vergehen(je weniger Kerne und langsamer, des so länger). Ein weiterer Grund ist der Memory Allocator, also der von C++ und der von dem GPU driver. Der greift ja auch mal, um sauber zu machen und das könnte es auch sein, das braucht sehr lange. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |