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

Aktuelle Zeit: Fr Jul 18, 2025 16:33

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mo Mär 13, 2006 17:41 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
Ich arbeite ja gerade daran, dass meine "Engine" Himmel anzeigen kann ^^. Der Himmel soll vor dem Terrain usw. gerendert werden, aber immer ganz hinten sein. Ich hab's schon so versucht:

Code:
  1. glDisable(GL_DEPTH_TEST);
  2. glDepthMask(0);


das ging dann auch, wenn ich ein Viereck gezeichnet hab, dass größer war als der Bildschirm.
Da ich aber will, dass die Textur den Bildschirm ausfüllt, hab ich anschließend

Code:
  1. glOrtho(0,1,0,1,-1,1);


dazu. Tja, und danach geht's aus irgendeinem Grund nicht mehr...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 13, 2006 18:10 
Offline
DGL Member

Registriert: Mi Dez 15, 2004 20:36
Beiträge: 454
Wohnort: Wien, Österreich
Code:
  1.   glViewport(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
  2.   glMatrixMode(GL_PROJECTION);
  3.     glLoadIdentity();
  4.     glOrtho(0,SCREEN_WIDTH,0,SCREEN_HEIGHT,-10,10); // go to 2d mode
  5.   glMatrixMode(GL_MODELVIEW);
  6.     glLoadIdentity();
  7.   glDisable(GL_DEPTH_TEST);
  8.   glDisable(GL_BLEND);
  9.   FBackGroundTexture.Bind();
  10.   glColor3f(1,1,1);
  11.   glLoadIdentity();
  12.   glScalef(SCREEN_WIDTH,SCREEN_HEIGHT,1);
  13.     glBegin(GL_QUADS);
  14.       glTexCoord2f(0,0); glVertex2f(0,0);
  15.       glTexCoord2f(1,0); glVertex2f(1,0);
  16.       glTexCoord2f(1,1); glVertex2f(1,1);
  17.       glTexCoord2f(0,1); glVertex2f(0,1);
  18.     glEnd();
  19.  

_________________
"Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 13, 2006 18:42 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
Jetzt zeigt er komischerweise die Textur nicht mehr an, sondern nur einen blauen bildschirm...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 13, 2006 18:49 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Der Code kann so auch net gehen. Das Letzte glLoadIdentity muss denk ich mal ganz ans ende. Und dann musst du vermutlich auch wieder aus dem Orthomodus zurückkehren.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 13, 2006 20:59 
Offline
DGL Member

Registriert: Mi Dez 15, 2004 20:36
Beiträge: 454
Wohnort: Wien, Österreich
Code funct sicherlich, ist schliesslich aus dem Ballonkiller. Wenn du jetzt etwas in 3D darstellen möchtest, dann musst du via gluPerspective die Projection-Matrix ändern.

Code:
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, dglOpenGl, glBitmap;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     procedure FormCreate(Sender: TObject);
  12.     procedure FormDestroy(Sender: TObject);
  13.     procedure FormPaint(Sender: TObject);
  14.     procedure FormKeyDown(Sender: TObject; var Key: Word;
  15.       Shift: TShiftState);
  16.     procedure FormResize(Sender: TObject);
  17.   private
  18.     { Private declarations }
  19.   public
  20.     { Public declarations }
  21.     myRc, myDc : Cardinal;
  22.     GL_Texture:TglBitmap2D;
  23.     procedure InitGl();
  24.     procedure DeInitGl();
  25.     procedure glRender();
  26.   end;
  27.  
  28. var
  29.   Form1: TForm1;
  30.  
  31. implementation
  32.  
  33. {$R *.dfm}
  34.  
  35. procedure TForm1.DeInitGl;
  36. begin//
  37.   DeactivateRenderingContext();
  38.   DestroyRenderingContext(myRc);
  39.   ReleaseDC(Handle,myDc);
  40. end;
  41.  
  42. procedure TForm1.FormCreate(Sender: TObject);
  43. begin//
  44.   OnResize := nil;
  45.  
  46.   InitGl();
  47.   Caption := 'OpenGL VCL Template by sniper (haris_201@hotmail.com)';
  48.   KeyPreview := True;
  49.  
  50.   GL_Texture := TglBitmap2D.Create();
  51.   GL_Texture.BuildMipMaps := False;
  52.   GL_Texture.LoadFromFile('Back.bmp');
  53.   GL_Texture.FreeDataAfterGenTexture := True;
  54.   GL_Texture.GenTexture();
  55.  
  56.   OnResize := FormResize;
  57.   Resize();
  58. end;
  59.  
  60. procedure TForm1.FormDestroy(Sender: TObject);
  61. begin//
  62.   GL_Texture.Free();
  63.   DeInitGl();
  64. end;
  65.  
  66. procedure TForm1.InitGl;
  67. begin//
  68.  InitOpenGL();
  69.  myDc := GetDC(Handle);
  70.  myRc := CreateRenderingContext(myDc,[opDoubleBuffered],24,16,8,0,0,0);
  71.  ActivateRenderingContext(myDc,myRc);
  72.  glClearColor(0, 0,0, 0);
  73.  glShadeModel(GL_SMOOTH);
  74.  glClearDepth(1.5);
  75.  glDisable(GL_DEPTH_TEST);
  76.  glDepthFunc (GL_LEQUAL);
  77.  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
  78.  glEnable(GL_TEXTURE_2D);
  79. end;
  80.  
  81. procedure TForm1.FormPaint(Sender: TObject);
  82. begin
  83.   //glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  84.   // TODO : Draw Hier
  85.   glRender();
  86.   // End Drawing
  87.   SwapBuffers(myDc);
  88. end;
  89.  
  90. procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  91.   Shift: TShiftState);
  92. begin
  93.   if Key=27 then Close();
  94. end;
  95.  
  96. procedure TForm1.FormResize(Sender: TObject);
  97. begin//
  98.   if (ClientHeight=0) then
  99.   begin
  100.     ClientHeight := 1;
  101.   end;
  102.   glViewport(0, 0, ClientWidth, ClientHeight);
  103.   glMatrixMode(GL_PROJECTION);
  104.   glLoadIdentity();
  105.   // for 2d
  106.   glOrtho(0, ClientWidth, ClientHeight,0, -10,10);
  107.   // for 3d
  108.   //gluPerspective(45, Width/Height, 0.1, 1000);
  109.   glMatrixMode(GL_MODELVIEW);
  110.   glLoadIdentity();
  111.  
  112.   FormPaint(nil);
  113. end;
  114.  
  115. procedure TForm1.glRender();
  116. begin
  117.   GL_Texture.Bind();
  118.  
  119.   glLoadIdentity();
  120.   //glTranslatef( ClientWidth/2 - GL_Texture.Width/2, ClientHeight/2 - GL_Texture.Height/2, 0 );
  121.   //glScalef(GL_Texture.Width, GL_Texture.Height, 1);
  122.   glScalef( ClientWidth, ClientHeight, 1 );
  123.   glBegin(GL_QUADS);
  124.   glTexCoord2f(0,0);
  125.   glVertex2f(0,0);
  126.   glTexCoord2f(1,0);
  127.   glVertex2f(1,0);
  128.   glTexCoord2f(1,1);
  129.   glVertex2f(1,1);
  130.   glTexCoord2f(0,1);
  131.   glVertex2f(0,1);
  132.   glEnd();
  133. end;
  134.  
  135. end.

_________________
"Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump


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