Partikeldesigner für Draw3D V.3.3

Übersicht Sonstiges Projekte

Neue Antwort erstellen

hectic

Sieger des IS Talentwettbewerb 2006

Betreff: Partikeldesigner für Draw3D V.3.3

BeitragDi, Nov 25, 2008 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
So, die letzten Tage habe ich wieder etwas mit programmieren verbracht. Nun möchte ich noch ein nicht ganz fertiges Projekt - ein Partikeleditor - vorstellen, wobei mir vor allem Eure Meinung dazu wichtig ist. Wichtig ist für mich ob dieser den Ansprüchen genügt, oder ich noch ein paar Dinge übersehen habe die von Bedeutung sind. Der Partikeldesigner wird aufgrund einiger bestimmten Funktionen nicht der schnellste sein, dafür wird man aber mit weniger Partikeln mehr Effekte darstellen können, was die Performence dann wieder steigern sollte.

Der Partikeleditor (XED) soll später in die neue Draw3D V.3.3 mit rein genommen werden, wie auch andere Editoren für Physix (CED) und einem Landschaftseditor für Physix oder rein Draw3D (VED).

XED - Seht ihr ja selbst. Es fehlt noch eine Speicherroutine und ggf. Eure Vorschläge.
CED - Ist irgendwie fertig, aber komplett nicht zu gebrauchen, da zu kompliziert mit zu hantieren.
VED - Ist fertig, wird aber noch etwas überarbeitet.

- - -

Und so sieht er aus der Partikel-Designer:

user posted image

Download

- - -

Weitere Beschreibungen zum Editor:

Code: [AUSKLAPPEN]
Gitterfeldauswahl-Schaltflächen (Oben/Links) die jeweils Rot, Grün, Blau, Alpha und Size angeben. Wählt man einer dieser Schaltflächen, erscheint im Gitterfeld da drunter der jeweilige Verlauf den man dann manipulieren kann.

Das Gitterfeld selbst besteht aus 32 Zeitfeldern die jeweils in 256 Stärkestufen geregelt werden können. So kann man zum Beispiel ein Partikel zuerst groß und weiß leuchtend ausblassen und verkleinern lassen um ihn anschließend wieder in Grautönen vergrößern lassen, bis es am Ende wieder schwarz ausblendet. Also Stichflammen und andere Sonderheiten sind kein Problem.

Die Startklammer gibt an, in welchen Zeitbereich ein Partikel zufällig starten soll. So kann man bestimmen, ob ein Emitter unruhig oder eher stabil wirken soll.

- - -

Schaltflächen-Bereich

Count / FPS calculating
Hat noch keine Auswirkung, soll aber die Programmvorgabe werden, damit man die Partikelanimation an sein Programm anpassen kann.

Count / Maximal living time
Gibt die maximale Lebensdauer eines Partikels in FPS an. Die Lebensdauer kann mit der größe der Startklammer per Zufall verkürzt werden.

Count / Minimal create particles
Gibt die pro Frame minimal zu erstellende Partikel an.

Count / Adding chaos particles
Gibt die pro Frame zufällig zu erstellende Partikel an.

Speed / Speed relation
Das Verhältnis zwischen gleichmässiger zu zufälliger Partikelgeschwindigkeit. 100:0 bedeutet, dass alle Partikel die gleiche maximale Ausgangsgeschwindigkeit haben. 0:100 bedeutet, dass alle Partikel zufällig zwischen einem Speed von 0 und maximale Geschwindigkeit haben. Die Geschwindigkeit wird später vom Programm aus vorgegeben. Damit man ein besseren Eindruck zum Partikelverhalten bekommt, kann man die Vorgabegeschwindigkeit der Partikel im Kreis rechts vorgeben. Dazu aber später.

Speed / X-Acceleration / Y-Acceleration
Gibt die Beschleunigung der Partikel an. In den meisten Fällen wird aber X-Acceleration nicht benötigt. Mit Y-Acceleration kann man dafür eine Gravitation angeben. Positive Werte beschleunigen nach oben, was zum Beispiel für Rauch gut zu gebrauchen ist. Negative Werte beschleunigen nach unten, was zum Beispiel für Festkörper gut zu gebrauchen ist.

Speed / Air resistance
Gibt einen einfachen Luftwiederstand an. 0 = kein Luftwiederstand. 250 = extrem übertriebener Luftwiederstand.

Angle / Angle spread
Der Wertebereich liegt zwischen 0 und 180 und gibt an, wie breit die Winkelspreizung (+/-)° des Partikelausstoßes sein soll. 180 bedeutet dann eben, dass ein voller Kreisausstoß gesendet wird.

Angle / Draw-Mode
Der Wertebereich liegt zwischen 0 und 3.
0 = Strech line / Der Partikel wird in seiner Flugrichtung in Abhängigkeit seiner Geschwindigkeit gestreckt.
1 = Rolling line / Der Partikel wird in seiner Flugrichtung in Abhängigkeit seiner Geschwindigkeit ausgerollt.
2 = Vector line / Der Partikel wird in seiner Flugrichtung ausgerichtet.
3 = (Standard) / Der Partikel hat seine eigene Rotationsposition und Rotationsgeschwindigkeit.

