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

Aktuelle Zeit: Sa Apr 20, 2024 16:55

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



Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 14, 2009 21:01 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
WhiteHunter hat geschrieben:
Lord Horazont hat geschrieben:
FMOD... Bass... Was gabs da noch?
Mit FMOD würde ich mir die Daten mit getWavedata holen (gibt dir die Informationen der letzten Sekunde afaik) und den Sound notfalls per DSP von Anfang an verzögern, wenn du dein Feuerwerk genauer abstimmen willst. Und wenn du nach Frequenzen arbeiten willst, wird dir getSpectrum sicherlich behilflich sein ;).

Zwar brauch ich nicht das, was Du beschreibst, aber es könnte vielleicht wirklich damit funktionieren. Ein Haken, um den Gedanken von unten aufzugreifen: FMOD kostet Geld für Nicht-Freeware. Viel Geld. ;)

Planst du, das ding zu verkaufen?

Zitat:
Zitat:
Aber ich habe mir gerade mal die Mühe gemacht, Nightwishs The Poet and The Pendulum (Instrumental) in eine ~150MB (knapp 15 Minuten) große Wave zu konvertieren und zu laden.... Hat zwar ne kleine Ewigkeit gedauert, bis Fireworks das im speicher hatte, aber.... es lohnt sich. Leider hat er an den etwas ruhigeren Stellen dann ein bisschen überreagiert, aber ansonsten ist es ne geniale Simulation. Leider laggte es zwischen drinn immer ein wenig... Aber das liegt dann wohl an meine Hardware... Oder an deinen Threads... Wer weiss... Threads können sich ja manchmal richtig schön verzahnen, wenn ne menge los ist (deshalb berechne ich meine Partikel nicht in Threads, das ist zu viel). Den Schluss (letzte Minute) hat dein Feuerwerk bei The Poet and The Pendulum aber richtig genial hinbekommen. Das passte 1a. Wow :)

Den gleichen Song, nur nicht Instrumental hatte ich auch als einer der allerersten ausprobiert. Wie gesagt, wenn du MADPlay ins gleiche Verzeichnis schiebst, werden MP3s auch automatisch unterstützt. Ich würde hier ja auch ne exe verlinken, aber ich will hier auch keinen Ärger provozieren. :roll: Was mich wundert, dass es so langsam war. Sahen die FPS einigermaßen akzeptabel aus? Welche HW-Konfiguration hatte der Rechner?

@HW:
AMD Athlon64 X2 6000+
GeForce 7600
4GiB RAM (wenn windows soweit käme)

Es lief ja meistens auch flüssig, es gab aber manchmal Lags zwischen 0.25 und 1 sekunde (geschätzt, natürlich). Kann sein, dass die mit hohem Partikelaufkommen zusammentreffen. Sicher bin ich da aber nicht, es kann auch sein, dass die nur dann auffallen.

@Song: Welchen auch sonst, wenn du Dynamikumfang empfiehlst? ;)

Zitat:
Apropos, da sollte wohl am besten auch eine Art FPS-Graph rein...

Aber bitte ausschaltbar.

White Hunter hat geschrieben:
Zitat:
//Edit: Oh. Nach dem abspielen des Liedes verreckt er hier gerade an anscheinend endlosen AVs...

Das ist schlecht, denn das ist mir auch noch nie passiert. Hab mal eben versucht, 150 MB / 30min reinzuladen und es ging sekundenschnell und macht keinerlei FPS-Probleme bei mir. Wohlmöglich hast Du wieder irgendwie Daten im WAVE-Header, die FW nicht richtig analysiert?

Ist mit Audacity erzeugt... Weiss nicht, was das da rein schreibt. Ich war froh, dass ich das noch hatte, WaveLab wollte die Datei unbedingt komprimieren (was der grund sein dürfte, weshalb meine anderen Waves nicht funzen)

//Edit: Wegen der Performance: Ich habe gerade mal geschaut. Beschränke ich das auf eine CPU, verreckt er beim Musik abspielen gnadenlos, was die leistung betrifft. Gefühlte FPS zwischen 5 und 30, meistens bei 15-20. Gebe ich beide CPUs frei, benutzt er ca 60% der Gesamtleistung, also nicht viel mehr. Das verwundert mich etwas... Naja. Wenns technisch möglich ist, solltest du deine Partikel in n Threads aufteilen, wobei n die Anzahl der CPUs aufm System ist (frag mich aber bitte nicht, wie du das rausbekommst ;) ). Der Hauptthread sollte sich ja nur mitm zeichnen befassen.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 14, 2009 21:54 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Wenn viele auf einmal erscheinen lagt das?
Klingt, als ob da die Partikel wirklich neu erzeugt werden, also über den Konstruktor. A la particle = TParticle.create();.
Bedenke: Speicher reservieren kostet recht viel. Packe lieber tote Partikel in eine Datenstruktur und reanimier die dann wieder, indem du sie neu verwendest, statt einen neuen zu erzeugen. Das bringt ne Menge. :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 14, 2009 23:07 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Lord Horazont hat geschrieben:
Planst du, das ding zu verkaufen?

