Ok, da muss ich noch etwas drehen. Ich weiß nicht wie oft ich schon diese Treppen dort hoch und runter gegangen, gesprintet, gesprungen oder geschlichen bin - ich bin nie stecken geblieben. Wenn du das Geländer meinst, weiß ich warum. Aber sonst *gruebel*. Kannst du mir sagen, wie viel FPS du beim Steckenbleiben hattest?
Nein ich hatte nicht die geländer gemeint, aber ich hab den fehler schon gefunden.
ich hatte nur 10 FPS und bin dann stecken geblieben. hab die grafig runtergedreht und nun mit 25 FPS bleib ich nicht mehr stecken.
also, der fehler tritt nur bei sehr wenigen FPS auf.
gruß Willi
_________________ Lehrer sind wie Fixer. Sie denken nur an ihren Stoff.
Wo hast du denn schon wieder den Model-Render-Code, das Model, die Skins und die Animationen her? Wenn ich alle Einstellungen runterschraube sieht es nicht deutlich schlechter aus, wird aber so flüssig, wie ich es gerne habe - auch mit Bots. Bin aber auch froh, dass ich eine 8600er drin habe. Damit dürfte ich technologisch schon recht nah an deiner Entwicklungshardware sein. Vollbild scheint unter Wine verbuggt zu sein. Es kommt eine Fehlermeldung. Aber per Hotkey schalte ich dann einfach das Fenster in den Vollbildmodus, also volle Größe ohne Rahmen. Ich finde es interessant, wie viele Delphi-Nutzer (Alternative zu MS VisualC++) nun auch Linux-User (Alternative zu MS Windows) geworden sind. Ein paar MacOSler scheint es auch zu geben. Wenn man bedenkt, dass es nie eine gute native Version von Delphi für diese Betriebssysteme gab eine beachtliche Menge, aber das ist ein anderes Thema. Ist in der aktuellen Techdemo nur ein Raum da? Ich dachte es gäbe da so ein Level mit Serverraum, Treppenhaus, etc...
P.S.: Was Vergleiche mit der Source-Engine angeht... ich würde eher sagen Doom3. Die Source-Engine ist sowas - da ziehe ich wirklich meinen Hut. Ich hab auch irgendwo noch den geleakten Source-Code *g*. Manche HL2-Level liefen sogar flüssig auf einer Savage-Karte (16MB/DirectX 6) meines alten IBM T23 von 2000.
Auch wenn es Offtopic ist: Viele User hier begangen mit Delphi unter Windows und kamen dann später zu FreePascal/Lazarus/C/C++/C#/Java/etc. unter Linux und MacOS. Trotzdem blieben sie in der Community wegen der Community und weil OpenGL sehr sprach- und plattformunspezifisch ist. Natürlich gibt es immer noch Leute, die mit Delphi und OpenGL unter Windows gute Spiele schreiben, wie z.B. SaschaWillems.
Weiterhin ist diese Community in den letzten Jahren von der Fixierung auf Delphi weggerückt und bietet Support für die meisten gängigen Sprachen - die Hauptsache ist, man erkennt den OpenGL-Teil, um den es hier ja geht.
LG Ziz
PS: Achja, coole Screenshots und Videos, aber Testen kann ich leider nicht, weil ich nirgends OpenGL 2.0 habe. ^^
_________________ Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut. Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’. Und du schaust mich an und fragst ob ich das kann. Und ich denk, ich werd' mich ändern irgendwann. _________________Farin Urlaub - Bewegungslos
Sieht mal wieder ziemlich gut aus die Demo. Allerdings solltest du den Beschleunigungs-Effekt beim Rennen direkt von der tatsächlichen Bewegungsgeschwindigkeit abhängig machen. Denn momentan kann man auch gegen eine Wand laufen und der Effekt erscheint. Es ist auch leider so, dass es viele Stellen im Level gibt, an denen man hängen bleibt. Sowas wäre im Spiel später sehr ärgerlich. Hier wird das Problem und eine mögliche Lösung (die sich zwar auf die Source Engine bezieht, aber das macht ja nichts) geschildert: http://wiki.blackmesasource.com/Dev_Blo ... it_good.22
Wenn du dich von Funken inspirieren lassen möchtest, schau dir GTA 4 an, das hat mitunter die besten Funken, die ich so in einem Game gesehen habe. Verwenden die Funken eigentlich deinen Deferred Renderer, bzw emittieren sie Licht? Dadurch müssten sie (bei ausreichendem Lichtradius) eigentlich auch auf weite Entfernung zu sehen sein.
Registriert: Mi Mär 09, 2005 15:54 Beiträge: 372 Wohnort: München
Programmiersprache: Delphi, C#, FPC
Die Funken sind nur einfache Billboard-Vierecke. Somit eigentlich nur Post-Scene-Geometry . Mit dem Deferred Renderer könnte man natürlich noch für jedes Viereck ein Licht emittieren lassen, aber ich weiß nicht, wie stark das die Performance beeinflussen würde - und ob es dadurch besser aussehen würde. Mit dem Trick des Vergrößerns kann man die Funken nun auch über weite Distanz gut sehen. Was vielleicht gehen würde, ist ein Licht für den Überblend-Effekt (der weiße Kreis) - das überleg ich mir mal - fordert jedoch ein paar Anpassungen.
Danke für den Tipp mit GTA4, muss ich mal wieder anwerfen. Dann schau ich mir das mal an. Hatte nur noch die wirklich schönen Explosionen im Kopf, jedoch nicht mehr die Funken. Bei denen habe ich mich übrigens eher an Max Payne orientiert.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Für Funken ist das Vergrößern meiner Meinung nach sogar halbwegs realistisch. Du musst ja irgendwie die beschränkte Auflösung des Rasteriziers ausgleichen. In der Realität sieht man Funken ja auch auf größere Distanz.
greetings
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Sa Aug 18, 2007 18:47 Beiträge: 694 Wohnort: Köln
Programmiersprache: Java
Die Funken haben ja sicher einen Emitter. Wie wärs denn wenn du nur eine Lichtquelle nimmst pro Emitter und diese etwas flackern/aufleuchten lässt...? Das sollte ja nicht so viel Performance fressen. Evtl kannst du ja für solche kurzweiligen Effekte einen nicht so exakten Shader nehmen. z.b. ohne Normalmapping oder nur diffuses Licht. Eben ohne viel SchnickSchnack. Sofern es noch akzeptable Ergebnisse liefert.
_________________ 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"
Registriert: Do Jun 28, 2007 17:58 Beiträge: 193
Programmiersprache: Pascal, C
Die Lightshafts sehen super aus, der Effekt ist Klasse.
Jedoch würde ich den Effekt nur sehr dezent einsetzen und die Lightshafts nur gaaanz dünn zeichnen - schließlich ist das einzige in einem geschlossenem Raum, dass der Art wie in den Bildern gezeigt wird licht reflektiert Rauch bzw. Nebel (was in einer Lagerhalle/Museum aber relativ unerfreulich sein sollte). Normalerweise sind es ja nur einzelne Staubflocken, die durch das Licht sichtbar werden.
Vielleicht lässt sich durch entsprechende Texturierung der Lightshafts mit weniger Rendervorgängen ein dezentes aber trotzdem realistisches Aussehen erreichen.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich denke diese Lighshafts sind ne super Sache vor Allem für Lagerräume die sehr staubig sein könnten. Der Vorschlag sie dezenter zu machen könnte gut werden, allerdings muss das ja auch alles mit der Lichtintensität zusammen passen.
Prinzipiell gefällt mir die Optik aber sehr.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Die Light Shafts kommen richtig genial rüber. Etwas dezenter könnten sie vielleicht sein. Wegen der Performance: könntest du nicht anstatt echten (und damit runden und damit wiederum recht komplexen) Volumen einfach mehrere zylindrische Billboards hintereinander rendern? Wenn ich mir das gerade richtig vorstelle, hast du dabei vorallem die Artefakte, die durch die begrenzte Geometrie entstehen, parallel zur Blickebene des Spielers. Damit sind die nur an Schnittkanten mit Objekten sichtbar, das würde m.E. weniger auffallen als es das im moment tut.
Um das ganze noch zu perfektionieren könntest du ein Partikelsystem erstellen, mit sehr vielen kleinen partikeln (so 1000 oder 2000), die sich immer in der Umgebung des Spielers aufhalten und zufällig durch den Raum driften. Damit der "immer in der Umgebung des Spielers" teil nicht aufällt, müsste man wohl die Partikel sterben lassen, wenn sie eine bestimmte Distanz zum spieler überschreiten und dann auf der anderen Seite des Spielers respawnen. Aber wenn du die dann genauso shadest wie die Light Shafts gibt das sehr coole Effekte. Alternativ oder zusätzlich zu dem immer dem Spieler folgenden Partikelsystem könnte man auch Emitter OnStep machen sozusagen, also immer, wenn ein Spieler auftritt. Nur in bestimmten Gebieten vielleicht. Eine Max Particles Beschränkung könnte hier einem Partikelspam wegen der langen Laufzeiten verhindern (wenn die Grenze erreicht wird die Partikel mit der geringsten restlebensdauer ausfaden und töten).
Damit kann man sicherlich sehr coole Staubeffekte erzeugen. Wichtig ist hier aber sanftes ein- und ausfaden, denke ich.
greetings
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
@Lord: Ich weiß jetzt nicht ob littleDave GUIMagier ist, aber das was du beschreibst wäre vermutlich der Performance Overkill... Außer er macht SingleFrame Rendering für ein Video.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
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.