Angle / Calculating turn speed
Nur im ''Draw-Mode = 3'' und ''Angle spread > 0'' verfügbar. Dieser Wert gibt an, welche Drehrichtung ein Partikel haben soll. So bedeuten positive Werte, dass sich die Partikel positiv zur ''Angle spread'' drehen. Das ist zm Beispiel für Triebwerkausstöße gut zu gebrauchen, da sich die Partikel im Zentrum einer Flamme schneller bewegen. Dieses wird dann eben optisch so nachempfunden. Negative Werte drehen die Partikel dann eben negativ zum ''Angle spread'' was zum Beispiel für Kometen etc. ganz gut zu gebrauchen ist, da dort die Partikel relativ zum Emitter im Zentrum einer Flamme sich eher mit dem Emitter bewegen als die, die Außen vor liegen. Dieses wird dann optisch dann so nachempfunden.

Angle / Chaos turn speed
Gibt die zufällige Drehrichtung der Partikel an. Ist zum Beispiel bei Explosionen ganz gut, wo ''Angle spread'' auf 180° gestellt ist.

- - -

Schaltfläche [Spray] lässt den Emitter ständig laufen. Werden aber mathematisch mehr als 4096 mögliche Partikel auf einmal berechnet, dann wird automatisch auf Impulse gesetzt. Mathematische Gesamtpartikel werden in der ''Particles count'' -Anzeige nach dem ''/'' angegeben und berechnen sich aus ''MaximalLivingTime*(MinimalCreateParticles+AddingChaosParticles)''.

Schaltfläche [Impulse] gibt ein einzigen Partikelausstoß aus. Das ist zum Beispiel für Explosionen zu benutzen.

- - -

Kreisschaltfläche gibt die Vorgaben an, die später aus dem Programm kommen. Also Winkel und Stärke des Partikelausstoßes. Der einfachheithalber enspricht die Maximallänge dieser Linie einen Wert von 20 an maximaler Partikelgeschwindigkeit.

- - -

Nebenbei noch:

Nahezu alle Schaltflächen unterstützen auch eine Skundärauswahl mit der rechten Maustaste. Im Gitterfeld ist es dann eine Komplettbegradigung. Im Schaltflächen-Bereich ist es dann eine MouseDown-Abfrage um nicht 200mal klicken zu müßen.

Im Bildschirmbereich oben/rechts kann man die Hintergrundfarbe bestimmen um auch dunkle Partikel besser bearbeiten zu können.

Die beiden Partikelschaltflächen neben der Kreisschaltfläche geben die vorgegebene Partikelgröße an. Vorgegeben ist ein Partikel mit 32x32 und ein mit 64x64er Größe. Andere Größen ergeben meiner Meinung nach keinen Sinn ohne unnötiger weise das System abzubremsen.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Xeres

Moderator

BeitragDi, Nov 25, 2008 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein sehr interessantes Tool. Vor allem die Farbverläufe finde ich genial.
Ich verwende für Partikel meist noch leicht unterschiedliche Bilder, also einen zufälligen Pool um keinen zu einheitlichen Rauch zu haben.
Kann man verschiedene Partikel noch miteinander kombinieren? Z.B. Partikel A fliegt eine Kurve und erzeugt einen Partikel B als Schweif.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Nov 25, 2008 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, stimmt, da die Draw3D schon Frames unterstüzt, ist es kein weiteres Problem diese auch zufällig zu generieren. Wird also gemacht.

- - -

Zum zweiten Vorschlag wird es so sein, dass im Code selbst bestimmt werden soll, wie neue Partikel generiert werden können. Meine Überlegungen sind wie folgt:

Jedes Design eines Partikels hat ein Handle. Also die Sachen die man mit dem Editor gespeichert und später im Code lädt bekommt ein Handle. Jeder Partikel der erzeugt wurde hat zwei Parameter. Der eine gibt an, welches Handle pro Frame ausgeführt wird und ein weiterer Parameter gibt an, welches Partikelhandle ausgeführt werden soll, wenn der aktuelle Partikel stirbt.

Somit ließen sich auch Effekte wie bei Wunderkerzen erzeugen. Oder Kugeln die erst am Ende noch einmal explodieren etc...

Das sähe dann in etwa so aus:

Code: [AUSKLAPPEN]
Local Kugel=LoadParticle("bullet.xed")
Local Funke=LoadParticle("spark.xed")
local Knall=LoadParticle("explosion.xed")

...

CreateParticle(Kugel,Winkel,Power,Funke,Knall)


Kugel fliegt seine Animation und erzeugt pro Frame jeweils eine Minianimation eines anderen Partikels, nämlich Funke. Am Ende wenn Kugel stirbt, wird noch einmal eine Explosion Knall angesetzt.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

