Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 10, 2025 12:53

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Partikel-System
BeitragVerfasst: Do Feb 12, 2004 19:39 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 24, 2003 21:28
Beiträge: 28
Wohnort: Kiel
Moin!

Ich hab mir das Tutorial von Lithander über Partikel-System durchgelesen und wollte das auch gleich selbst ausprobieren. Hab's auch gleich in C++ geschrieben (bzw versucht es so einigermaßen zu übersetzen). Ich hab noch nicht so viel Erfahrung in OpenGL und finde jetzt meinen Fehler nicht. Es könnte damit zusammenhängen das ich die Zufallszahlen-Funktion nicht korrekt benutze. Aber das is nur eine Vermutung.

Die Quads werden zwar alle gezeichnet, aber gehäuft auf ungefähr 9 Stellen entlang der x-Achse. Die "Flammen" bewegen sich immer nur nach links oben, und alle mit der gleichen Geschwindigkeit.

Zwei Screenshots davon findet ihr hier und hier.
Der Sourcecode ist hier CPP-Datei bzw. hier hh-Datei.

Diese Frage richtet sich natürlich besonders an Leute die sich mit Partikelsystemen auskennen und denen auch C++ vertraut ist (ich progge nämlich erst seit 3 Monaten in C++). Ich danke euch jetzt schon mal für eure Hife!

mfG, McFly


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 12, 2004 19:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 24, 2003 21:28
Beiträge: 28
Wohnort: Kiel
hey, klasse. Ich hab's gelöst :)
Lag wirklich an meiner Verwendung des rand()-Befehls. Jetzt sieht's viel besser aus. Die Partikel sind nich mehr alle auf einem Haufen und bewegen sich wenigstens einigermassen zufällig (obwohl immer noch wie Feuer aussieht)

Allerdings fällt der ganze Haufen Partikel nach ca. einer halben Sekunde in sich zusammen und baut sich ganz neu auf. Komisch


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 12, 2004 21:07 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Apr 25, 2003 15:09
Beiträge: 71
Wohnort: BAYERN! *g*
dasliegt daran, dass deine rate in der pixel erzeugt werden zu hoch ist für deine maximale partikelzahl, als entweder weniger/seltener erzeugen oder mehr partikel insgesammt zulassenoder früher destroyen


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 12, 2004 22:36 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 24, 2003 21:28
Beiträge: 28
Wohnort: Kiel
hast recht, danke. Jetzt sieht's wieder besser aus. Das einzige "echte" Problem was jetzt noch bleibt ist das die Partikel wie ihre Texture schwarz-weiss sind. Irgendwie wird die Farbe, die in dem Partikel-Struct gespeichert ist nicht auf die Textur angewendet.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 13, 2004 10:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
das weis ich : glcolor3f oder glcolor4f. ganz einfach.

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 13, 2004 11:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Sehe grade das er bereits ein glColo4f im Code drin hat. Benutzt du evtl. die OpenGL-Beleuchtung? Wenn ja, dann musst du erst via glEnable(GL_COLOR_MATERIAL) das Color-Tracking von OpenGL aktivieren, damit die Materialfarbe aus den glColor-Aufrufen übernommen wird.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 13, 2004 13:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 24, 2003 21:28
Beiträge: 28
Wohnort: Kiel
Danke für den Tip. Ich benutze zwar kein Beleuchtung, aber jetzt geht´s trotzdem.

Aber damit die Partikel korrekt ausgeblendet werden, muss ich ja Blending benutzen. Ich hab zwar schon mit einigen Werten rumgespielt, aber das Ergebnis sieht nie so wirklich toll aus. Entweder die Farbgebung ist viel zu dunkel oder es wird nicht korrekt geblendet.
Im Moment benutze ich "glBlendFunc(GL_SRC_ALPHA,GL_ONE);", aber da sind die Farben viel zu dunkel.

Hat einer einen Tip welche Blend-Func ich nehmen sollte?

mfG, McFly


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 13, 2004 23:21 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Also wenn du den Alpha-Wert deiner Partikel nutzen willst empfehle ich
gl_src_alpha, gl_one_minus_src_alpha

sollte, wenn ich mich nicht ganz irre einer echten Transparenz am nächsten kommen.... (sollte Echter Transparenz entsprechen *ggg*)

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 14, 2004 00:01 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Für Rauch usw.. sieht auch
glBlendFunc(gl_one_minus_dst_color,gl_one) gut aus. Da hat man zwar keinen Alpha Wert mit drin, aber die schwarzen Stellen sind dann eben transparent. Bei diesem Blendmodi kommt es wegen 1-dst_color nicht zu einer Übersättigung im Gegensatz zu reinem additiven Blenden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 14, 2004 21:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 24, 2003 21:28
Beiträge: 28
Wohnort: Kiel
Nochmal ne Frage zu den Partikeln und deren Blending. Ich beutze jetzt
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
Bringt bisher die besten Ergebnisse, die Partikel werden auch ausgeblendet, aber wie kann ich OpenGL sagen daß der Hintergrund durchscheinen soll?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 14, 2004 22:05 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Die Partikel müssen ganz zum Schluß auf das Bild gezeichnet werden.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]