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

Aktuelle Zeit: Fr Jul 18, 2025 17:03

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Blending schaltet sich nicht aus
BeitragVerfasst: Sa Aug 26, 2006 14:53 
Offline
DGL Member

Registriert: Sa Mär 11, 2006 21:39
Beiträge: 3
Wohnort: Berlin
Bin gerade am basteln eines 3d sternensystems zum rumfliegen und benutze eine skybox die ich mit hilfe von blending durchsichtig mache. Doch nach dem ausschalten wird trotzdem alles andere auch geblendet(Transparent)! Habe auch schon alles ans ende der schleife gepackt was ich blende doch wieso funzt das abschalten nicht :?: Mache ich da was grob falsch :?:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 26, 2006 15:05 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
wie schaltest du denn ab?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 26, 2006 15:17 
Offline
DGL Member

Registriert: Sa Mär 11, 2006 21:39
Beiträge: 3
Wohnort: Berlin
Schau hier, es ist etwas durcheinander. Oben wird die transparente skybox gebaut, und unten siehst du meine mainloop.

Code:
  1.  glEnable(GL_BLEND);           //Hier baue ich meinen hintergrund
  2.  glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA);
  3.  glBindTexture(GL_TEXTURE_2D,Tex2);
  4.  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
  5.  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
  6.  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  7.  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  8.  glBegin(GL_QUADS);
  9.   glVertex3f( -1000, -1000, -1010); glTexCoord2f(0,0);
  10.   glVertex3f( -1000,  1000, -1010); glTexCoord2f(4,0);
  11.   glVertex3f(  1000,  1000, -1010); glTexCoord2f(4,4);
  12.   glVertex3f(  1000, -1000, -1010); glTexCoord2f(0,4);
  13.  glEnd;
  14.  ...
  15.  ...
  16.  glDisable(GL_BLEND);
  17.  
  18.  
  19. procedure TForm1.ApplicationEventsIdle(Sender: TObject; var Done: Boolean);
  20. begin
  21.  wglMakeCurrent(DC, HRC);
  22.  inc(FPS);
  23.  // Bewege;
  24.  FBewegung.Rotate( CPX, CPY, HW, HH, RotateX, RotateY);
  25.  Form1.Caption:=Floattostr(RotateX) + '        ' + Floattostr(RotateY)+
  26.         '           '+ IntToStr(RealFPS); //Anzeige der dreh winkel
  27.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  28.   glClearColor(0,0,0,0);
  29.   glMatrixMode(GL_MODELVIEW);//GL_MODELVIEW/ GL_PROJECTION/ GL_TEXTURE
  30.   glDepthFunc( GL_LEQUAL );
  31.   glLoadIdentity;
  32.   FBewegung.Anzeige; //Soll ne 2D anzeige für geschwindigkeit und so ein zeug
  33. // Move and Rotate Scene
  34.   glRotated(RotateX, 0,1,0);
  35.   glRotated(RotateY, 1,0,0);
  36.  //Draw Scene
  37.   glPushMatrix;   //Es werde Licht
  38.    glEnable(GL_LIGHTING);
  39.    glEnable(GL_LIGHT0);
  40.    glLightfv(GL_LIGHT0, GL_AMBIENT, @AMBIENT);
  41.    glLightfv(GL_LIGHT0, GL_POSITION, @POSITION);
  42.   glPopMatrix;
  43.   glPushMatrix; //Meine modelle die irgenwo herrumschwirren (MS3D)
  44. //   FModelle.Einordnen;
  45.   glPopMatrix;
  46.   glPushMatrix;
  47.    FStars.Universum; //Hier entsteht der hintergrund den ich oben angezeigt habe
  48.   glPopMatrix;
  49.   SwapBuffers(DC);
  50.   wglMakeCurrent(0, 0);
  51.   Done:=False;
  52. end;
  53.  


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 26, 2006 20:29 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
ich verstehe nicht ganz warum der hintergrund zuletzt gezeichnet wird - wird er vielleicht über oder vo alles gezeichnet, so daß nichts zu sehen bleibt? ist das was man sehen soll denn bei deaktiviertem hintergrund überhaupt zu sehen bzw. wirklich vor der kamera?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 26, 2006 20:38 
Offline
DGL Member

Registriert: Mi Aug 23, 2006 10:27
Beiträge: 42
einzig was mir spontan einfällt:

1. kann es sein, dass bei wiederherrstellen der matrix auch blend gesetzt wird? eher unwahrscheinlich, war aber so ein gedanke.

2. aus dem tutorial kann ich mich an einen tipp erinnern: alle blend effekte immer zuletzt. also erst die normale szene, erst dann mit blend effekten anfangen.


und das enable aus zeile1 ist doch gewollt, oder?
evtl hast du aus versehen in deinen anderen anwendungen noch ein enable zu stehen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 26, 2006 23:38 
Offline
DGL Member

Registriert: Sa Mär 11, 2006 21:39
Beiträge: 3
Wohnort: Berlin
Das ist das einzige in einer seperaten unit die Sterne heißt wie man in der mainloop mit FStars.Universum sehen kann. Zurzeit ist es das einzige blending das ich verwende.DGS hat recht alles was man blendet oder mit dem effekt zeichnet sollte zum schluß gezeichnet werden.Kann es noch an etwas anderem liegen :?: Die restliche unit macht nur bewegungs berechnungen die später gebaut werden und nur grundfunktionen besitzen die nichts mit OGL zu tun haben sowie Create, Destroy und Resize funktion. :cry:


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 » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]