Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Mai 15, 2024 02:49

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: @Homunculus Engine
BeitragVerfasst: Sa Apr 07, 2012 19:32 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Bitte lasst tüchtig vom Leder...

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: Sa Apr 07, 2012 20:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 13, 2011 22:05
Beiträge: 218
Programmiersprache: Lazarus/FPC
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 :cry:

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 :evil: )

lg Ida

_________________
Ich teile manchmal heimlich durch Null. - Alber Einstein


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: So Apr 08, 2012 10:13 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
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.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: So Apr 08, 2012 23:20 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
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. :twisted:

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: Mo Apr 09, 2012 19:18 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
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.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: Mo Apr 09, 2012 21:30 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Den Shader aus dem SDK hab ich jetzt eingebaut. Allerdings interessiert den die Normalmap kein bisschen.

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: Di Apr 10, 2012 13:28 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
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.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: Do Apr 12, 2012 13:21 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Schaut super aus. Vor allem das es mit LWJGL realisiert ist :)

Nutzt du SLICK für die GUI oder wo findet es Verwendung?

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: Do Apr 12, 2012 13:41 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
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.

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: Do Apr 12, 2012 15:04 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
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 :)

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: Do Apr 12, 2012 18:01 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
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.

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: Fr Apr 13, 2012 17:53 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Ich habe ein Problem. Ich habe nun einen Profiler eingebaut. Der läuft auch ganz gut so und liefert gute Ergebnisse.
Aber unter gewissen Umständen (GPU-Last) verschieben sich die Zeiten drastisch.
Die Anzeige ist auf 60 FPS gesynct.

1. Leerlauf. Sämtliche Zeiten werden dem Sync-Profil zugeschrieben.
Bild

2. Postprocess-Shader aktiviert. Bloom Effekt aktiviert. Sämtliche Zeiten werden nun dem Exposure-Profil zugeschrieben.
Bild

3. Postprocess-Shader aktiviert. Antialiasing . Sämtliche Zeiten werden dem camLookThroughNorm-Profil zugeschrieben
Bild

In Exposure wird mittels glGetPixels genau 1 Pixel ausgelesen.

In camLookThroughNorm werden nur mittels gluPerspective und gluLookAt Matrizen für den Himmel gesetzt und mittels glGetFloat ausgelesen. Wenn ich das Zeichnen des Himmels überspringe, wandern die Profiling-Zeiten zu camLookThrough, welches die Matrizen für die restliche Szene setzt.

Ich verstehe es einfach nicht wieso ein völlig anderer Ort dann die Zeit verbraucht.

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Homunculus Engine
BeitragVerfasst: Fr Apr 13, 2012 22:51 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
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.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.027s | 17 Queries | GZIP : On ]