|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
rudolf gesperrt
Anmeldungsdatum: 24.12.2006 Beiträge: 37
|
Verfasst am: 24.12.2006, 12:49 Titel: Für Opengl Texture aus einem Grafikbuffer unter 0.17 |
|
|
Der Grafikbuffer hat sich mit 0.17 verändert.
Ich kann keine Texture in Opengl aus dem Buffer mit Version 0.17 darstellen.
Irgendwie hat sich das Format verändert.
Ich such ein funktionierendes Beispiel, Grafik aus dem neuen Buffer lesen und als Texture in Opengl darzustellen.
MFG |
|
Nach oben |
|
|
Stormy
Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
|
rudolf gesperrt
Anmeldungsdatum: 24.12.2006 Beiträge: 37
|
Verfasst am: 24.12.2006, 13:30 Titel: |
|
|
Hallo Stormy, wo finde ich deine Signatur, wo anklicken?
MFG |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
rudolf gesperrt
Anmeldungsdatum: 24.12.2006 Beiträge: 37
|
Verfasst am: 24.12.2006, 13:59 Titel: |
|
|
Zitat: |
Bei den ZIP-Archiven findest du unter anderem einen Grafiklader für TGA und BMP.
|
Wo finde ich die Ziparchive? Danke.
MFG |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 24.12.2006, 14:24 Titel: |
|
|
_Lesen_, _denken_, _nochmal_ _lesen, dann posten.
Im Tutorial. _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 24.12.2006, 15:20 Titel: |
|
|
Allerdings steht dort nicht, wie man einen Grafikbuffer von FB in OpenGL anzeigen/laden kann. Genau so eine Funktion suche ich auch im Moment. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.12.2006, 15:35 Titel: |
|
|
dazu steht was in unserer wunderbaren befehlsreferenz... einfach im fb-teil unter "woher bekomme ich die aktuelle fb-version und referenz?" vorbeischaun. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
rudolf gesperrt
Anmeldungsdatum: 24.12.2006 Beiträge: 37
|
Verfasst am: 24.12.2006, 15:55 Titel: |
|
|
Zitat: |
dazu steht was in unserer wunderbaren befehlsreferenz... einfach im fb-teil unter "woher bekomme ich die aktuelle fb-version und referenz?" vorbeischaun.
|
In der Aktuellen Referenz für 0.17 steht noch die Opengltexture vom Vorgänger drin und nicht die mit den neuen Bitmap-Parametern.
Ist nur für 2d gedacht Sprite usw.
Ich suche die für 3d-Texture um Texturen aus einen Buffer zu lesen.
MFG |
|
Nach oben |
|
|
rudolf gesperrt
Anmeldungsdatum: 24.12.2006 Beiträge: 37
|
Verfasst am: 24.12.2006, 16:17 Titel: |
|
|
Hallo programmierer, was machst du so in Opengl mit Freebasic?
Ich fange seit kurzen mit Opengl an.
Probiere gerade aus, wie ich die 3d-Daten von Blender als Export "name.x"
in Freebasic einlesen kann um dann den Körper darzustellen.
Die Daten sind schön lesbar als ASCII-Zeichen dargestellt.
Die Farben von jeden Körperteil kann ich auch rauslesen, bloss muss ich jetzt die Farben in einem Imagebuffer packen um daraus eine Textur zu machen.
In Opengl geht nur : den Körper mit glcolor einzufärben oder den Körper eine Textur überziehen. Beides kann man leider nicht mischen, schade. Wollte nämlich den Untergrund als Grastextur machen.
Jetzt nehme ich für jedes Körperteil eine Textur.
Vielleicht weist du eine bessere Lösung.
Ich habe kein Programm gefunden, um den Komplexen Körper mit einer verschiedenen Farbigen Textur auszustatten; zb die Räder Rot und den Rumpf blau und den Kranausleger Grün.
MFG |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.12.2006, 16:23 Titel: |
|
|
...aber editeiren kannst du deine beiträge _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 24.12.2006, 21:26 Titel: |
|
|
Jojo hat Folgendes geschrieben: | dazu steht was in unserer wunderbaren befehlsreferenz... einfach im fb-teil unter "woher bekomme ich die aktuelle fb-version und referenz?" vorbeischaun. |
Seit wann steht in der Befehlsreferenz etwas über FB-Imagebuffer in OGL laden/anzeigen? Und wo steht das? _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 25.12.2006, 00:38 Titel: |
|
|
das steht ganz unten, bei den extras zur gfxlib. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
rudolf gesperrt
Anmeldungsdatum: 24.12.2006 Beiträge: 37
|
Verfasst am: 25.12.2006, 10:55 Titel: |
|
|
Zitat: |
das steht ganz unten, bei den extras zur gfxlib.
|
Ich hatte bereits oben schon geschrieben, das dieses Programm nicht mehr für den Bitmap-Buffer von 0.17 passt, das Datenformat hat sich im Header geändert...
MFG |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 25.12.2006, 11:59 Titel: |
|
|
programmierer hatte sich aber für Jojo's Antwort interessiert, wo _überhaupt_ was zu dem Buffer steht.
Hatte demzufolge nur indirekt was mit deiner Frage zu tun. _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
rudolf gesperrt
Anmeldungsdatum: 24.12.2006 Beiträge: 37
|
Verfasst am: 26.12.2006, 10:48 Titel: |
|
|
Hallo, habe hier ein Beispiel von Volta.
Code: |
#include "GL/gl.bi"
#include "GL/glu.bi"
Dim As GLFloat xrot, yrot, zrot
Dim As Gluint texture(1)
Dim As Integer wbreit, whoch
Screen 19, 32, , 2 '= GFX_OPENGL or GFX_NO_SWITCH
Screeninfo wbreit, whoch
Windowtitle "OpenGL 6 - Würfel mit Textur rotierend um 3 Achsen"
glViewport 0, 0, wbreit, whoch
glMatrixMode GL_PROJECTION
glLoadIdentity
gluPerspective 45.0, wbreit/whoch, 0.1, 100.0
glMatrixMode GL_MODELVIEW
glLoadIdentity
Dim As Byte Ptr img
img = ImageCreate (128,128) 'Image bilden
''-----------
'Bload "test.bmp",img
CIRCLE img,(60, 60), 23, RGB(0,255,0)
''-----------
Dim i As Integer
'rot und blau tauschen damit wir GL_RGBA benutzen können
For i = 4 To (128*128*4)+4 Step 4
Swap img[i],img[i+2]
Next
glGenTextures 1, @texture(0)
glBindTexture GL_TEXTURE_2D, texture(0)
glTexImage2D GL_TEXTURE_2D, 0, 3, 128, 128, 0, GL_RGBA, GL_UNSIGNED_BYTE, img +4
ImageDestroy img
glTexParameteri GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST
glTexParameteri GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST
glEnable GL_TEXTURE_2D
glShadeModel GL_SMOOTH
glClearColor 0.0, 0.0, 0.0, 0.5
glClearDepth 1.0
glEnable GL_DEPTH_TEST
glDepthFunc GL_LEQUAL
glHint GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST
Do
glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
glLoadIdentity
glTranslatef 0.0, 0.0, -5.0
glRotatef xrot,1.0 ,0.0 ,0.0
glRotatef yrot,0.0 ,1.0 ,0.0
glRotatef zrot,0.0 ,0.0 ,1.0
glBindTexture GL_TEXTURE_2D, texture(0)
'Würfel
glBegin GL_QUADS
'vorne
glTexCoord2f 0.0 , 0.0 : glVertex3f -1.0 , -1.0 , 1.0'unten links der Textur und des Würfels
glTexCoord2f 1.0 , 0.0 : glVertex3f 1.0 , -1.0 , 1.0'unten rechts der Textur und des Würfels
glTexCoord2f 1.0 , 1.0 : glVertex3f 1.0 , 1.0 , 1.0'oben rechts der Textur und des Würfels
glTexCoord2f 0.0 , 1.0 : glVertex3f -1.0 , 1.0 , 1.0'oben links der Textur und des Würfels
'hinten
glTexCoord2f 1.0 , 0.0 : glVertex3f -1.0 , -1.0 , -1.0'unten rechts der Textur und des Würfels
glTexCoord2f 1.0 , 1.0 : glVertex3f -1.0 , 1.0 , -1.0'oben rechts der Textur und des Würfels
glTexCoord2f 0.0 , 1.0 : glVertex3f 1.0 , 1.0 , -1.0'oben links der Textur und des Würfels
glTexCoord2f 0.0 , 0.0 : glVertex3f 1.0 , -1.0 , -1.0'unten links der Textur und des Würfels
'oben
glTexCoord2f 0.0 , 1.0 : glVertex3f -1.0 , 1.0 , -1.0'oben links der Textur und des Würfels
glTexCoord2f 0.0 , 0.0 : glVertex3f -1.0 , 1.0 , 1.0'unten links der Textur und des Würfels
glTexCoord2f 1.0 , 0.0 : glVertex3f 1.0 , 1.0 , 1.0'unten rechts der Textur und des Würfels
glTexCoord2f 1.0 , 1.0 : glVertex3f 1.0 , 1.0 , -1.0'oben rechts der Textur und des Würfels
'unten
glTexCoord2f 1.0 , 1.0 : glVertex3f -1.0 , -1.0 , -1.0'oben rechts der Textur und des Würfels
glTexCoord2f 0.0 , 1.0 : glVertex3f 1.0 , -1.0 , -1.0'oben links der Textur und des Würfels
glTexCoord2f 0.0 , 0.0 : glVertex3f 1.0 , -1.0 , 1.0'unten links der Textur und des Würfels
glTexCoord2f 1.0 , 0.0 : glVertex3f -1.0 , -1.0 , 1.0'unten rechts der Textur und des Würfels
'rechts
glTexCoord2f 1.0 , 0.0 : glVertex3f 1.0 , -1.0 , -1.0 'unten rechts der Textur und des Würfels
glTexCoord2f 1.0 , 1.0 : glVertex3f 1.0 , 1.0 , -1.0 'oben rechts der Textur und des Würfels
glTexCoord2f 0.0 , 1.0 : glVertex3f 1.0 , 1.0 , 1.0 'oben links der Textur und des Würfels
glTexCoord2f 0.0 , 0.0 : glVertex3f 1.0 , -1.0 , 1.0 'unten links der Textur und des Würfels
'links
glTexCoord2f 0.0 , 0.0 : glVertex3f -1.0 , -1.0 , -1.0 'unten links der Textur und des Würfels
glTexCoord2f 1.0 , 0.0 : glVertex3f -1.0 , -1.0 , 1.0 'unten rechts der Textur und des Würfels
glTexCoord2f 1.0 , 1.0 : glVertex3f -1.0 , 1.0 , 1.0 'oben rechts der Textur und des Würfels
glTexCoord2f 0.0 , 1.0 : glVertex3f -1.0 , 1.0 , -1.0 'oben links der Textur und des Würfels
glEnd
xrot += 0.03
yrot += 0.03
zrot += 0.03
Flip
Loop While Inkey$ = ""
End
|
Statt eine Bmp-Datei einzulesen habe ich einen Kreis mit Circle auf die Img gezeichnet.
Da jetzt aber der Img-Header (0.17) nicht mehr bis 4 geht, sondern bis 32 , müssen jetzt die Daten verschobern werden.
Das sieht man daran, das an der Kante vom Würfel die Headerbytes zu sehen sind.
Wie kann man jetzt die Bilddaten nach oben Verschieben?
MFG
Zitat: |
Habe die Lücke gefunden : img+4 in img+32 umgewandelt, funktioniert jetzt.
glTexImage2D GL_TEXTURE_2D, 0, 3, 128, 128, 0, GL_RGBA, GL_UNSIGNED_BYTE, img +4
glTexImage2D GL_TEXTURE_2D, 0, 3, 128, 128, 0, GL_RGBA, GL_UNSIGNED_BYTE, img +32
|
|
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 26.12.2006, 15:05 Titel: |
|
|
ebenso:
Code: | ...
Dim i As Integer
'rot und blau tauschen damit wir GL_RGBA benutzen können
For i = 32 To (128*128*4)+32 Step 4
Swap img[i],img[i+2]
Next
... |
( http://forum.qbasic.at/viewtopic.php?p=43419#43419 ) _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
|
|
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.
|
|