Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

1

06.08.2008, 21:41

[Erledigt] opengl 2d rending

bei mir wird das bild nicht angezeigt

Quellcode

1
2
3
4
5
6
7
8
9
10
GLvoid ReSizeGLScene(GLsizei width, GLsizei height,bool mode_2d){
  if (height == 0)    
    height = 1;    

  glViewport(0, 0, width, height);
  glMatrixMode(GL_PROJECTION); 
  glLoadIdentity(); 
  if (mode_2d)
    glOrtho(0,width,0,height,0,128);
}

i benutzt glOrtho um eine 2d umgebung erstellen

und jetzt bin ich mir nicht sicher ob das render richtig is

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
GLvoid RenderTexture(GLuint Texture,int x,int y,int z,int width,int height,int depth){
    glPushMatrix();
    glTranslatef(x, y, z);
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, Texture);
    glBegin(GL_QUADS);
        glTexCoord2f(0,0); glVertex3f(-width, -height, -depth);
        glTexCoord2f(1,0); glVertex3f(+width, -height, -depth);
        glTexCoord2f(1,1); glVertex3f(+width, +height, -depth);
        glTexCoord2f(0,1); glVertex3f(-width, +height, -depth);
    glEnd();
    glPopMatrix();
}

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

06.08.2008, 22:00

Schau mal hier:

http://wiki.delphigl.com/index.php/Tutorial_Matrix2

Ich vermute mal, dass du die Koordinaten falsch setzt.

Zitat

glTexCoord2f(0,0); glVertex3f(-width, -height, -depth);

So wie ich das sehe, muss für den linke, obere Ecke glVertex3f (-width,height,depth) heissen.

Arbeite nicht mit OGL, weiss darum nicht genau, wie das Koordinatensystem aussieht, aber ich denke mal, dass das ähnlich sein wird, wie in DX. ;)

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

3

07.08.2008, 00:48

so hab es hin bekommen das er etwas anzeigt aber jetzt is das problem dass das bild zu groß ist wenn ich aber due z-kooar. z.b. auf 2.0 setze is das bild wieder weg

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

07.08.2008, 07:47

Ist ja auch klar, solange du keine "echte" Projektionsmatrix benutzt.
Und gib dir mal mehr Mühe beim Schreiben deiner Beiträge, das liest sich ja wie ausgek****!

Powerpaule

Treue Seele

Beiträge: 162

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

5

07.08.2008, 11:21

Wenn das Bild zu gross ist aender doch einfach Hoehe und Breite!

Und wenn du es auf der z-Achse verschiebst wird es immer gleich gross bleiben solange es vor der Kamera, hinter der Kamera ist dann nicht mehr sichtbar. Du nutzt ja nur eine Paralleleperspektive.

Anonymous

unregistriert

6

07.08.2008, 11:22

Powerpaule
Also ich hab unter meinem w3m german umlauts drin, du nicht?

Powerpaule

Treue Seele

Beiträge: 162

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

7

07.08.2008, 11:45

Zitat von »"unsigned long"«

Powerpaule
Also ich hab unter meinem w3m german umlauts drin, du nicht?


Ich hab' hier 'ne amerikanische Tastatur vor mir, da geht's dann halt am schnellsten wenn ich einfach "ae" statt ä schreibe ;)

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

8

08.08.2008, 15:21

ok hab das problem jetzt gelöst
hab gluOrtho2D(0,640,480,0) benutzt

Quellcode

1
2
3
4
//init
.....
gluOrtho2D(0,640,480,0);
....


und damit die bilder nicht so groß werden
die breite und höhe duch 2 geteilt

Quellcode

1
2
3
4
5
6
7
8
9
10
void Render2DTexture(uint Texture,int x,int y,int width,int height){
    glTranslatef(x+width/2,y+height/2,0);
    glBindTexture(GL_TEXTURE_2D,Texture);
    glBegin(GL_QUADS);
        glTexCoord2f(0.0f,1.0f);glVertex2f(-width/2, height/2); 
        glTexCoord2f(1.0f,1.0f);glVertex2f( width/2, height/2); 
        glTexCoord2f(1.0f,0.0f);glVertex2f( width/2,-height/2); 
        glTexCoord2f(0.0f,0.0f);glVertex2f(-width/2,-height/2); 
    glEnd();
}


jetzt werden die grafiken richtig angezeigt

Werbeanzeige