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

Aktuelle Zeit: Fr Jul 18, 2025 15:59

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Feb 13, 2008 15:51 
Offline
DGL Member

Registriert: Di Apr 24, 2007 17:03
Beiträge: 15
Hi Community.

Ich sitze mal wieder hier und bin fast am Verzweifeln.

und zwar habe ich mich mal wieder an OPenGL versucht, und bin nun mal wieder bei den Texturen.

Code:
  1. procedure TForm1.SetupGL;
  2. begin
  3.   glClearColor(0.3, 0.5, 0.6, 0.0);  //Hintergrundfarbe
  4.  
  5.   glenable(GL_Texture_2d);
  6.  
  7.   glenable(gl_alpha_test);
  8.   glAlphaFunc(gl_greater,0.1);
  9. end;
  10.  
  11. procedure TForm1.FormCreate(Sender: TObject);
  12.  
  13.    procedure initgame;
  14.    begin
  15.       textures := ttexturemanager.Create;
  16.       textures.AddTexturesInDir('Texture','*.tga');
  17.  
  18.       timer1.Enabled := true;
  19.    end;
  20.  
  21. begin
  22.   DC:= GetDC(Handle);
  23.   if not InitOpenGL then Application.Terminate;
  24.   RC:= CreateRenderingContext( DC,
  25.                                [opDoubleBuffered],
  26.                                32,
  27.                                24,
  28.                                0,0,0,
  29.                                0);
  30.   ActivateRenderingContext(DC, RC);
  31.   SetupGL;
  32.   initgame;
  33. end;
  34.  
  35. procedure TForm1.FormResize(Sender: TObject);
  36. begin
  37.  
  38.   glViewport(0, 0, ClientWidth, ClientHeight);
  39.   glMatrixMode(GL_PROJECTION);
  40.   glLoadIdentity;
  41.   gluPerspective(45.0, ClientWidth/ClientHeight, NearClipping, FarClipping);    
  42.  
  43.   glMatrixMode(GL_MODELVIEW);
  44.   glLoadIdentity;
  45. end;
  46.  
  47. procedure TForm1.FormDestroy(Sender: TObject);
  48. begin
  49.   DeactivateRenderingContext;
  50.   DestroyRenderingContext(RC);
  51.   ReleaseDC(Handle, DC);
  52. end;
  53.  
  54. procedure TForm1.Render;
  55. begin
  56.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  57.  
  58.   glMatrixMode(GL_PROJECTION);
  59.   glLoadIdentity;
  60.  
  61.   glortho(0,640,480,0,0,100);
  62.  
  63.  glcolor3f(1,1,1);
  64.   textures.BindTexture('582.tga');
  65.  
  66.   glbegin(gl_quads);
  67.      gltexCoord2f(0,0);glvertex2f(FX,FY);
  68.      gltexCoord2f(1,0);glvertex2f(FX + Fwidth,FY);
  69.      gltexCoord2f(1,1);glvertex2f(FX + Fwidth,FY + Fheight);
  70.      gltexCoord2f(0,1);glvertex2f(FX,FY + Fheight);
  71.   glend;
  72.  
  73.   SwapBuffers(DC);
  74. end;
  75.  
  76. procedure TForm1.Timer1Timer(Sender: TObject);
  77. begin
  78.   render;
  79. end;
  80.  
  81. end.


So das ist mal das Wichtigste denke ich.

Nun sehe ich ein tolles Quad, mit Texturen drauf, nur das jetzt alles was eigentlich Durchsichtig sein sollte schwarz ist o.O
Nun ist meine Frage: wo ist der Fehler?

An den Texturen kann es nicht liegen, da ich diese aus einem alten Projekt genommen habe wo sie bereits einwandfrei funktionieren.

Der einzigste Unterschied ist, das ich damals einen anderen Loader genommen habe (gl_bitmap) oder so und mir jetzt den Texturemanager aus dem Bomberman tutorial zugelegt habe.
Kann das an diesem liegen das meine Transparenz nicht will.
Oder habe ich einen anderen Fehler begangen?

Danke schonmal für Hilfe
Delpher


// Edit Lossy: Code durch Pascaltags ersetzt


Zuletzt geändert von Delpher am Do Feb 21, 2008 17:25, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Feb 13, 2008 17:05 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du hast doch gar kein Blending aktiviert. Wie soll da was durchsichtig werden?

Außerdem solltest du in die Modelview-Matrix wechseln vorm zeichnen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Feb 13, 2008 17:07 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Durch den Alphatest. Bist du sicher, dass der Texturload den Alphatest nicht deaktiviert? Und lädt der Texturmanager auch den Alphakanal richtig?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Feb 13, 2008 17:29 
Offline
DGL Member

Registriert: Di Apr 24, 2007 17:03
Beiträge: 15
:shock: ahh der texturemanager hatte wirklich ein rießiges GLdisable(gl_alpha_test) dastehen.

Also ne wer macht den sowas^^

Danke für die HIlfe =)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 14, 2008 11:51 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Den Alphatest hatte ich großzügigerweise übersehn. ;)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 21, 2008 17:24 
Offline
DGL Member

Registriert: Di Apr 24, 2007 17:03
Beiträge: 15
Hallihallo.

Ich bin es mal wieder.
Wollte jetzt keinen neuen Thread aufmachen, da es wieder um Texturen und deren Transparenz geht.
Und zwar bin ich momentan auf der Suche nach teilweiser Transparenz, also so das meine Textur Halbdurchsichtig wird.

Nun meine Frage: Kann ich das auch irgendwie über den ALpha Test realisieren oder muss ich mich da erst nochmal ins Blending einarbeiten?

Habe auch bereits versucht die Textur in Gimp einfach auf Halbtransparent zu setzen, aber dann wird sie einfach nicht mehr erkannt von OpenGL.

Schonmal Danke für alle Antworten
Delpher


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 21, 2008 17:28 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Blending

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


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


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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]