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

Aktuelle Zeit: Di Mär 19, 2024 07:50

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 28 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: FireBlade Partikelengine
BeitragVerfasst: Mo Jan 24, 2005 19:54 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Eine kurze Beschreibung:

FireBlade ist ein flexibles und leistungsstarkes Partikelsystem auf OpenGL-Basis. Sie ist sehr effizient im Bezug auf Tiefensortierung, Speichermanagement, Ansprechbarkeit und Erweiterbarkeit, und lässt sich durch die Art und Weise, wie Effekte beschrieben werden, sehr gut vor allem in größere Projekte einbringen. Dabei eignet sie sich sowohl für 2D als auch für 3D-Anwendungen. Highlights sind zum Beispiel die integrierte, problemlos erweiterbare Kollisionsabfrage, ein breites, ebenfalls erweiterbares Emitter-Set und ein einfacher, aber sehr effizienter Manager, der die Performance gerade für viele Effekte enorm steigern kann. Alle Eigenschaften, selbst die Textur- und Raumkoordinaten der einzelnen Billboard-Vertices sind manipulierbar.

Eine grobe Featureübersicht:
Code:
  1.  
  2. Particle Appearance:
  3.  
  4.    ● Support for standard quads and Point Sprites
  5.    ● Billboards
  6.    ● Blending function is choosable
  7.    ● Color fading
  8.    ● Texture fading
  9.    ● Two modes for resizing during a particles life
  10.    ● Two modes for color, texture and size interpolation
  11.    ● Normals for a plastic appearance
  12.    ● Rotation
  13.    ● Smear effect with adaptive texture shifting
  14.    ● Fast concurrent depth sorting, which nearly always has bestcase conditions
  15.    ● Frustum culling
  16.  
  17. Particle Physics:
  18.        
  19.    ● Two physics models, simple and realistic
  20.    ● Movements calculated with Newtons laws
  21.    ● Correct air resistance calculation
  22.    ● Wind
  23.    ● Fast, extensible collision detection with sphere, cube, cone, face and heightmap primitives
  24.       built­in
  25.    ● The collision trees are generated separately and can be used for several contexts
  26.    ● Simple, overwritable collision friction model, featuring materials
  27.    ● Magnet points with 5 predefined modes, including a realistic mass gravitation model
  28.  
  29. Miscellaneous:
  30.  
  31.    ● Event­ driven effect creation possible, events for destroying, calculating, gravitating (magnet
  32.        points) and colliding a particle
  33.    ● Vertex storage choosable between Vertex Arrays, Vertex Buffer Objects or user defined
  34.       storage methods
  35.    ● Several parts of the calculation (physics, appearance, vertex calculation) can be disabled if
  36.       not necessary, to increase the performance
  37.    ● Each calculation can be modified or overwritten. full access up to the particles vertices. This
  38.        guarantees a maximum of flexibility
  39.    ● Preallocation of memory possible
  40.  
  41. Emitters:
  42.        
  43.    ● General emitter functionality
  44.        ○ Compatible with the effect manager
  45.        ○ Fill delay and emitter lifespan
  46.        ○ Automatic refill
  47.        ○ Level of Detail
  48.        ○ Not statically connected to one context, can be used to fill several contexts
  49.        ○ Two Velocity modes, point orientation and controllable randomized initial velocities
  50.        ○ Several renderpasses possible (with different blending functions)
  51.        
  52.    ● Sphere emitter
  53.        ○ Emits particles between an inner and outer radius
  54.        ○ Spawning region controllable
  55.        
  56.    ● Cube emitter
  57.        ○ Emits particles in a cube with variable width, height and depth
  58.        
  59.    ● Cone emitter
  60.        ○ Emits particles in or on a cone with variable base radius, top radius and height
  61.        ○ When spawning on a surface, base and/or top plane can be excluded from the spawn
  62.            region
  63.        ○ Presumption fix can be enabled for a homogenious spawning
  64.        
  65.    ● Face emitter
  66.        ○ Spawns particles on a surface described by triangles
  67.        ○ The triangles may be generated the same way as in OpenGL
  68.        ○ Transformation of the initial velocity by the triangles matrix can be enabled
  69.        
  70.    ● Font emitter
  71.        ○ Writes texts using particles
  72.        ○ The font itself is generated separately from a btimap (so called bitmap­fonts) and can be
  73.            used for several font emitters
  74.        ○ Mono­ and Polyspace choosable
  75.        ○ Character and Linegap variable
  76.  
  77. Effect Manager:      
  78.    ● comfortable handling of particle effects      
  79.    ● Global manipulation functions for registered effects
  80.    ● Frustum culling      
  81.    ● Depth sorting      
  82.    ● Efficient time delays adjustable for updating effects, which can enormously increase the
  83.       performance
  84.  


