<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
		<title>BlitzBasic Portal Worklogs - Particle Labs</title>
		<link>https://www.blitzforum.de/worklogs/195/</link>
		<description>Worklog von PSY</description>
		<language>de</language>
		<managingEditor>mail@blitzforum.de</managingEditor>
		<webMaster>mail@blitzforum.de</webMaster>
		<pubDate>Sat, 15 Aug 2009 17:02:05 +0200</pubDate>
		<lastBuildDate>Sat, 15 Aug 2009 17:02:05 +0200</lastBuildDate>

		<item>
			<title>It's done...</title>
			<link>https://www.blitzforum.de/worklogs/195/#1678</link>
			<guid>https://www.blitzforum.de/worklogs/195/#1678</guid>
			<author>PSY</author>
			<description>Hiho,&lt;br /&gt;&lt;br /&gt;nach monatelanger Pause (oder auch Faulheit) hab ich mich die Tage wieder mal ans Particle System gesetzt und solange gecoded bis es fertig war  &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Folgende Funktionen zum Designen der Particle kamen noch hinzu:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetColor&lt;/b&gt;&lt;br /&gt;Farbe festlegen, Variationen, Farb&amp;auml;nderung &amp;uuml;ber Zeit&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetLifeTime&lt;/b&gt;&lt;br /&gt;Wie der Name schon sagt&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetBlendmode&lt;/b&gt;&lt;br /&gt;Lichteffekte (Farbaddition)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetHelix&lt;/b&gt;&lt;br /&gt;Drehung festlegen (gut f&amp;uuml;r Wirbelst&amp;uuml;rme u.&amp;auml;. Effekte)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetHorizontal&lt;/b&gt;&lt;br /&gt;Particle &amp;quot;legt&amp;quot; sich auf den Boden (gut f&amp;uuml;r Wasserringe, Bl&amp;auml;tter, Papier usw)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetAngle&lt;/b&gt;&lt;br /&gt;Inneren und &amp;auml;usseren Emissionswinkel festlegen&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetEmissionMode&lt;/b&gt;&lt;br /&gt;Ring, Fl&amp;auml;che, Punkt usw&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetOffsets&lt;/b&gt;&lt;br /&gt;Partikel verschieben / Emissionsmodi konfigurieren&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetBounce&lt;/b&gt;&lt;br /&gt;Bodenh&amp;ouml;he, Elastizit&amp;auml;t, Anzahl der Spr&amp;uuml;nge&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetTrail&lt;/b&gt;&lt;br /&gt;Partikel hinterlassen Spuren (ebenfalls konfigurierbar)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CamFade&lt;/b&gt;&lt;br /&gt;Ab welchem z-Abstand zur Cam soll der Partikel anfangen zu faden?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CloneParticleType&lt;/b&gt;&lt;br /&gt;Anhand eines bestehenden Partikels einen neuen clonen. Gut f&amp;uuml;r &amp;auml;hnliche Partikel&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dazu kamen noch einige S&amp;auml;uberungsfunktionen:&lt;/b&gt;&lt;br /&gt;Einzelne oder alle Emitter stoppen&lt;br /&gt;Partikel l&amp;ouml;schen&lt;br /&gt;Partikelsystem killen&lt;br /&gt;Trails l&amp;ouml;schen&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Die Ausrichtung der Partikel anhand ihrer Flugbahn gefiel mir auch noch nicht, deswegen hab ich sie folgendermassen ver&amp;auml;ndert:&lt;/b&gt;&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Der 3D Punkt, wo der Partikel urspr&amp;uuml;nglich entstand, wird gespeichert.&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Der letze Aufenthaltspunkt des Partikels vor der erneuten Positionsberechnung wird gespeichert.&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Beide Raumvektoren werden voneinander subtrahiert und das Ergebnis halbiert.&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; An dem so errechneten Punkt wird der Partikel dann ausgerichtet (Y-Achse)&lt;br /&gt;&lt;br /&gt;Tja, das wars eigentlich. Das Projekt wird allerdings nur f&amp;uuml;r eigene Zwecke benutzt, mehr dazu im Showcase.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;L8er,&lt;br /&gt;PSY</description>
			<pubDate>Sat, 15 Aug 2009 17:02:05 +0200</pubDate>
		</item>

		<item>
			<title>Variationen sind das Spice des Particles</title>
			<link>https://www.blitzforum.de/worklogs/195/#1188</link>
			<guid>https://www.blitzforum.de/worklogs/195/#1188</guid>
			<author>PSY</author>
			<description>Hiho,&lt;br /&gt;&lt;br /&gt;endlich hab ich mal wieder was geschafft, wenn auch wenig.&lt;br /&gt;&lt;br /&gt;Die Abfrage, ob Particle sich im Sichtbereich der Cam befinden oder nicht und somit gerendert/nicht gerendert werden m&amp;uuml;ssen, habe ich elegant und schnell durch die Pyramiden-Sichtkegelmethode gel&amp;ouml;st.&lt;br /&gt;N&amp;auml;heres dazu hier:&lt;br /&gt;&lt;a href=&quot;https://www.blitzforum.de/forum/viewtopic.php?t=30927&quot; target=&quot;_blank&quot;&gt;https://www.blitzforum.de/foru...hp?t=30927&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Folgende Funktionen zum Designen der Particle hab ich hinzugef&amp;uuml;gt bzw. verbessert:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Setspeed&lt;/b&gt;&lt;br /&gt;Ausgangsgeschwindigkeit +- Toleranz festlegen, Beschleunigung +- over time&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetChaoticSpeed&lt;/b&gt;&lt;br /&gt;Geschwindigkeits&amp;auml;nderungen in x,y,z Richtung over time festlegen&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetSize&lt;/b&gt;&lt;br /&gt;Ausgangsgr&amp;ouml;sse +- Toleranz festlegen, Wachstum/Schrumpfen over time, Maxgr&amp;ouml;sse festlegen&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetAlpha&lt;/b&gt;&lt;br /&gt;Initialer Alphawert +- Toleranz festlegen, +- Alphawert &amp;auml;ndern over time&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetWeight&lt;/b&gt;&lt;br /&gt;Ausgangsgewicht +- Toleranz festlegen&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SetMotion&lt;/b&gt;&lt;br /&gt;Modus 1: Face Camera mit festem Drehwinkel&lt;br /&gt;Modus 2: Face Camera mit Rotation &amp;deg;/sec&lt;br /&gt;Modus 3: Ausrichten an Bewegungsrichtung&lt;br /&gt;Modus 4: Crazymode. Particle dreht sich zuf&amp;auml;llig um x, y und z Achse. N&amp;uuml;tzlich f&amp;uuml;r Funkensimulationen u.&amp;auml;.&lt;br /&gt;&lt;br /&gt;Das wars erstmal wieder,&lt;br /&gt;weitere Funktionen zum Particledesign folgen.&lt;br /&gt;&lt;br /&gt;L8er,&lt;br /&gt;PSY</description>
			<pubDate>Thu, 05 Mar 2009 08:35:10 +0100</pubDate>
		</item>

		<item>
			<title>ES WERDE LICHT !</title>
			<link>https://www.blitzforum.de/worklogs/195/#1159</link>
			<guid>https://www.blitzforum.de/worklogs/195/#1159</guid>
			<author>PSY</author>
			<description>Hiho,&lt;br /&gt;&lt;br /&gt;ok die Phase der Faulheit ist erstmal vorbei...zumindest bis nach Erstellen dieses Posts  &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; &lt;br /&gt;&lt;br /&gt;Die Nacht habe ich mich endlich an die fehlende Berechnung und Ausgabe der Partikel an sich (damit man auch mal was sieht *g*) rangemacht. Nachdem ich fertig war und nen Testlauf gestartet hab, sah ich erstmal NICHTS  &lt;img src=&quot;/forum/images/smiles/icon_confused.gif&quot; alt=&quot;Confused&quot; /&gt; &lt;br /&gt;&lt;br /&gt;Ok, also erstmal alle Variablennamen gecheckt, und alle Funktions&amp;uuml;bergabevariablen auf Namen und Typ (Float, Integer...) &amp;uuml;berpr&amp;uuml;ft. Ich konnte gar nicht glauben, was da alles falsch war  &lt;img src=&quot;/forum/images/smiles/icon_redface.gif&quot; alt=&quot;Embarassed&quot; /&gt;  Naja das kommt halt davon, wenn man das ganze Ger&amp;uuml;st coded, ohne Testl&amp;auml;ufe machen zu k&amp;ouml;nnen...wie auch ^^&lt;br /&gt;&lt;br /&gt;Nachdem ich das alles mal ausgeb&amp;uuml;gelt hatte, n&amp;auml;chster Testlauf....und wieder NIX  &lt;img src=&quot;/forum/images/smiles/icon_rolleyes.gif&quot; alt=&quot;Rolling Eyes&quot; /&gt;&lt;br /&gt;Nach ca. 10 Minuten hab ich rausgefunden, dass ich nen weiteren Schreibfehler in den UV-Koordinaten hatte...letztendlich war die Gr&amp;ouml;sse jedes Partikels 0 &lt;img src=&quot;/forum/images/smiles/icon_redface.gif&quot; alt=&quot;Embarassed&quot; /&gt; &lt;br /&gt;&lt;br /&gt;Neuer Testlauf....MAN SIEHT WAS &lt;img src=&quot;/forum/images/smiles/icon_eek.gif&quot; alt=&quot;Shocked&quot; /&gt;  Und zwar genau 1 grossen Particle, der dumm im Mesh rumsteht und sich nicht bewegt...naja immerhin *g*&lt;br /&gt;&lt;br /&gt;Nach fast ner halben Stunde Fehlersuche hatte ich das Problem gefunden...ein Schreibfehler ausgerechnet in der Variable, die die Differenz in Millisekunden zwischen dem aktuellen und dem letzen Update des Particlesystems misst...anstatt pl_looptime hab ich pl_looptme geschrieben...welche somit immer 0 war.&lt;br /&gt;Tja, da ich mit dieser Variable so ziemlich alle Ver&amp;auml;nderungen berechne (Bewegung, Alpha, Farben, Gr&amp;ouml;sse....) war das nat&amp;uuml;rlich dumm gelaufen....  &lt;img src=&quot;/forum/images/smiles/icon_rolleyes.gif&quot; alt=&quot;Rolling Eyes&quot; /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Naja soviel zu der Vorgeschichte, jetzt gehts erstmal wieder ins Technische  &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; &lt;br /&gt;&lt;br /&gt;Im letzten Worklog wurden ja bereits die Partikel vom Emitter erstellt und mit Werten gef&amp;uuml;ttert.&lt;br /&gt;Folgendes ist nun hinzugekommen&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alle Particle werden geupdatet (erstmal nur auf Position)&lt;/b&gt;&lt;br /&gt;Das passiert grob folgendermassen:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Erstmal Gesamtzahl Particle und die Anzahl der gerenderten Particle auf 0 setzen&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Surface(s) l&amp;ouml;schen...evt kommen ja noch welche hinzu wegen verschiedener Blendmodes (ich muss jetzt erstmal ParticleTypes erschaffen, also zeichnen und mit Parametern f&amp;uuml;ttern..endlich was das richtig Fun macht hehe)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Jeden Particle loopen, dabei:&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; ParticleCount um 1 erh&amp;ouml;hen, Particletyp merken&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Particle x,y,z Position updaten mithilfe oben erw&amp;auml;hnter Variable, die die vergangene Zeit zum letzten Particleupdate misst ( z.B. Particle\x   = Particle\x   + pl_looptime * Particle\vx )&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Maximalgr&amp;ouml;sse Particle abfangen&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Muss Particle gel&amp;ouml;scht werden (z.B. Lifetime &amp;uuml;berschritten, Alpha&amp;lt;=0, zu gross.....)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Muss nicht gel&amp;ouml;scht werden??? Dann ran ans Rendern, und zwar so:&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; &amp;Uuml;berpr&amp;uuml;fung, ob Particle &amp;uuml;berhaupt im Cam Sichtbereich ist....&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Wenn ja, Anzahl der gerenderten Particle um 1 erh&amp;ouml;hen und ab in die Renderfunktion, dabei wird einfach der ganze Type &amp;uuml;bergeben&lt;br /&gt;&lt;br /&gt;Die Renderfunktion sieht dann grob so aus:&lt;br /&gt;&lt;b&gt;Function PL_RENDER (Particle.TParticle)&lt;/b&gt;&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Variablen erstmal zuweisen, z.b. x,y,z, uv Werte, Farben usw.... (z.B. x=Particle\x, size=Particle\size...)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Ein bei der Initialisierung erstelltes Ghost-Mesh auf die Gr&amp;ouml;sse des Particles skalieren&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Ghostmesh an x,y,z Position des Particles positionieren&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Ghostmesh auf Cam ausrichten (Alle Particle schauen im Moment nur auf die Cam)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Die 4 Vertices des Ghostmeshes rausfinden und auf das ParticleLabs Hauptmesh &amp;uuml;bertragen&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Vertices einf&amp;auml;rben&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; 2 Triangles mit den Vertices erstellen, die ein Quad bilden&lt;br /&gt;&lt;br /&gt;...und schon sieht man auch was &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; &lt;br /&gt;&lt;br /&gt;Die Funktion, die &amp;uuml;berpr&amp;uuml;ft ob ein Particle im Sichtbereich ist oder nicht, ist weniger spektakul&amp;auml;r:&lt;br /&gt;&lt;b&gt;Function PL_OnScreen (x#, y#, z#)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Mit CameraProject rausfinden, ob x,y und z im aktuellen Aufl&amp;ouml;sungsbereich liegen oder nicht&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Wenn ja, Rendern = true, andernfalls Rendern = false ^^&lt;br /&gt;&lt;br /&gt;Wobei ich mit dieser Funktion noch nicht zufrieden bin. Die Gr&amp;ouml;sse des Particles wird im Moment noch nicht ber&amp;uuml;cksichtigt. Deshalb k&amp;ouml;nnen Particle verschwinden, bevor sie komplett aus dem Bildschirm gescrollt sind. Zur Veranschaulichung:&lt;br /&gt;Stellt euch vor, ich fahr mit der Cam extrem nahe an ein Particle ran. Das Particle f&amp;uuml;llt den halben Bildschirm in x-Richtung aus, bei einer Aufl&amp;ouml;sung von 800*600. Wenn der Mittelpunkt des Particels jetzt gerade den Bildschirm verl&amp;auml;sst (was ich mit CameraProject feststellen kann), ist der halbe Particle immer noch auf dem Bildschirm...aber trotzdem wird der Particle nicht mehr gerendert.&lt;br /&gt;&lt;br /&gt;Da n&amp;uuml;tzt es auch nicht, die Gr&amp;ouml;sse und Skalierung des Particles mit in die Berechnung einzubeziehen....&lt;br /&gt;Ich m&amp;uuml;sste eigentlich den Abstand der Cam zum Particle bestimmen, damit und mit der Skalierung und Gr&amp;ouml;sse des Particles UND MIT DER DREHUNG DES PARTICLES  die 2D Gr&amp;ouml;sse des Particles bestimmen...was aber viel zu aufw&amp;auml;ndig w&amp;auml;re...mal sehen welchen Kompromiss ich da finden kann. &lt;br /&gt;&lt;br /&gt;Naja aber immerhin funktioniert das System jetzt, auch wenn es eigentlich noch nicht viel kann. Alle Particel drehn sich zur Kamera, Alpha und Farbe werden nicht ge&amp;auml;ndert, es gibt nur Emitter, die Particle von einem Punkt ausspucken, es gibt nur einen Blendmodus, es gibt keine Zuf&amp;auml;lle und Variationen der Particle...aber das ist jetzt relativ einfach und schnell zu implementieren, ich muss grob gesagt nur ein paar Felder in den Types hinzuf&amp;uuml;gen und ein paar Berechnungen mehr laufen lassen  &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; &lt;br /&gt;Immerhin sind Gewicht und Gravitation schon mit eingebunden&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Was ich auf jeden Fall noch einbauen will / &amp;uuml;berlege evt einzubauen:&lt;/b&gt;&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Alpha&amp;auml;nderung der Particle&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Farb&amp;auml;nderung der Particle&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Geschwindigkeitsvariationen&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Wachsen/Schrumpfen der Particle&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Particlerotation&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Verschiedene Arten des Emittierens, z.B. Ring, Zufallsarea, Kreuz, Linie, Tunnel, Trichter...&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Absorber&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Eventuell Particle, die Subparticle ausstossen...&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Particle die nach x Sekunden explodieren&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Particle, die bestimmten Bahnen folgen&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Andere Ausrichtungen der Particle (immer nur auf Cam ausrichten sucked)&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Offsets f&amp;uuml;r die Emitter&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Soundanbindung&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Achja, zum Speed im Moment:&lt;br /&gt;&lt;br /&gt;Knapp 11000 gerenderte Particle werden im Fenstermodus 800*600 mit knapp 86 FPS dargestellt. Wobei sie in Zufallsrichtungen ausgespuckt werden, und nur Gewicht, Gravitation und Y(Emitterspeed) ber&amp;uuml;cksichtigt werden...&lt;br /&gt;&lt;br /&gt;So das wars f&amp;uuml;r heut,&lt;br /&gt;hier ist Faasend und ich bin noch n&amp;uuml;chtern, geht gar nicht...  8) &lt;br /&gt;&lt;br /&gt;Alleh Hopp&lt;br /&gt;PSY&lt;br /&gt;</description>
			<pubDate>Mon, 23 Feb 2009 16:20:57 +0100</pubDate>
		</item>

		<item>
			<title>Emitter - oder wie man Partikel spuckt</title>
			<link>https://www.blitzforum.de/worklogs/195/#1143</link>
			<guid>https://www.blitzforum.de/worklogs/195/#1143</guid>
			<author>PSY</author>
			<description>Hiho,&lt;br /&gt;&lt;br /&gt;nachdem die Grundfunktionenen stehn, habe ich mich mal an die Emitter rangewagt.&lt;br /&gt;&lt;br /&gt;Die beiden wichtigesten Funktionen sind:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt;  &lt;b&gt;Function CreateEmitter%()&lt;/b&gt; und&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt;  &lt;b&gt;Function FeedEmitter%(HND%, ptID%, duration%, emissionrate%)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CreateEmitter()&lt;/b&gt; macht im Moment grob folgendes:&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Neuen Emitter-Type erstellen&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Cube erstellen und einf&amp;auml;rben (wollte es zuerst mit Cones machen, da man sofort gesehen h&amp;auml;tte, wo die Partikel ausgestossen werden, aber Cones sind im Vergleich zu Cubes viel langsamer, und es wird am jedem fps gespart &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt;)...&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Handle des Cubes mit Nameentity identifizieren, falls ich sp&amp;auml;ter keine Lust habe durch alle Emitter zu loopen (werden noch Geschwindikeitstests folgen)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Handle zur&amp;uuml;ckgeben&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Feedemitter()&lt;/b&gt; ist dazu gedacht, die einzelnen Emitter mit 1 oder mehreren Partikelarten (Types) zu &amp;quot;laden&amp;quot;. Grob:&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Emitter identifizieren&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; # Particle Types des Emitters um 1 erh&amp;ouml;hen &lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Handle des neuen ParticleType - Slots merken&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; &amp;Uuml;bergebene Dauer und Emissionsrate zuweisen&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Neuen Particle Type auf &amp;quot;aktiv&amp;quot; setzen&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Evt. Maximum Life Time des Emitters anpassen (ist neuer Particle Type am l&amp;auml;ngsten aktiv?)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Handle zur&amp;uuml;ckgeben, falls der Particle Type sp&amp;auml;ter deaktiviert / reaktiviert werden soll&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Die Emitterupdatefunktion habe ich auch schon &amp;quot;fertig&amp;quot;, leider kann ich im Moment noch &amp;uuml;berhaupt nichts testen, da ich die Particle-Update Funktion erst am Schluss einbetten kann, wenn der Rest fertig ist.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Funktionsweise Update Emitter:&lt;/b&gt;&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Verstrichene Zeit zwischen jetzt und letztem Update ermitteln&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Jeden Emitter loopen, dabei :&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Schauen ob er &amp;uuml;berhaupt auf &amp;quot;aktiv&amp;quot; steht&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Wenn ja, Position und Drehung merken&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt;   SUB-Loop durch alle Particle Types des Emitters, dabei:&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt;     Wird der aktuelle Particle Type &amp;uuml;berhaupt noch ausgespuckt? (Emission Time schon &amp;uuml;berschritten?)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt;     Wenn ja, berechnen, wieviel Partikel in diesem Loop erzeugt werden m&amp;uuml;ssen, um die Emissionrate pro Sekunde einzuhalten&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt;     Die Anzahl der errechneten Partikel erzeugen, dabei:&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt;          Partikeltyp und Emitterhandle merken&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt;          x,y,z Position des Partikels aus Emitterposition ableiten&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt;          Speedkomponenten des Partikels ausrechnen (hm da muss wohl Vektorrechnung her, die definierte Geschwindigkeit des Partikels bezieht sich ja auf die Y-Richtung (Emitterausstossrichtung), und ich muss ja dabei die Ausrichtung des Emitters ber&amp;uuml;cksichtigen...mal sehn wie ich das mach &lt;img src=&quot;/forum/images/smiles/icon_rolleyes.gif&quot; alt=&quot;Rolling Eyes&quot; /&gt; &lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt;          Farben, Starttime zuweisen&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt;  am Ende die ursrpr&amp;uuml;ngliche Emitterposition wiederherstellen&lt;br /&gt;&lt;br /&gt;Die Emitterposition merk ich mir, weil ich eventuell sp&amp;auml;ter verschiedene Ausstossformen einf&amp;uuml;gen werde, wie z.B. Ringe, Vierecke, Wellen, Fl&amp;auml;chen usw. und dabei den Emitter w&amp;auml;hrend des jeweiligen Partikelausstosses permanent verschieben/ausrichten muss....aber mal sehn...vielleicht gibts auch nur Punktausspucker  &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Naja das wars bis jetzt mal wieder, morgen oder die Tage wage ich mich dann mal an die Positionierung und Berechnung der einzelnen Vertices(Particle) auf der SingleSurface...brrrrrrr&lt;br /&gt;&lt;br /&gt;So long,&lt;br /&gt;PSY  &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; </description>
			<pubDate>Wed, 18 Feb 2009 21:26:52 +0100</pubDate>
		</item>

		<item>
			<title>The Beginnings...</title>
			<link>https://www.blitzforum.de/worklogs/195/#1130</link>
			<guid>https://www.blitzforum.de/worklogs/195/#1130</guid>
			<author>PSY</author>
			<description>So...&lt;br /&gt;&lt;br /&gt;da ich dieses Jahr eventuell mehr Zeit als sonst haben werde  &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; , und zudem einen Sack voll Projektideen(Spiele) in der Schublade, von denen 90% sicher ein paar grafische Leckereien brauchen k&amp;ouml;nnten, habe ich mich dazu entschlossen, eine Particleengine auf die Beine zu stellen, namens&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt;  &lt;b&gt;PARTICLE LABS &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_exclaim.gif&quot; alt=&quot;Exclamation&quot; /&gt; Die Anforderungen&lt;br /&gt;Die Engine soll nat&amp;uuml;rlich -mehr oder weniger- universell einsetzbar sein...zumindest in meinen Projekten  &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; Dazu muss sie folgendes k&amp;ouml;nnen: &lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_idea.gif&quot; alt=&quot;Idea&quot; /&gt; Single Surface&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_idea.gif&quot; alt=&quot;Idea&quot; /&gt; Verschiedene Texturen f&amp;uuml;r die einzelnen Particle handeln&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_idea.gif&quot; alt=&quot;Idea&quot; /&gt; Einfach zu verwaltende Emitter&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_idea.gif&quot; alt=&quot;Idea&quot; /&gt; Einfach zu erstellende Particle(Types)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_idea.gif&quot; alt=&quot;Idea&quot; /&gt; Zeitabh&amp;auml;ngige Partikel&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_idea.gif&quot; alt=&quot;Idea&quot; /&gt; Eventuell verschiedene Blend Modi (bin noch nicht sicher ob ich das so hinbekomm wie ich will)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_idea.gif&quot; alt=&quot;Idea&quot; /&gt; SAUSCHNELL  &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nachdem ich mir mal ein paar Grundgedanken gemacht hab, hab ich mal angefangen zu coden und mir erstmal &amp;uuml;berlegt, welche Parameter die Emitter und Particle mindestens besitzen m&amp;uuml;ssen, und welche Grundfunktionen ich brauche. Folgendes ist dabei rausgekommen:&lt;br /&gt;&lt;br /&gt;Es gibt nat&amp;uuml;rlich 3 grosse Types.&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; EMITTER&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; PARTICLETYPES&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; DIE EINZELNEN PARTICLE AN SICH&lt;br /&gt;Eventuell kommt noch ein Absorber hinzu, aber das hat noch Zeit...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;EMITTER&lt;/b&gt;&lt;br /&gt;		Field handle%					&lt;br /&gt;		Field starttime%		&lt;br /&gt;		Field active%  			&lt;br /&gt;		Field ptype%  &lt;br /&gt;		Field ptlife%&lt;br /&gt;		Field ptrate%  &lt;br /&gt;&lt;b&gt;&lt;br /&gt;PARTICLETYPE&lt;/b&gt;&lt;br /&gt;                Field lifetime%&lt;br /&gt;		Field alpha#&lt;br /&gt;		Field speed#&lt;br /&gt;		Field size#&lt;br /&gt;	        Field weight#&lt;br /&gt;         	Field u#,v#&lt;br /&gt;                Field r%,g%,b%      &lt;br /&gt;		&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PARTICLE&lt;/b&gt;&lt;br /&gt;    Field emitterhandle%        &lt;br /&gt;    Field x#, y#, z# &lt;br /&gt;    Field scale#      &lt;br /&gt;    Field size#       &lt;br /&gt;    Field alpha#    &lt;br /&gt;    Field r#,g#,b# &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Folgende Grundfunktionen muss die Engine beherrschen:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Texturen, Cam und Kram initialisieren&lt;br /&gt;Emitter mit Particlen f&amp;uuml;ttern&lt;br /&gt;Emitter starten und stoppen&lt;br /&gt;Particlesystem freigeben&lt;br /&gt;Particle Type erstellen (incl. Textur zuweisen)&lt;br /&gt;Gr&amp;ouml;sse, Geschwindigkeit, Alpha, Gravitation, Farbe, Lebenszeit f&amp;uuml;r Particle(Type) &amp;auml;ndern/zuweisen&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Hauptfunktion: Alle Emitter/Particle(Types) updaten&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Die Types Grundfunktionen hab ich schonmal gecoded...was ja auch nicht sonderlich schwer war &lt;img src=&quot;/forum/images/smiles/icon_biggrin.gif&quot; alt=&quot;Very Happy&quot; /&gt;&lt;br /&gt;Das Updaten der Particle wird nat&amp;uuml;rlich die restlichen 90% der Arbeit ausmachen... Oo&lt;br /&gt;&lt;br /&gt;Der Grundcode ist jetzt (nat&amp;uuml;rlich &amp;uuml;bersichtlich und auskommentiert) schon 340 Zeilen gross...und ich hab eigentlich noch nichts erreicht Oo&lt;br /&gt;&lt;br /&gt;Naja der Grundstein ist gelegt, mal sehn was sich daraus machen l&amp;auml;sst &lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; &lt;br /&gt;&lt;br /&gt;Jetzt ist erstmal Schluss, Age of Conan wartet hrhr...&lt;br /&gt;&lt;br /&gt;L8er,&lt;br /&gt;PSY</description>
			<pubDate>Sun, 15 Feb 2009 01:47:42 +0100</pubDate>
		</item>


	</channel>
</rss>
