Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Frage zu Texturen in Stormy's openGL tutorial

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 12.01.2007, 17:22    Titel: Frage zu Texturen in Stormy's openGL tutorial Antworten mit Zitat

Ich arbeite mich grade durch Stormy's OpenGL Tutorial durch (es ist Spitze!)
und bin beim Kapitel Texturen anzeigen angelangt. Ich habe mir die Grafik "grassflaeche.bmp" und auhc die genannten Laderoutinen runtergeladen und alles in den richtigen Ordnergesteckt. Wenn ich nun das Programm ausführe bleibt der Bildschirm jedoch schwarz und völlig rasenfrei. Was ist falsch? Ich hab es soweit ich weiss 1:1 aus dem Tutorial übernommen. Ich benutze Freebasic 0.16. Hier ist der Code:
Code:
' Einbindung von OpenGL
#Include Once "GL/gl.bi"
#Include Once "GL/glu.bi"
#Include "inc/2d_opengl.bi"
' Festlegung der Konstanten, die für den Bildschirm wichtig sind
Const scrnX = 640
Const scrnY = 480
Const depth = 32
Const fullscreen = &h0           ' Vollbildmodus ( &h0 = aus, &h1 = an )

ScreenRes scrnX,scrnY,depth,,&h2 Or fullscreen

' Konfiguration von OpenGL
glMatrixMode(GL_PROJECTION)      ' Matrix definieren
glLoadIdentity
glViewport(0,0,scrnX,scrnY)      ' Achse festlegen
glOrtho(0,scrnX,scrnY,0,-128,128)
glMatrixMode(GL_MODELVIEW)       ' Deaktivierung des Rendern der Rückseiten
glEnable(GL_CULL_FACE)
glCullFace(GL_BACK)
glEnable GL_TEXTURE_2D           ' Texturen aktivieren
glLoadIdentity
glEnable(GL_DEPTH_TEST)          ' Tiefentest
glDepthFunc(GL_LESS)
glEnable(GL_ALPHA_TEST)          ' Alphatest
glAlphaFunc(GL_GREATER, 0.1)

Do
Dim Textur As GFXType   ' Textur definieren
Call load_texture("grassflaeche.bmp", Textur)   ' Grasstextur laden

' Eigentlicher Zeichenteil:

glBindTexture GL_TEXTURE_2D, Textur.Handle   ' Texture binden

glTranslatef 100,100,0       ' z = 0

glBegin GL_QUADS
   glTexCoord2f 0, 0
   glVertex2i  0, 50    '' LINKS UNTEN  (1. Koordinate)
   glTexCoord2f 1, 0
   glVertex2i 50, 50    '' RECHTS UNTEN (2. Koordinate)
   glTexCoord2f 1, 1
   glVertex2i 50,  0    '' RECHTS OBEN  (3. Koordinate)
   glTexCoord2f 0, 1
   glVertex2i  0,  0    '' LINKS OBEN   (4. Koordinate)
glEnd


glBindTexture GL_TEXTURE_2D, 0      ' Texture freigeben

glBindTexture GL_TEXTURE_2D, 0      ' Texture freigeben 

glClear  GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
glFlush ' Verarbeitung der Befehle
Flip
ScreenSync
 
Loop Until MultiKey(&h01) ' Verlasse die Schleife sobald Escape gedrückt wird

Danke schonmal im vorraus
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 12.01.2007, 19:23    Titel: Antworten mit Zitat

Hi,
die Reihenfolge der Anweisungen ist etwas anders:
Code:
...
...
Dim Textur As GFXType   ' Textur definieren
Call load_texture("grass.tga", Textur)   ' Grasstextur laden
glBindTexture GL_TEXTURE_2D, Textur.Handle   ' Texture binden
' Eigentlicher Zeichenteil:
  glClear  GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
  glTranslatef 100,100,0       ' z = 0
  glBegin GL_QUADS
    glTexCoord2f 0, 0
    glVertex2i 0, textur.height            '' LINKS UNTEN  (1. Koordinate)
    glTexCoord2f 1, 0
    glVertex2i textur.width, textur.height '' RECHTS UNTEN (2. Koordinate)
    glTexCoord2f 1, 1
    glVertex2i textur.width, 0             '' RECHTS OBEN  (3. Koordinate)
    glTexCoord2f 0, 1
    glVertex2i 0,  0                       '' LINKS OBEN   (4. Koordinate)
  glEnd
  glLoadIdentity
  glFlush ' Verarbeitung der Befehle