Beziehen kann man den Source-Code hier:

SorceForge Link:
https://sourceforge.net/projects/fireblade

Die am Thread angehängte Version ist die älteste.


Dateianhänge:
05_PixelEngine.rar [222.15 KiB]
1119-mal heruntergeladen

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Zuletzt geändert von Kyro am So Jan 18, 2009 17:46, insgesamt 5-mal geändert.
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 25, 2005 18:52 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
So hab jetz ne neue Demo für euch, die das folgende noch mitbringt:
- Wind
- Luftwiderstand (der "springbrunnen zeigt sich fast unbeeindruckt vom wind, das feuer am brennpunkt wird fast ausgeblasen ^^)
- radius des magnetpunktes
- Debugmodus (mit "d" ein/ausschalten)

source ist natürlich auch dabei, mit den folgenden änderungen:
- Wind, welcher durch die neu eingebaute funktion nachträglich mit keinem geschwindigkeitsverlust geändert werden kann
- Luftwiderstand + VelocityBugfix (gehört halt zsammen ^^)
- Verbesserung der Magnetpunkte
- Codeverbesserungen
- Debugmodus, indem die flugbahn sowie die schnelligkeit durch einen vektor dargestellt wird
- Die Typ- und prozedurnamen wuden nun zu Particle anstatt Pixel umgeändert (aus TPixelEffectContainer wird also z.B TParticleEffectContainer - wir wollen ja richtigkeit bewahren ^^)

wind steuert sich mit der maus (einfach über die form bewegen), debugmodus könnt ihr wie gesagt mit "d" ein bzw. ausschalten.

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Zuletzt geändert von Kyro am So Jan 18, 2009 17:47, insgesamt 10-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 29, 2005 00:31 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Neue Version (Link s.o.)

Änderungen:
- VBO für jeden Partikelcontainer - bei mir teilweise dadurch 100fps mehr :)
- AddParticle nimmt jetzt nur noch 5 Parameter (Position, Size, Color, Texture, LifeLength)
Für die anderen Werte gibt es jetzt folgende Prozeduren:
Code:
  1.  
  2.    procedure SetForce(Force: Vector3f; ID: Integer);
  3.    procedure SetVelocity(Velocity: Vector3f; ID: Integer);
  4.    procedure SetTorque(Torque: Single; ID: Integer);
  5.    procedure SetEnlargement(Enlargement: Vector3f; ID: Integer);
  6.    procedure SetInertia(Inertia: Vector3f; ID: Integer);
  7.    procedure SetMass(Mass: Single; ID: Integer);
  8.    

- Wie schon an der Prozedur zu erkennen ist, gibt es jetzt wieder Mass anstatt AirResistance
- Änderungen/Verbesserungen in der Physik
- Temporäre Abschaltung der Rotation (hat was mit dem VBO zu tun)
- mit der Prozedur SetDebugVectorLength(Multiplier: Single) kann man nun die Größe des Vektors im Debugmodus setzen.
Standart ist 20
- Billboards

Link ist wie gesagt der gleiche.

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Zuletzt geändert von Kyro am Sa Jan 29, 2005 11:29, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 29, 2005 09:52 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Transfervolumen überschritten!
Hab grad eben ne mail von meinem webhost bekommen - mein transfervolumen von 1.5gb ist überschritten O_o
ab 2 gb gibts sperre....
wenn der andrang an das teil so hoch bleibt hab ich im nächsten monat vielleicht ein problem...
würde mich freuen, wenn irgendjemand das ganze bei sich "aufnehmen" würde...

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 30, 2005 14:10 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Neue Version

