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

Aktuelle Zeit: Di Mai 14, 2024 21:01

Foren-Übersicht » Programmierung » Mathematik-Forum
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Billboards
BeitragVerfasst: Do Jan 27, 2005 23:24 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Jaaaaa ich weiß - bestimmt schon tausend mal im Forum gewesen hab auch schon mehrere threads angeguckt - hab keine Lösung gefunden!
Ihr wisst ja ich schreib an ner Partikel Engine. Dafür sin Billboards natürlich unabdinglich....
Nachdem mein erster Versuch gescheitert war, hab ich mich erstmal an die nvidia pointsprites extension gewandt - ganz schö soweit, nur das man die punkte nicht rotieren kann!
also 2. versuch billboards. wenigstens kam diesmal nicht nur noch müll als ausgabe raus Oo
es scheint fasst alles zu stimmen, aber irgendwie drehen sich die quads in ne falsche richtung...
ich benutz sphärische billboards (oder versuchs halt ^^)
hier der code:
Code:
  1.  
  2. glTranslatef(Particles[i].Position.X, Particles[i].Position.Y, Particles[i].Position.Z);
  3. glRotatef(Particles[i].Rotation, 0, 0, 1);
  4. glBindTexture(GL_TEXTURE_2D, Particles[i].Texture);
  5. glGetFloatv(GL_MODELVIEW_MATRIX, @ModelViewMatrix);
  6.  
  7. VUp[0] := ModelViewMatrix[1, 0];
  8. VUp[1] := ModelViewMatrix[1, 1];
  9. VUp[2] := ModelViewMatrix[1, 2];
  10. VUp[3] := ModelViewMatrix[1, 3];
  11. VRight[0] := ModelViewMatrix[0, 0];
  12. VRight[1] := ModelViewMatrix[0, 1];
  13. VRight[2] := ModelViewMatrix[0, 2];
  14. VRight[3] := ModelViewMatrix[0, 3];
  15.  
  16. Vector[0] := AddVectors(MakeVector3f(-VUp[0], -VUp[1], -VUp[2]), MakeVector3f(VRight[0], VRight[1], VRight[2]));
  17. Vector[1] := AddVectors(MakeVector3f(VUp[0], VUp[1], VUp[2]), MakeVector3f(VRight[0], VRight[1], VRight[2]));
  18. Vector[2] := SubVectors(MakeVector3f(VUp[0], VUp[1], VUp[2]), MakeVector3f(VRight[0], VRight[1], VRight[2]));
  19. Vector[3] := SubVectors(MakeVector3f(-VUp[0], -VUp[1], -VUp[2]), MakeVector3f(VRight[0], VRight[1], VRight[2]));
  20.  
  21. Vector[0] := MultVectors(MakeVector3f(Vector[0].X, Vector[0].Y, Vector[0].Z), Particles[i].Size);
  22. Vector[1] := MultVectors(MakeVector3f(Vector[1].X, Vector[1].Y, Vector[1].Z), Particles[i].Size);
  23. Vector[2] := MultVectors(MakeVector3f(Vector[2].X, Vector[2].Y, Vector[2].Z), Particles[i].Size);
  24. Vector[3] := MultVectors(MakeVector3f(Vector[3].X, Vector[3].Y, Vector[3].Z), Particles[i].Size);
  25. glColor4f(Particles[i].Color.X, Particles[i].Color.Y, Particles[i].Color.Z, Particles[i].Opacity);
  26. glBegin(GL_QUADS);
  27.   glTexCoord2f(0, 0);
  28.   glVertex3fv(@Vector[0]);
  29.   glTexCoord2f(1, 0);
  30.   glVertex3fv(@Vector[1]);
  31.   glTexCoord2f(1, 1);
  32.   glVertex3fv(@Vector[2]);
  33.   glTexCoord2f(0, 1);
  34.   glVertex3fv(@Vector[3]);
  35. glEnd;
  36. glPopMatrix;


ich weiß nichtmehr, woran es liegen könnte...
an der multiplikation mit size kanns nicht liegen - habs auch schon ohne versucht.
im wiki hab ich auch schon nachgeschaut - daher hab ich ja so die grundzüge.
mein jetziger anhaltspunkt war folgendes:
v1:=pos+(-v1-v2)*size;
v2:=pos+(+v1-v2)*size;
v3:=pos+(+v1+v2)*size;
v4:=pos+(-v1+v2)*size;

sieht jemand das prob?

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 28, 2005 00:34 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also stimmt die ausrichtung zur Kamera net oder is was an der Bewegung faul?

Die Ausrichtung zur Kamera ging bei mir mit dem Zeug ausm WIKI bei 1zu1 umsetzung Problemlos. :?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 28, 2005 11:01 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
genau - es kommt mir fast so vor also würden die pixel wirklich fast absolut falsch rotieren - sie rotieren ja nichtmal alle gleich so wie mir das scheint. ich zieh mir nochma die wiki rein - bin für erklärungsversuche warum das nicht geht aber weiterhin dankbar :)

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 28, 2005 11:21 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ich kann dir zwar keinen Tipp geben aber deine Erklärung zu der Rotation ist reichlich verwirrend. Wie wäre es denn mal mit einem Sichtbeispiel? Auf das man sich das mal anschauen kann was dort nicht geht. Wahrscheinlich dürfte das dem ein oder anderen den entscheidenden Hinweiß geben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 28, 2005 13:37 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
hab mir wie gesacht nomma das mit den billboards angeguckt un hab jetz erst gesehn wie einfach ich es doch machen kann!
es geht jedenfalls jetzt *freu*

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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.007s | 14 Queries | GZIP : On ]