glBindTexture GL_TEXTURE_2D, 0      ' Texture freigeben
Do
  Flip
  ScreenSync
 
Loop Until Multikey(&h01) ' Verlasse die Schleife sobald Escape gedrückt wird

Ich hatte keine grassflaeche.bmp daher hab ich grass.tga benutzt.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 12.01.2007, 20:46    Titel: Antworten mit Zitat

Mit deinem Code bekomme ich genau das selbe Problem. Hier:
Code:

' Einbindung von OpenGL
#Include Once "GL/gl.bi"
#Include Once "GL/glu.bi"
#Include "inc/2d_opengl.bi"
' Festlegung der Konstanten, die für den Bildschirm wichtig sind
Const scrnX = 640
Const scrnY = 480
Const depth = 32
Const fullscreen = &h0           ' Vollbildmodus ( &h0 = aus, &h1 = an )

ScreenRes scrnX,scrnY,depth,,&h2 Or fullscreen

' Konfiguration von OpenGL
glMatrixMode(GL_PROJECTION)      ' Matrix definieren
glLoadIdentity
glViewport(0,0,scrnX,scrnY)      ' Achse festlegen
glOrtho(0,scrnX,scrnY,0,-128,128)
glMatrixMode(GL_MODELVIEW)       ' Deaktivierung des Rendern der Rückseiten
glEnable(GL_CULL_FACE)
glCullFace(GL_BACK)
glEnable GL_TEXTURE_2D           ' Texturen aktivieren
glLoadIdentity
glEnable(GL_DEPTH_TEST)          ' Tiefentest
glDepthFunc(GL_LESS)
glEnable(GL_ALPHA_TEST)          ' Alphatest
glAlphaFunc(GL_GREATER, 0.1)

Dim Textur As GFXType   ' Textur definieren
Call load_texture("texture_grass.jpg", Textur)   ' Grasstextur laden
glBindTexture GL_TEXTURE_2D, Textur.Handle   ' Texture binden
' Eigentlicher Zeichenteil:
  glClear  GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
  glTranslatef 100,100,0       ' z = 0
  glBegin GL_QUADS
    glTexCoord2f 0, 0
    glVertex2i 0, textur.height            '' LINKS UNTEN  (1. Koordinate)
    glTexCoord2f 1, 0
    glVertex2i textur.Width, textur.height '' RECHTS UNTEN (2. Koordinate)
    glTexCoord2f 1, 1
    glVertex2i textur.Width, 0             '' RECHTS OBEN  (3. Koordinate)
    glTexCoord2f 0, 1
    glVertex2i 0,  0                       '' LINKS OBEN   (4. Koordinate)
  glEnd
  glLoadIdentity
  glFlush ' Verarbeitung der Befehle
glBindTexture GL_TEXTURE_2D, 0      ' Texture freigeben
Do
  Flip
  ScreenSync
 
Loop Until MultiKey(&h01) ' Verlasse die Schleife sobald Escape gedrückt wird

_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 12.01.2007, 21:50    Titel: Antworten mit Zitat