In letzter Zeit will ich mir bei guten Einfällen diese Möglichkeit nicht zustellen. ;)

Zitat:
@Song: Welchen auch sonst, wenn du Dynamikumfang empfiehlst? ;)

Hehe, gleicher Gedanke ;)

Zitat:
Zitat:
Apropos, da sollte wohl am besten auch eine Art FPS-Graph rein...

Aber bitte ausschaltbar.

Ich dachte auch weniger als Anzeige sondern mehr als Logfile.

Zitat:
Ist mit Audacity erzeugt... Weiss nicht, was das da rein schreibt. Ich war froh, dass ich das noch hatte, WaveLab wollte die Datei unbedingt komprimieren (was der grund sein dürfte, weshalb meine anderen Waves nicht funzen)

Ich kann mich nur wiederholen, probier mal MADPlay zu laden und ins FW-Verzeichnis zu schieben. FireWorks ist dann automatisch in der Lage auch mp3s ganz von alleine direkt zu öffnen. ;)

Zitat:
//Edit: Wegen der Performance: Ich habe gerade mal geschaut. Beschränke ich das auf eine CPU, verreckt er beim Musik abspielen gnadenlos, was die leistung betrifft. Gefühlte FPS zwischen 5 und 30, meistens bei 15-20. Gebe ich beide CPUs frei, benutzt er ca 60% der Gesamtleistung, also nicht viel mehr. Das verwundert mich etwas... Naja. Wenns technisch möglich ist, solltest du deine Partikel in n Threads aufteilen, wobei n die Anzahl der CPUs aufm System ist (frag mich aber bitte nicht, wie du das rausbekommst ;) ). Der Hauptthread sollte sich ja nur mitm zeichnen befassen.

Ich kenne den Spaß mit den Threads. ProcessorCount gibts in TSystemInfo via GetSystemInfo(). Deine HW klingt auch passabel.
Auf mehrere Partikel-Threads will ich derzeit nicht aufteilen, weil ich sonst auch noch Load Balancing implementieren müsste, wo sowieso immer noch seltsame Bugs drin sind.
Nach einem Testrundgang muss ich sagen; tatsächlich, wenn ichs bei mir auf 1 Kern beschränke fängt es auch an, übelst zu ruckeln. Seltsam sind diese Phasen wo es kurz mal läuft... vielleicht ein Synchro-Problem. Btw: Mit 2+ Kernen krieg ich 40-50% Auslastung vom 4-Kerner.

Philip hat geschrieben:
Wenn viele auf einmal erscheinen lagt das?
Klingt, als ob da die Partikel wirklich neu erzeugt werden, also über den Konstruktor. A la particle = TParticle.create();.
Bedenke: Speicher reservieren kostet recht viel. Packe lieber tote Partikel in eine Datenstruktur und reanimier die dann wieder, indem du sie neu verwendest, statt einen neuen zu erzeugen. Das bringt ne Menge.

Danke für den Tipp, aber das gibt es gottseidank schon längst. Jedes Partikel trägt einen Use-Flag, mit dem man es an und ausschalten kann, und die Gesamtanzahl der Partikel wird bei Bedarf in großen Schritten vergrößert (und derzeit auch nicht wieder verkleinert ;)). Du willst nicht wissen, wie es aussah, als die noch einzeln erzeugt wurden... x)

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 14, 2009 23:45 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Du hältst tote und lebendige Partikel in einer gemeinsamen Datenstruktur?
Folgendes bringt auch einiges, da es den Suchvorgang in dieser einzelnen Datenstruktur nach einem toten zum Wiederbeleben unnötig macht:
Stirbt ein Partikel, entfern ihn aus der Datenstruktur und tu ihn in eine andere. Willst du ihn wiederbeleben, nimmst du einfach aus dieser Friedhofsdatenstruktur den erstbesten.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 15, 2009 13:43 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Sozusagen zwei listen - denke ich ist wirklich eine gute lösung. Damit fährst du schneller, weil du nicht durch die normale Liste nach Use=False durchsuchen musst. Am besten wäre da wohl eine Verkettete Liste, weil du da den Vorteil vom schnellen Verschieben/Entfernen/Anhängen hast (kann man übrigens auch mit OOP wunderbar machen)

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite Vorherige  1, 2
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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.100s | 17 Queries | GZIP : On ]