Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Die Partikel sollen ja recht klein sein. Sollten also nicht allzu viel Shader/Füllrate ziehen. Aber ich will seine Meinung dazu hören
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: Mi Mär 09, 2005 15:54 Beiträge: 372 Wohnort: München
Programmiersprache: Delphi, C#, FPC
Hi
@igel457, @Flash Also bei den Screenshots habe ich mit der Density der Light-Shafts natürlich sehr übertrieben, da ich den Effekt an sich natürlich mal ausprobieren wollte. Wie gesagt habe ich nicht vor, bei jedem Licht einen Light-Shaft zu erstellen (obwohl eine im Nebel schwimmende Lagerhalle auch seinen Reiz hat, siehe folgende Screenshots )
Die Shafts können bereits texturiert werden. Bei den Screenshots habe ich zwar keine Textur genommen, aber im Video habe ich eine Noise-Textur auf die Shafts gelegt. Wenn man genau hinschaut, kann man sehen, dass die Shafts an manchen stellen stärker sind als an anderen stellen. Was noch das Problem ist, ist das ausrichten der Noise-Textur. Die ist Screen-Aligned und bewegt sich somit mit dem Betrachter mit. Dadurch entsteht ein wirklich komischer Effekt - da muss ich mal schauen, wie ich die Textur am besten Bewege.
@Lord: So komplex ist das Light-Volume auch wieder nicht - um genau zu sein: 6 Dreiecke (eine Pyramide mit quadratischer Grundfläche). Die Rundungen kommen komplett aus dem Shader. Der Rasterizer ist für solche keinen Sachen wirklich schnell genug. Das einzige Problem ist wirklich die Füllrate, was durch die Billboards auch nicht besser werden würde. Was die Qualität betrifft habe ich noch ein paar Probleme: durch die einzelnen Volume-Schritte entstehen harte Kanten, da ich mit Additiven Blending rendere (siehe erster Screenshot unten). Ich weiß noch nicht, wie ich das besser in den Griff bekomme.
Zu dem Partikel-Vorschlag: wenn ich es richtig verstanden habe, würdest du keine Shafts zeichnen, sondern "wirkliche" Partikel (also wie Glühwürmchen). An sich eine nette Idee, jedoch zweifel ich daran, dass die Qualität dadurch besser wird. Die Partikelanzahl von 2000 wird für einen guten Effekt wahrscheinlich nicht ausreichen. Natürlich würde man verschiedene Partikelgrößen brauchen, jedoch kann ich mir noch nicht vorstellen, dass dadurch die Qualität den Leistungsschwund gerechtfertigt. Was man vielleicht machen könnte: man könnte als zusätzlich zu den Shafts ein paar Partikel in der kompletten Karte verteilen, die sich dann einfach nur bewegen und nur die Aufgabe haben, angeleuchtet zu werden. Jedoch denke ich, dass sich da eine Noise-Textur auf den einzelnen Light-Shafts besser eignet.
Was bei den Partikel auch noch mit hinzu kommt: ich jeden Partikel mit jedem Licht beleuchten. Natürlich könnte ich schauen, ob ein Partikel von einem Licht aus sichtbar ist - aber bei 2000 Partikeln, naja . Bei der Methode "um den Spieler herum" wäre das natürlich nicht so das Problem - nur bei meiner Idee mit den globalen Partikeln.
An der Performance habe ich bereits etwas geschraubt und habe erste Erfolge zu feiern: durch ein bisher simples Level-of-Detail-Verfahren sinkt die FPS-Zahl bei vielen Shafts nicht mehr so sehr in die Knie. Wenn man sich innerhalb eines Lichtstrahles befindet, sinkt die FPS-Zahl natürlich immer noch extrem, da die Füllrate da wieder zuschlägt. Als Test habe ich ein einfaches 3-Stufen-Modell ausprobiert. In der niedrigsten Stufe werden nur noch ein drittel der nötigen Volumes gezeichnet, in der zweiten Stufe bereits die Hälfte. In der höchsten Stufe wird dann die volle Anzahl an Volumes gerendert. Man merkt den Unterschied wirklich fast nur, wenn man darauf achtet. Heute will noch noch ein prozedurales Level-of-Detail ausprobieren.
(und weils so schön ist, noch ein paar Screens (das erste ist leider nicht so gut geworden )
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ne, ich wollte die Partikel nicht als Ersatz zu den Lightshafts haben. Sondern so als zusätzliche Dekoration. Einige Staubkörner, die größer sind und die man erkennen kann. Deshalb auch "nur" 2000 (im gesamten Field of View). Und deshalb auch sehr klein. Die müssten auch keine Schatten werfen, da sie nur recht wenig sind.
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 Jun 28, 2007 17:58 Beiträge: 193
Programmiersprache: Pascal, C
littleDave hat geschrieben:
Was die Qualität betrifft habe ich noch ein paar Probleme: durch die einzelnen Volume-Schritte entstehen harte Kanten, da ich mit Additiven Blending rendere (siehe erster Screenshot unten). Ich weiß noch nicht, wie ich das besser in den Griff bekomme.
Könntest du nicht eine Textur so auf die Pyramide mappen, dass diese an den Kanten "ausgeblendet" wird? Also quasi einen Verlauf von Weiß opak nach Weiß transparent? Dann solltest du doch mit weniger Iterationen auskommen, oder gibt es mit dieser Methode ein Problem?
Registriert: Mi Mär 09, 2005 15:54 Beiträge: 372 Wohnort: München
Programmiersprache: Delphi, C#, FPC
Ok, die Partikel als Ergänzung zu nehmen finde ich nicht so schlecht. Ob ich es umsetze, weiß ich noch nicht. Aber die Idee finde an sich gut. Wenn ich mal wieder keine Motivation habe, die Script-Library weiter zu machen, kann ich ja mal schauen.
Das mit dem Gradient ist an sich eine gute Idee, jedoch ist das Ergebnis weniger zufrieden stellend. Die Kanten sind dadurch nur etwas weicher geworden - eigentlich fast das selbe Ergebnis wie vorher. Daher habe ich das wieder raus genommen. Die Texturierung an sich hat funktioniert, jedoch stimmte das Ergebnis leider nicht.
Weniger Iterationen sind jedoch auch problematisch, da es sich ja um ein simuliertes Volumen handelt - und je weniger "Ebenen" das Volumen hat, desto lückenhafter ist es .
find die Lightshafts super Die erinnern mich an alte SplinterCell-Zeiten... *seufz* Da hat jeder Ventilator extra langsam gedreht und war immer vor nem beleuchteten Fenster... und natürlich war's staubig in dem Raum. Rest kann man sich denken
_________________ "Für kein Tier wird so viel gearbeitet wie für die Katz'."
Registriert: Mi Mär 09, 2005 15:54 Beiträge: 372 Wohnort: München
Programmiersprache: Delphi, C#, FPC
So, ich habe noch mal am Rendering der Light-Shafts herum gespielt. Ich habe es mal mit Billboard-Quads probiert und ich musste leider feststellen: die Qualität dadurch ist noch schlechter geworden. Ich hätte viel mehr Quads rendern müssen, um die gleiche Qualität wie vorher zu erreichen.
Also habe ich noch etwas an meiner bisherigen Methode gefeilt und mal testweise ein prozedurales Level-of-Detail-System für die Light-Shafts einzubauen. Das ganze ist relativ einfach aufgebaut: die Anzahl der Pyramiden nimmt direkt proportional zur Entfernung ab. Sobald man z.B. 4 Meter vom Shaft entfernt ist, werden nur noch halb so viele, ab 8 Metern nur noch ein viertel so viele Pyramiden gerendert wie normal - usw. Über einen Parameter kann ich natürlich noch angeben, wie schnell die Qualität verringert wird.
Zudem habe ich mal einen kleinen Recorder eingebaut, mit dem ich meine Blickrichtung und Position speichern kann und später wieder ablaufen lassen kann (natürlich, wie könnte es anders sein, komplett in der Script-Engine ). Dadurch kann ich jetzt schon mal grob abschätzen, wie die Karte im Spiel wirkt und wie man Spieler erkennt, wo gute Verstecke sind, usw. Das ganze habe ich eben als Video verpackt.
Gruß Ich wollte jetzt keinen neuen Post im Projekt-Thread machen, da es sich hier nur um eine Ergänzung handelt.
Registriert: Di Okt 13, 2009 17:25 Beiträge: 365
Programmiersprache: C++
Wow, die Light-Shafts sind echt heftig. Erinnert mich voll an Splinter Cell. Gerade mit den ganzen Geländern usw., wo irgendwo ein Eindringling hängen und - ZACK! - den Typ mit der Taschenlampe in den Abgrund ziehen könnte. Obwohl eigentlich guckt man selber aus der Spion-Perspektive im Video.
Kann man eigentlich mit der Taschenlampe "zoomen", also zwischen hoher Reichweite und großem Winkel abwägen? Fänd' ich nämlich sehr nützlich. Dein Projekt macht echt 'ne tolle Entwicklung, weiter so!
Zuletzt geändert von mrtrain am Mi Aug 31, 2011 17:49, insgesamt 1-mal geändert.
Wenn ich das Video so sehe, überlege ich, ob die Ligthshafts nicht spieltechnisch von Nachteil sind. Sie sehen ja echt toll aus, aber so sieht man DIREKT den Ursprung der Taschenlampe, auch wenn die Person eigentlich im Schatten versteckt ist.
Pass beim Balancing später auf, dass es nicht auf einmal mehr Sinn macht ein wenig "blind" rum zulaufen, nur damit man nicht so leicht entdeckt wird.
_________________ 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
Registriert: Mi Mär 09, 2005 15:54 Beiträge: 372 Wohnort: München
Programmiersprache: Delphi, C#, FPC
mrtrain hat geschrieben:
Kann man eigentlich mit der Taschenlampe "zoomen", also zwischen hoher Reichweite und großem Winkel abwägen? Fänd' ich nämlich sehr nützlich. Dein Projekt macht echt 'ne tolle Entwicklung, weiter so!
Das ist eigentlich nicht geplant - mir ist ehrlich gesagt noch nicht mal diese Idee gekommen. Ich glaube, dass man mit einem Abstrahlwinkel zurecht kommen kann. Das einzige was ich mir vorstellen könnte, wäre am Anfang eine Auswahl zwischen zwei Taschenlampen wählen könnte - große Lichtreichweite oder größter Winkel. Aber das ist noch zu sehr Zukunftsmusik. Aber danke für das Lob freut mich.
Ziz hat geschrieben:
Wenn ich das Video so sehe, überlege ich, ob die Ligthshafts nicht spieltechnisch von Nachteil sind. Sie sehen ja echt toll aus, aber so sieht man DIREKT den Ursprung der Taschenlampe, auch wenn die Person eigentlich im Schatten versteckt ist.
Pass beim Balancing später auf, dass es nicht auf einmal mehr Sinn macht ein wenig "blind" rum zulaufen, nur damit man nicht so leicht entdeckt wird.
Ich finde, dass sich das eher positiv aufs Balancing auswirkt. Denn der Dieb hat ja ein Nachtsicht-Gerät - welches natürlich keine Light Shafts abstrahlt. Somit kann der sich ruhig weiter in der dunklen Ecke verstecken. Für den ist es ja von Vorteil zu wissen, wo sich die anderen befinden.
Ah, ok und der Dieb hat ja keine Waffe, wenn ich das richtig in Errinnerung habe. Bleibt die Sache, dass die Taschenlampe sehr notwendig sein sollte. Wenn der Nachtwächter ohne ansatzweise genug sieht (z.B. mit Gamma hochdrehen), kann er sonst den Vorteil des Diebes nutzen.
_________________ 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
Ach diese ewigen Gammahochdreher ... Die haben doch schon in Counter-Strike fast so genervt wie die Wall-Hacker. Beim Ansehen des Videos habe ich mir auch gedacht "Wow, sieht das gut aus wenn der Lichtkegel von einem Balken blockiert wird." Ich denke wenn man schon viel im 3D-Bereich gemacht hat und eine Skript-Sprache entwickelt hat, so wie du, dann macht man kaum noch Designfehler beim nächsten Projekt die einen dazu bringen noch mal von vorne anzufangen.
Registriert: Mi Mär 09, 2005 15:54 Beiträge: 372 Wohnort: München
Programmiersprache: Delphi, C#, FPC
Ziz hat geschrieben:
Ah, ok und der Dieb hat ja keine Waffe, wenn ich das richtig in Errinnerung habe. Bleibt die Sache, dass die Taschenlampe sehr notwendig sein sollte. Wenn der Nachtwächter ohne ansatzweise genug sieht (z.B. mit Gamma hochdrehen), kann er sonst den Vorteil des Diebes nutzen.
NerdIII hat geschrieben:
Ach diese ewigen Gammahochdreher ... Die haben doch schon in Counter-Strike fast so genervt wie die Wall-Hacker.
Das Gamma-Hochdrehen wird nicht viel bringen, da die dunklen Ecken einen Farbwert von RGB(0, 0, 0) haben .
NerdIII hat geschrieben:
Beim Ansehen des Videos habe ich mir auch gedacht "Wow, sieht das gut aus wenn der Lichtkegel von einem Balken blockiert wird." Ich denke wenn man schon viel im 3D-Bereich gemacht hat und eine Skript-Sprache entwickelt hat, so wie du, dann macht man kaum noch Designfehler beim nächsten Projekt die einen dazu bringen noch mal von vorne anzufangen.
Einen Design-Fehler kann man immer drinnen haben - mache findet man ja erst, wenn man eine Karte erst ein paar Stunden gegen wirkliche Gegner gespielt hat. Dann ist es meistens zu spät . Btw: danke für das Lob
Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Ist einfach geil gemacht, nicht nur grafisch. Und wenn man mal so liest, was da alles schon hintersteckt.. Scriptengine und sowas.. dann sag ich einfach nur: Hut ab und weiter so.
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey Leute,
ich hab seit paar Tagen meinen neuen PC, mit ner ATI HD5970 und Win7. Seit dem hab ich Probleme beim Linken von Shadern. Hab dazu auch n extra Topic, wo die ganzen Infos drin stehen. Und da Gael ja relativ viel mit Shadern arbeitet, und auch viele Leser hat woll ich ma fragen ob evtl jmd gibt, der auch solche Probleme mit den neuen ATI Karten hat. Die Shader bei Gael gehen auch nicht. Ich hab ma das Logfile mit angehängt, vlt stehen da ja noch irgendwelche Infos drin, die das Problem beheben könnten.
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.