include(PUN_ROOT.'syn/css.php'); ?>
Sie sind nicht angemeldet.
Also ich bastel mal wieder nebenbei an einer Engine. Ich will einige Probleme in der EWAIN.e-Engine ausmerzen...derzeit habe ich jedoch noch ein kleines Problem mit den Partikeln. Zunächst sollten natürlich nach Möglichkeit nur die sichtbaren Partikel gerendert werden. Das ist nur das kleinere Problem. Das andere Problem ist die Z-Sortierung der Partikel:
Methode 1:
Ich rendere zumindest alle transparenten Objekte (dazu gehören die Partikel) von hinten nach vorne rendern damit die Transparenz stimmt. Dabei kann ich dann aber ggf. nicht mehr alle Partikel aufeinmal rendern, was ziemlich lahm wäre! Ich müsste die Partikel also irgendwie optimal in Gruppen aufteilen.
Methode 2:
Ich versuche den Transparenz-Effekt irgendwie zu faken. Also die transparenten partikel werden nachträglich in den bereits gerenderte Scene eingebastelt. Das gibt Probleme sobald sich Partikel z.B. hinter eine Glasscheibe befinden.
Hat jemand Ideen dazu?
Coolcat
Offline
Hm. Die Sichtbarkeit via VFD könnte man noch in den Vertex Shader packen, oder? Wenn nicht sichtbar, dann irgendwo hin transformieren, wo .... ääää... hm... achso...
Du willst, dass die gar nicht erst im VS ankommen, oder?
Dann müßtest Du für jeden einzelnen ne VFD-Bedingung machen, was Unsinn ist. Da würde ich Gruppen empfehlen.
Die Z-Sortierung find ich auch immer doof.
Vielleicht gibt´s einen Weg, das komplett im VS/PS zu machen, also die Physik in ne Textur zu packen, und dort dann das Sortieren vorzunehmen.
Wahrscheinlich geht das so nicht, aber naja.
Bei Partikeln ist immer doof, dass man einerseits die CPU braucht, andererseits es immer sehr viele Partikel sind, weshalb man ERST RECHT die CPU außen vor lassen sollte.
Ich habe also keine Idee für Dich, tut mir leid.
Peer
Offline
Also ich muss sowieso die Partikel in Gruppen einteilen, damit ich z.B. für weit entfernte Staubwolke die ganze Physik usw. gar nicht erstberechne.
Für die Sichtbarkeit ist es vermutlich am besten zunächst die Gruppe zu testen, dann alle Partikel der Gruppe einzeln auf Sichtbarkeit. Mit dem http://www.delphidev.de/phpBB2/viewtopic.php?t=932 geht das ziemlich schnell, sind nur drei If-Bedinungen.
Wie gesagt, dass ist das kleinere Problem.
Die Z-Sortierung ist das eigentliche Problem, und ohne geht es nicht! Wo und wie ich das mache ist erstmal egal, es muss nur am besten in einem einizgen Draw-Call gehen!
Ich werd jetzt nochmal nach ein paar Artikeln suchen, vielleicht werde ich ja fündig.
Coolcat
Offline
Hm, also ich hatte jetzt etwas gefunden, aber der Link zum Source ist leider down.... :?
http://www.zfx.info/DisplayThread.php?MID=29084
Offline