Änderungen:
- ganz böser Fehler in der Physik behoben
- man kann jetzt wieder meherer texturen verwenden - die müssen allerdings alle in einem file sein (schaut euch einfach mal das texturfile an dann wisst ihr was ich meine ^^)
- fehler im debugmode behoben

An der Demo:
- der hässliche Springbrunnen wurde dur eine Kerze ersetzt
- Stresstest mit 20000 Partikeln (einschalten mit s)

Link wie immer

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 07, 2005 15:53 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Neue Version!

Änderungen
+Demo
- stresstest nur noch mit 10000 partikeln, dafür aber mit neu eingebundener kollisionsabfrage

+Engine
- kleine änderung in der physik (die geschwindigkeit wird nichtmehr ohne krafteinwirkung heruntergesetzt)
- kollisionsabfrage für heightmaps + materialeigenschaften

das wars soweit glaub ich

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mär 26, 2005 12:53 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Hab endlich mal wieder Zeit gefunden un es hat sich einiges getan. Zu viel um alles aufzulisten =)
Also mal grob:

- Verbesserung der Kollisionsabfrage
- Neue Demo
- Partikel Scripts
- 3 Tutorials und 1 Funktionsübersicht (auf englisch)
- viele neue Funktionen

Ein Rechtsklick bei der Demo öffnet ein Menü in dem man verschiedene Funktionen auswählen kann.
Gibt noch nen klitzekleinen Fehler im debug Modus, aber ich sehe die jetzige Version als Final an. Hab auch sonst
noch keine Bugs gefunden. Wer was findet: swagner@minima.de

Link wie immer im 2. Post

edit:
hab grad gesehn im 3. tutorial steht der befehl FadeIn(FOut, FIn: FBBooleanValue). muss natürlich Fading(FOut, FIn: FBBooleanValue) heißen! habs auch inzwischen nochmal berichtigt upgeloaded. Im overview stands auch falsch drin, sorry

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 09, 2005 16:59 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
nach langer zeit meld ich mich mal wieder zurück
bin aus zeitgründen leider nicht früher mit der neuen version fertig geworden.
es gibt große neuerungen:

- Partikel Schrift
- Property AirResistance, welches den geschwindigkeitsverlust der partikel bestimmt
- Neues Tutorial: Particle Fonts
- Script Syntax geändert. Das ganze ist jetzt ähnlich der Prozedurufrüfe bei Delphi
- Debugger für die Scripts hinzugefügt (ich weiß, dass der ein wenig unsauber geschrieben ist, aber bisher hab ich noch keine andere möglichkeit gefunden, um das in der form zu realisieren, sorry ich arbeite dran)
- Änderungen im Particle Script Tutorial


weil ich das bisher vergessen hatte, hier mal ein paar screenshots aus der Demo und das neue Logo:

Bild

http://www.minima.de/pic1.jpg
http://www.minima.de/pic2.jpg
http://www.minima.de/pic3.jpg
http://www.minima.de/pic4.jpg

(hab den rest als url gemacht, da die bilder insgesamt den post für meinen geschmack zu lang machen)

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 27, 2005 15:09 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Aufgrund von 2 Virenwarnungen (immer von Norton AntiVirus) sind die Links erstmal offline. Hab die Files zwar mit Trend Micro und Panda gescant, aber solange ich nicht 100% sicher bin, lasse ich die Files vorerst mal gelöscht.

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 16, 2005 17:15 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Die Files können jetzt wieder gedownloadet werden. Das Problem ist, das die Config.exe mit ExeStealth gepackt sind und ein paar Virenscanner (Norton Internet Security, ewido security suite und wenige andere) dessen Signatur als Bloodhound.Morphine erkennen. (genaueres hier)
Die Files wurden mit Trend Micro(TM) Internet Security v11 geprüft und als Virenfrei erkannt!

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 08, 2006 15:31 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Nach sehr langer Zeit jetzt wieder ein Update!
Ich lasse mal die Neuerungen für sich sprechen:

