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

Aktuelle Zeit: Mo Jul 07, 2025 22:45

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Partikel Ausrichtung
BeitragVerfasst: Mi Nov 14, 2007 18:26 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
Nun, ich habe ein Spiel geschrieben, bei dem Teilweise Partikeleffekte verwendet werden. Nun ist es aber so, dass diese Partikel nicht schön ausgerichtet werden. Früher ging das, aber mittlerweile läuft das nicht mehr.

Der Code, wo das "Billboard" erzeugt wird, sieht folgendermassen aus:

Code:
  1. procedure FXBillboardBegin;
  2. var
  3.   x,y : byte;
  4.   Matrix : array[0..15] of single;
  5. begin
  6.   glpushmatrix;
  7. //delete rotation part - replace it with a 3x3 Identity Matrix
  8.  glGetFloatv(GL_MODELVIEW_MATRIX, @Matrix); //get matrix
  9.  for x := 0 to 2 do
  10.   for y := 0 to 2 do
  11.    if x=y then Matrix[x*4+y] := 1 else Matrix[x*4+y] := 0;
  12.  
  13.  glLoadMatrixf(@Matrix); //replace modviewmat
  14. end;
  15.  


Nun, es ist aber nicht so, dass sich durch diese Prozedur nichts verändert. Die Partikel werden schon ausgerichtet, für die vertikale Ebene auch richtig. Nur ist das ganze nicht immer zur Person ausgerichtet. Irgendwie stehen die Partikel immer gleich (vermutlich in X Richtung). Wenn man also Richtung -X in einen Partikel schaut, sieht man gar nix (Backface Culling).

Ich vermute also, dass ich dem ganzen noch eine Drehung verpassen muss, aber wie mache ich das?

Hier steht man frontal vor dem Effekt:
http://bp3.blogger.com/_RSOa5Mft9_c/Rzs ... reen10.jpg

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 14, 2007 18:44 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Schau mal in diesen Thread, dort hatte ich auch probleme mit meinen Partikeln. Vielleicht hilft dir das, sonst frag hier halt nochmal.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 15, 2007 10:21 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Code:
  1. glPopMatrix;

fehlt!

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 15, 2007 16:48 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
damadmax hat geschrieben:
Code:
  1. glPopMatrix;

fehlt!


Das wird dann schon andernorts gemacht, wenn ich das im gleichen Code machen würde, könnte ich das Billboard geradzu weglassen ;)

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 19, 2007 15:15 
Offline
DGL Member

Registriert: Di Okt 23, 2007 10:20
Beiträge: 84
unwichtig


Zuletzt geändert von elektrokrach am Di Nov 27, 2007 11:28, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 20, 2007 20:38 
Offline
DGL Member

Registriert: Di Jun 06, 2006 09:59
Beiträge: 474
Auch bei sperischen Billboards gibt es 2 Varianten:
die eine steht senkrecht auf der z-Achse. So wird das auch im Wiki beschrieben. Diese Variante ist deutlich schneller, und daher für Partikelsysteme auf jeden Fall zu empfehlen.
Die andere Variante ist senkrecht auf dem Vektor Beobachter-Billboardmitte. Diese Variante ist deutlich teurer (mehrere Kreuzprodukte pro billboard), aber in manchen Fällen nötig.

_________________
Bild


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


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.009s | 16 Queries | GZIP : On ]