eine frage zu partikelsystemen
-
aber kann man nnebel nur auf eine region begrenzen? wär mir neu...
oder meisnt du, dass man einfach um den "nebel" eine kugel gepackt hat, die eine textur des objekts hat, und wenn man diese durchdringt, der nebel aktiviert wird?
(ok, das würde immernoch nicht die nebelschwaden von freelancer erklären)
-
Die Moeglichkeit zum "reingehen" haengt wohl stark damit zusammen, wie gross die GraKa ein Point Sprite darstellen kann. Mit Punkten die bloss 20 Pixel breit sind braeuchte es ne ziemlich grosse Menge um nen guten Nebel zu simulieren..
-
In Quake3 kann man den Nebel auch auf bestimmte Stellen begrenzen. Aber ich glaube das wurde da mit Shadern gemacht.
-
otze schrieb:
mit anderen worten kann man damit die position des pixels der textur in der teiefe verändern, sodass man zb aus einer ebene rein optisch eine halbkugel machen könnte?
Ja, genau das haben sie ja bei der Demo gemacht (siehe mein Link).
Das ist aber etwas langweilig. Bei einer Explosion könnte man zB einzelnen Feuerstößen eine andere Tiefe geben damit sie "rauskommen".Der volumentrische Nebel in Q3 hat schon auf meiner TNT 1 funktioniert. Da die Nebligen bereiche nur quaderförmig waren (soweit ich mich erinnern kann) denke ich dass dort einfach nur diese Quader mit Nebel gerendert wurden und der Rest vom Level ohne.
-
0x00000001 schrieb:
Das ist aber etwas langweilig. Bei einer Explosion könnte man zB einzelnen Feuerstößen eine andere Tiefe geben damit sie "rauskommen".
da gibts aber optisch keinen unterschied, solange nicht irgendwelche objekte daneben sind. die demo würde ohne den boden exakt gleich aussehen, weil nur der z-wert verändert wird.
-
0x00000001 schrieb:
otze schrieb:
mit anderen worten kann man damit die position des pixels der textur in der teiefe verändern, sodass man zb aus einer ebene rein optisch eine halbkugel machen könnte?
Ja, genau das haben sie ja bei der Demo gemacht (siehe mein Link).
Das ist aber etwas langweilig. Bei einer Explosion könnte man zB einzelnen Feuerstößen eine andere Tiefe geben damit sie "rauskommen".wieso wird die technik dann eigentlich nicht noch viel mehr in spielen eingesetzt?
wieso seh ich dann immernoch eckige rohre in räumen, wenn man sie doch fast ohne performanceeinbußen(passiert ja alles im pixelshader) rund machen könnte?macht es zuviel arbeit?
//edit is klar, liegt daran, dass man nur den z wert ändern kann, nicht den x/y wert, und somit könnten rohre in einem game nur in einer richtung richtig schön aussehen, sonst nur komisch^^
-
noebef schrieb:
In Quake3 kann man den Nebel auch auf bestimmte Stellen begrenzen. Aber ich glaube das wurde da mit Shadern gemacht.
Nix da mit Shadern. Die habe eine Opengl erweiterung genutzt. Hab jetzt aber keine ahnung welche das ist. Mit dieser Erweiterung definierst du ein Quader und in diesem ist dann der Nebel. Total simple hab es schon mal ausprobiert
-
wenn man im pixelshader den z-wert ändert verwirft man zbuffer optimierungen der grakas. das bedeutet extreme performanceverluste. aber meißtens braucht man sowas bei partikeln nicht, die werden auf die simpelste art und weise gezeichnet.
das problem bei partikeln ist eher die riesige menge davon zu animieren und zu cullen.rapso->greets();
-
de_Bert schrieb:
noebef schrieb:
In Quake3 kann man den Nebel auch auf bestimmte Stellen begrenzen. Aber ich glaube das wurde da mit Shadern gemacht.
Nix da mit Shadern. Die habe eine Opengl erweiterung genutzt. Hab jetzt aber keine ahnung welche das ist. Mit dieser Erweiterung definierst du ein Quader und in diesem ist dann der Nebel. Total simple hab es schon mal ausprobiert
es gibt viele möglichkeiten wie das realisiert werden kann und bei Q3 haben die auch mehrere mittel benutzt.
nichts davon war partikel.
rapso->greets();
-
was sind das für optimierungen? ist damit das culling der pixel ansich gemeint, dass die graka nicht schon vorher unsichtbare pixel verwerfen kann?
-
Der Bodennebel in Q3A soll wohl irgendwie vorberechnet sein, daher ist er immer genau waagerecht.
Bye, TGGC \-/
-
Nennt sich das nicht volumetric fog? Wird btw. auch in FarCry verwendet, um das Wasser zu trüben.