{"id":2893,"date":"2013-10-10T17:48:10","date_gmt":"2013-10-10T15:48:10","guid":{"rendered":"http:\/\/clonkspot.org\/blog\/?p=2893"},"modified":"2025-05-15T11:40:16","modified_gmt":"2025-05-15T09:40:16","slug":"openclonk-neues-partikelsystem","status":"publish","type":"post","link":"https:\/\/clonkspot.org\/blog\/2013\/10\/10\/openclonk-neues-partikelsystem\/","title":{"rendered":"OpenClonk: Neues Partikelsystem"},"content":{"rendered":"<p><a href=\"http:\/\/blog.openclonk.org\/2013\/10\/a-new-particle-system\/\"><em>Originalpost von Zapper im OC-Blog<\/em><\/a><\/p>\n<p>Die letzten Wochen war ich mit dem neuen Partikelsystem f\u00fcr OC besch\u00e4ftigt. Der sichtbare Unterschied ist, dass es sehr viel performanter ist!<em>*<\/em> Aber auch f\u00fcr die Entwickler gibt es spannende Neuerungen: Es ist jetzt einfacher das Verhalten der Partikel zu definieren. Ich bin schon gespannt was f\u00fcr Effekte daraus entstehen werden!<\/p>\n<figure id=\"attachment_2894\" aria-describedby=\"caption-attachment-2894\" style=\"width: 513px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/clonkspot.org\/blog\/wp-content\/uploads\/2013\/10\/PArticletest2.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2894\" alt=\"PArticletest2\" src=\"https:\/\/clonkspot.org\/blog\/wp-content\/uploads\/2013\/10\/PArticletest2.gif\" width=\"513\" height=\"415\" \/><\/a><figcaption id=\"caption-attachment-2894\" class=\"wp-caption-text\">Zappers Testpartikel!<\/figcaption><\/figure>\n<p><!--more-->Der folgende Part ist eher f\u00fcr die Entwickler relevant, da ich jetzt auf technische Details eingehe :-)<\/p>\n<p>Die alte Particle.txt ist nun obsulet. Naja, fast \u2013 Name und Facet (um die Partikelgrafik zu definieren) bleiben noch erhalten. Die anderen Einstellungen werden nun \u00fcber Script genauer gesagt \u00fcber proplists gesteuert. Hier ein Beispiel, wie einne proplist aussieht:<\/p>\n<pre>var particles =\r\n{\r\n Size = PV_KeyFrames(0, 0, 0, 100, 1, 750, 1, 1000, 6),\r\n Alpha = PV_KeyFrames(0, 0, 255, 750, 255, 1000, 0),\r\n DampingX = 700, DampingY = 700,\r\n ForceY = PV_KeyFrames(0, 0, 0, 750, 0, 900, -10 * GetGravity()),\r\n R = 255,\r\n G = 255,\r\n B = PV_Linear(255, 0),\r\n Rotation = PV_Direction(),\r\n BlitMode = GFX_BLIT_Additive,\r\n Phase = PV_Step(1, 0, 2),\r\n Stretch = PV_Speed(2 * 1000, 1000),\r\n CollisionVertex = 750,\r\n OnCollision = PC_Bounce()\r\n};<\/pre>\n<pre>for (var i = 0; i &lt; 500; ++i)\r\n{\r\n var angle = Random(360);\r\n var speed = RandomX(5, 40);\r\n CreateParticleEx(\"Fire\", 0, 0, Sin(angle, speed), -Cos(angle, speed), RandomX(5, 1 * 36), particles, nil);<\/pre>\n<p>}<\/p>\n<p>Dir ist vielleicht aufgefallen, dass man jetzt eine Menge der Einstellungen eines Partikels animieren kann, beispielswei\u00dfe die Gr\u00f6\u00dfe und die Farbe und sogar die Physik-Einstellung um D\u00e4mpfung, Gravitation und Wind zu simulieren. Mehr Infos dazu gibt es in der <a href=\"http:\/\/docs.openclonk.org\/en\/sdk\/particle\/index.html\">Partikel-Dokumentation<\/a>\u00a0bzw. in <a href=\"http:\/\/docs.openclonk.org\/en\/sdk\/script\/fn\/CreateParticleEx.html\">CreateParticleE<\/a>x. Das alte Partikelsystem ist nach wie vor vorhanden, aber ich empfehle auf das neue umzusteigen!<\/p>\n<figure id=\"attachment_2896\" aria-describedby=\"caption-attachment-2896\" style=\"width: 314px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/clonkspot.org\/blog\/wp-content\/uploads\/2013\/10\/MatthiBumm.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2896\" alt=\"MatthiBumm\" src=\"https:\/\/clonkspot.org\/blog\/wp-content\/uploads\/2013\/10\/MatthiBumm.gif\" width=\"314\" height=\"188\" \/><\/a><figcaption id=\"caption-attachment-2896\" class=\"wp-caption-text\">experimentelle Explosionen von Matthi<\/figcaption><\/figure>\n<p><em>* Das neue Partikelsystem rendert alle Partikel desselben Typs mit einem einzigen Draw Call, was weniger Arbeit f\u00fcr die GPU und somit weniger zu dem bekannten ruckeln f\u00fchren sollte. Zus\u00e4tzlich wird die Partikel-Physik in einem parallelen Thread zum normalen Spiel simuliert, was ebenfalls die Performanz verbessern sollte.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Originalpost von Zapper im OC-Blog Die letzten Wochen war ich mit dem neuen Partikelsystem f\u00fcr OC besch\u00e4ftigt. Der sichtbare Unterschied ist, dass es sehr viel performanter ist!* Aber auch f\u00fcr die Entwickler gibt es spannende Neuerungen: Es ist jetzt einfacher das Verhalten der Partikel zu definieren. Ich bin schon gespannt was f\u00fcr Effekte daraus entstehen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[114,110,97],"class_list":["post-2893","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-entwickeln","tag-openclonk","tag-partikel"],"_links":{"self":[{"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/posts\/2893","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/comments?post=2893"}],"version-history":[{"count":5,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/posts\/2893\/revisions"}],"predecessor-version":[{"id":2900,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/posts\/2893\/revisions\/2900"}],"wp:attachment":[{"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/media?parent=2893"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/categories?post=2893"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/tags?post=2893"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}