FWeinb

ehemals "ich"

BeitragDi, Nov 25, 2008 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr cool das alles.
Ich bin gespannt was später draus wird, sieht schonmal sehr gut aus.

mfg

ich
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

StarGazer

BeitragMi, Nov 26, 2008 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Cooles Teil
Vor allem das mit dem Farbwerten Und Scale Einstellungen finde ich, ist eine geniale Lösung.
Bei Impulse würde ich noch machen, daß es alle 2 Sekunden sich selbst auslöst.

Der_Schläfer

BeitragMi, Nov 26, 2008 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn partikel "on death" ne andere partikel-emission auslösen könnten wäre das vielleicht auch noch sinnvoll... ansonsten ne schöne sache, danke Wink bekomm direkt lust mal n 2d-spiel zu machen...

tft

BeitragDo, Nov 27, 2008 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ..

freue mich schon darauf. Siet coole aus.

Gruss TFT
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Nov 27, 2008 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
StarGazer, ok, alle 2 Sekunden automatisch ein neuen Impuls senden wird gemacht.

Der_Schläfer, beim Partikeltot wird ein Handle im Code angegeben werden können. Im Editor hatte ich es vorerst nicht vorgesehen. Denn dazu benötigt es eine dynamische Oberfläche, auf die ich im Moment nicht so viel Lust habe, diese zu programmieren. Für mich stehen noch erst die anderen beiden Editoren auf der Liste. Vor allem beim Physix-Editor fällt mir nichts gutes ein, wie man diesen übersichtlich erstellen könnte. Bisher funktioniert er, aber mit der Übersicht zur Nachbearbeitung happert es noch gewaltig.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

DeVIL

BeitragDo, Jan 29, 2009 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verstehe aber irgendwie nicht was das bringt
wie kann man diese Partikel denn dann in sein Spiel "Importieren"?
Oder ist das nur noch nicht fertig?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Jan 29, 2009 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, es wird einfach über ein Handle geladen. Das sähe dann in etwa so aus Rauch = LoadXED("raucheffekt.xed") zum laden, und zum animieren dann das Handle Rauch einsetzen. Das ist allerdings noch nicht fertig und wird mit der Draw3D V.3.3 mit raus gegeben. Ich arbeite gerade noch an CED, welches bereits jetzt schon besser funktioniert als ich es mir hätte gedacht, doch sind auch noch ein paar Probleme mit CED auf mich zugekommen, die das fertigstellen noch hinauszögern.

XED = Partikeleffekte (~80%)
CED = Physikkonstruktionen (~30%)
VED = 3D-Landschaften (~90%)
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

ToeB

BeitragFr, Jan 30, 2009 14:42
Antworten mit Zitat
Benutzer-Profile anzeigen
sowas habe ich schon geschafft (in 3D). Ist ganz einfach, du musst nur frabveränderungen, geschwindigkeit,alphawerte etc. abspeichern, dann halt laden und dann wie im editor anzeigen / erstellen.

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

BladeRunner

Moderator

BeitragFr, Jan 30, 2009 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir sicher Toeb, dass hectic dass auch so wusste Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Plasma

Betreff: ja

BeitragFr, Jan 30, 2009 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
geil !

Ich freue mich das es weitergeht , zumal d3d mir gut gefällt und ich am überlegen bin einige "olle" projekte nochmal aufleben zu lassen .

DeVIL

BeitragSa, Jan 31, 2009 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde man sollte noch verschiedene Partikel "Formen" auswählen können und sowas wie Animationen machen können so dass das dann iwie farbe wechselt oder größer wird oder so Wink

mfg DeVIL

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Jan 31, 2009 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Oben links wo auch die [R]/[G]/[B] -Buttons sind, befindet sich noch ein grauer für Alpha und ein [S] für Size. Mit diesem kann man die größe eines Partikels in dessen Laufbahn einstellen. Farbwechsel, Alpha und Größe werden also über das Gitterfeld eingestellt und funktionieren im selben Prinzip.

Animationen können dann noch durch die zähligen anderen Buttons eingestellt werden. Das alles ist bereits in dieser Demo vorhanden.

Verschiedene Partikelbilder werden dann vom Programmaufruf beeinflusst. Man lädt also nur die Partikeleigenschaften, die Partikelform (Bild) muß man dann im Programm selbst zuweisen.

PseudoCode: [AUSKLAPPEN]
XED = LoadXED("Test.xed")
IMG = LoadImage3D("Image.png")

While Not KeyHit(1)
   
   If MouseDown(1) Then NewXED(XED,IMG, MouseX3D,MouseY3D, XSpeed,YSpeed)
   
Wend


Das sollte für jeden einfach und schnell zu managen sein.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

tedy

BeitragSa, Jan 31, 2009 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Wär aber schöner auch im editor das bild einstellen zu können Very Happy
So könnte man dierekt sehen wie es aussieht
01010100 01100101 01000100 01111001 00100000 00111010 01000100

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group