- Die altertümlichen Objekte sind jetzt Klassen
- 3 verschiedene Rendermodi (VBO, Quads, Point Sprites [bitte Einschränkungen im Overview beachten])
- Verbessertes VBO-handling
- Kleine physikalische Verbesserung bei der Velocity Berechnung
- Rotation reimplementiert
- Smear-Effekt
- 4 Events für eine unzählbare Anzahl von neuen Möglichkeiten
- Script-interpreter komplett "from scratch" aufgelegt und gänzlich von der Engine getrennt. FireBlade funktioniert auch ohne ihn.
- Scripte bieten mehr Möglichkeiten durch neue Funktionen, sowie Schleifen, If-Abfragen, Variablen etc. Allerdings sind alle Brackets verschwunden!
- Code Optimierungen
- Ein paar neue/geänderte Effekte in der Demo
- Tutorials wegen der Änderungen geändert :) (und sprachlich etwas verbessert)
- Zwei neue Tutorials über die Events und Partikelnormalen.
- Kein Flackern mehr!
- Die Arbeitsweise der Magnetpunktmodi passte nicht ganz auf den Namen, das wurde gefixed (die Modi, nicht die Namen)
- Ein neuer Magnetpunktmodus (Arbeitsweise ist die selbe wie vorher "inv_vector")
- Zuweisen von Normalen können eingeschaltet werden, mit Beleuchtung (am besten GLSL) wirken sie dann rund, und eine Rauchwolke wird plastisch (Screenshot)!
- Beim Löschen von Partikeln verändert sich jetzt die Renderreihenfolge nichtmehr, besonders wichtig für nicht-additives Blending!
- Die Partikelfonts sind jetzt etwas schöner und gleichmäßiger.


Bild


Ich habe das Projekt jetzt unter der GPL auf SourceForge angemeldet. Sobald es genehmigt ist, werde ich den Mirror oben ergänzen.

Ab jetzt werde ich erstmal das aktive Entwickeln an der Engine einstellen und an meinem Spiel arbeiten. Sollten mir dann noch Bugs auffallen, werden die natürlich gefixed. Sollten euch Bugs auffallen, meldet sie mir bitte :)

gruß

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 08, 2006 21:24 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Und gleich das nächste Update.

Einige Stellen, an denen eine Division durch 0 möglich ist, wurden gesichert.
Der ParticleFont Konstruktor wurde jetzt so geändert, das die Verwendung von "Graphics" hinfällig ist. Genaueres hierzu findet man im 4. Tutorial und im Overview.
Damit ist die Engine jetzt kompatibel zu FreePascal.

Außerdem wurden noch die ungenutzte StdCtrls aus dem Interface (stand noch wegen nem Test drin) sowie ungenutzte Variablen aus der Engine entfernt.

gruß

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 09, 2006 00:06 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Nochmal ein Update:

Die Scripts wurden etwas verändert (LoadTexture wurde zu UseTexture mit Integerwert), um unabhängig von Textures.pas zu werden. Genaueres hierzu in tut 3 oder im Overview.

Änderungen am Interpreter - dieser sollte jetzt auch mit FreePascal kompatibel sein. (Keine Änderung der Bedienung)

gruß

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 17, 2006 22:59 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Version 2006.08.17 - WICHTIG!

In dieser Version wurde ein schwerer Bug gefixed, der vielleicht auch für die Probleme auf nVidia-Karten verantwortlich war.
Es ist daher sehr wichtig, eine ggf vorhandene Version durch diese zu ersetzen!

2 neue Features gibt es aber auch noch:

- einen neuen Rendermodus (bei dem nur gerechnet wird - gerendert wird dann im CalculatedEvent vom User)
- die Möglichkeit, eigene Daten über einen Pointer an ein Partikel zu hängen (kennen ein Paar vielleicht von Newton)
- Performance Ups wenn ein Container keine Partikel enthält

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 09, 2007 17:42 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Nur zur Erinnerung, dass sie noch existiert und ich sie derzeit unter Linux weiterführe.
Ein neues Logo (wahrscheinlich basierend auf dem alten) wird derzeit entworfen :)

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 28 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

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.

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