Hast du eine andere '2d_opengl.bi' (' Generic loader for tga, bmp and png) als ich?
Mit
ogl_load_bmp.bi
ogl_load_png.bi
ogl_load_tga.bi
kann die bei mir nur Bilder aus bmp, png und tga Dateien laden.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 12.01.2007, 22:40    Titel: Antworten mit Zitat

Zitat:
Ich arbeite mich grade durch Stormy's OpenGL Tutorial durch (es ist Spitze!)

Schön, dass es dir gefällt! lächeln

Zum Topic:
Ich kann volta zustimmen. Ich habe keinen JPG-Loader in meiner *.bi eingebaut, so dass du dich nur mit bmp und tgas begnügen müsstest. Sollte aber kein Beinbruch sein ! zwinkern

Alle im Tutorial vorkommenden Texturen und Beispiele kannst du hier runterladen: http://other.storm-master.de/ogl/examples.zip
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 12.01.2007, 22:56    Titel: Antworten mit Zitat

ok, dass erklaert alles
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 12.01.2007, 23:04    Titel: Antworten mit Zitat

doppelpost, ich weiss srry (ja ich kenne die editfunktion, mache aber in diesem fall absichtlich einen Doppelpost)

@Stormy: Dann ist die Reihenfolge der Befehle in der Codezusammenfassung zum Texturenladen aber falsch, oder?

Code:

...'Ich habe natuerlich den Initialisierungskrams drin und die anderen Sachen klappen ja auch
dim Textur as GFXType   ' Textur definieren
call load_texture("C:\WINDOWS\Desktop\examples\resources\examples\grass.tga", Textur)   ' Grasstextur laden

' Eigentlicher Zeichenteil:

glBindTexture GL_TEXTURE_2D, Textur.Handle   ' Texture binden

glTranslatef 100,100,0       ' z = 0
   glBegin GL_QUADS
   glTexCoord2f 0, 0
   glVertex2i  0, 50    '' LINKS UNTEN  (1. Koordinate)
   glTexCoord2f 1, 0
   glVertex2i 50, 50    '' RECHTS UNTEN (2. Koordinate)
   glTexCoord2f 1, 1
   glVertex2i 50,  0    '' RECHTS OBEN  (3. Koordinate)
   glTexCoord2f 0, 1
   glVertex2i  0,  0    '' LINKS OBEN   (4. Koordinate)
glEnd
glLoadIdentity

glBindTexture GL_TEXTURE_2D, 0      ' Texture freigeben


Dieser COde erzeugt bei mir wie gesagt, auch mit TGA nur ein leeres Fenster
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 13.01.2007, 13:04    Titel: Antworten mit Zitat

Hallo alfonsospringer,
du musst die Zeichenbefehle innerhalb der Loop-Schleife setzen. Probier diesen Quellcode mal aus. Du musst ggf. den Pfad zur Textur ändern:

Code:
' Einbindung von OpenGL
#Include Once "GL/gl.bi"
#Include Once "GL/glu.bi"
#Include "inc/2d_opengl.bi"
' Festlegung der Konstanten, die für den Bildschirm wichtig sind
Const scrnX = 640
Const scrnY = 480
Const depth = 32
Const fullscreen = &h0           ' Vollbildmodus ( &h0 = aus, &h1 = an )

ScreenRes scrnX,scrnY,depth,,&h2 Or fullscreen

' Konfiguration von OpenGL
glMatrixMode(GL_PROJECTION)      ' Matrix definieren
glLoadIdentity
glViewport(0,0,scrnX,scrnY)      ' Achse festlegen
glOrtho(0,scrnX,scrnY,0,-128,128)
glMatrixMode(GL_MODELVIEW)       ' Deaktivierung des Rendern der Rückseiten
glEnable(GL_CULL_FACE)
glCullFace(GL_BACK)
glEnable GL_TEXTURE_2D           ' Texturen aktivieren
glLoadIdentity
glEnable(GL_DEPTH_TEST)          ' Tiefentest
glDepthFunc(GL_LESS)
glEnable(GL_ALPHA_TEST)          ' Alphatest
glAlphaFunc(GL_GREATER, 0.1)

Dim Textur As GFXType   ' Textur definieren
load_texture("resources/examples/grass.tga", Textur)   ' Grasstextur laden
glBindTexture GL_TEXTURE_2D, Textur.Handle   ' Texture binden
Do

' Eigentlicher Zeichenteil:
  glClear  GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
  glTranslatef 100,100,0       ' z = 0
  glBegin GL_QUADS
    glTexCoord2f 0, 0
    glVertex2i 0, textur.height            '' LINKS UNTEN  (1. Koordinate)
    glTexCoord2f 1, 0
    glVertex2i textur.Width, textur.height '' RECHTS UNTEN (2. Koordinate)
    glTexCoord2f 1, 1
    glVertex2i textur.Width, 0             '' RECHTS OBEN  (3. Koordinate)
    glTexCoord2f 0, 1
    glVertex2i 0,  0                       '' LINKS OBEN   (4. Koordinate)
  glEnd
  glLoadIdentity
  glFlush ' Verarbeitung der Befehle
  Flip
  ScreenSync
 
Loop Until MultiKey(&h01) ' Verlasse die Schleife sobald Escape gedrückt wird

glBindTexture GL_TEXTURE_2D, 0      ' Texture freigeben

_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 13.01.2007, 13:29    Titel: Antworten mit Zitat

ok klappt - danke
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz