Wie kriege ich das mit den Texturen nur hin?

Status
Nicht offen für weitere Antworten.

magma

Mitglied
Ich versuche verzweifelt eine Texture auf ein Objekt zu bekommen.
Ich habe mir das Tutorial von http://www.jogl.info/ durchgelesen und die Programme auch laufen lassen was auch bis zur Lektion 4 funktioniert.
Ich musste allerdings einiges am Quellcode ändern damit das Programm läuft.

Was ich geändert habe bei Lektion 4.

In der Klasse Beispielszene

Ich nehme import net.java.games.jogl.*; raus dafür import javax.media.opengl.*; rein.

Ich bekomme bei
GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas(glcaps);
die Fehlermeldung createGLCanvas is undifiend for the type GLDrawableFactory

deshalb ersetze ich es durch
GLCanvas canvas = canvas = new GLCanvas();

In der Klasse BeispielszeneView

Ich ersetze wieder
import net.java.games.jogl.*;
und füge noch
import javax.media.opengl.glu.*;
ein.

Ich bekomme die Fehlermeödung
The type BeispielszeneView must implement the inherited abstract method
GLEventListener.init(GLAutoDrawable)
Ich ersetze also
GLDrawable durch GLAutoDrawable

Als nächstes ersetze ich
GLU glu = arg0.getGLU(); durch GLU glu = new GLU();


Bei
gl.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, light_pos);
bekomme ich die Fehlermeldung
The method glLightfv(int, int, float[], int)in the type GL is not applicable for
arguments (int, int, float)

Ich füge einen int wert hinzu
gl.glLightfv(GL.GL_LIGHT0, GL.GL_AMBIENT, light_color_am, 0);

Bei
gl.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT, mat_ambient);
das selbe.

Ich ersetze durch
gl.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT, mat_ambient, 0);

Dann erst laeuft das Programm.


Bei Lektion 5 ist es das selbe.

Ich füge erst einmal
import javax.media.opengl.*;
import javax.media.opengl.glu.*;
ein.

Dann bekomme ich bei
dest = ByteBuffer.allocateDirect(data.length * BufferUtils.SIZEOF_INT);
die Fehlermeldung
BufferUtils canot be resolved
Ich ändere in
BufferUtil
und füge
import com.sun.opengl.util.BufferUtil;
ein.

Die nächste Fehlermeldung bei
gl.glGenTextures(1, tmp);
lautet
The method glGenTextures(int, in[], int) in the type GL is not applicable for the arguments (int, int[])

Ich ersetze also durch
gl.glGenTextures(1, tmp, 1);

Damit sind dann alle Fehlermeldungen verschwunden und ich starte das Programm.
Das Fenster erscheint bleibt aber leer und ich bekomme folgende Fehlermeldung.

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Required 786432 remaining bytes in buffer, only had 0
at com.sun.gluegen.runtime.BufferFactory.rangeCheckBytes(BufferFactory.java:274)
at com.sun.opengl.impl.GLImpl.glTexImage2D(GLImpl.java:21147)
at TextureGenerator.makeRGBTexture(TextureGenerator.java:90)
at BeispielszeneView.defineTexture(BeispielszeneView.java:235)
at BeispielszeneView.init(BeispielszeneView.java:27)
at com.sun.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:72)
at javax.media.opengl.GLCanvas$InitAction.run(GLCanvas.java:271)
at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:189)
at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:265)
at javax.media.opengl.GLCanvas.display(GLCanvas.java:130)
at javax.media.opengl.GLCanvas.paint(GLCanvas.java:142)
at sun.awt.RepaintArea.paintComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


Ich benutze Windows Xp Professional SP2
Java: JRE 1.6.0_01
Jogl: jogl-1.1.0-rc3


Was mache ich denn falsch.

magma
 

magma

Mitglied
Hallo doctus,
ich habe Mittlerweilen auch eine Lösung gefunden.

Ich musste ein ByteBuffer rewind in den Quelltext einfügen dann geht es auch.

Deine Lösung interessiert mich aber auch. In welcher der Demos hast Du das denn gefunden?

magma
 

magma

Mitglied
Hallo doctus,
danke für den Link.
Das funktioniert.
Was mir an der Demo nicht gefällt ist das wenn man kleine Texturen lädt, die gezoomt werden damit sie die Zeichenfläche ganz füllen. Bei sehr kleinen Texturen werden die dann sehr unschön.
Wisst Du wie man erreicht das eine kleine Textur wiederholt wird anstatt gezoomt um die Zeichenfläche ganz zu füllen?

magma
 
G

Gast

Gast
versuchs mal, indem du beim zeichnen des objectes, wo die texture draufkommt, die texturkoordinaten anders setzt.

lg doctus
 

magma

Mitglied
Hallo Herr Gast.
Ja das war es.
Ich musste nur diese Texturkoordinaten anders wählen und schon ging es.
Vielen Dank für die Anregung.

magma
 

doctus

Bekanntes Mitglied
nix herr gast^^

guck mal auf die letzte zeile im beitrag. hatte nur vergessen mich einzuloggen^^

lg doctus
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B LWJGL / OPENGL Kriege Depth-Test nicht hin :( Spiele- und Multimedia-Programmierung 0
G LIBGDX Texturen Problem Spiele- und Multimedia-Programmierung 1
T LWJGL: Terrain-Texturen / 2D-Array in Shader? Spiele- und Multimedia-Programmierung 2
Seikuassi LWJGL - Texturen flackern Spiele- und Multimedia-Programmierung 2
X [LWJGL] Binden von Texturen per PNG File und Texture Sheet Spiele- und Multimedia-Programmierung 1
F VertexBuffer & Texturen? Spiele- und Multimedia-Programmierung 5
Luk10 (LWJGL) Aufwendiges Animieren von Texturen Spiele- und Multimedia-Programmierung 16
T VBOs und Texturen Spiele- und Multimedia-Programmierung 2
B Probleme mit Texturen Spiele- und Multimedia-Programmierung 7
J Partikel Texturen verbinden Spiele- und Multimedia-Programmierung 6
S LWJGL Texturen Spiele- und Multimedia-Programmierung 14
P LWJGL Texturen Spiele- und Multimedia-Programmierung 6
D LWJGL - 2D Texturen werden nicht dargestellt Spiele- und Multimedia-Programmierung 12
T lwjgl Texturen werden nicht gezeichnet Spiele- und Multimedia-Programmierung 23
T JOGL im OrthoMode und Texturen verfärben sich Spiele- und Multimedia-Programmierung 3
B Texturen Deckkraft Spiele- und Multimedia-Programmierung 7
F Kleine GL Texturen auf grosse GL Textur kopieren? Spiele- und Multimedia-Programmierung 24
BattleMaster246 Alpha Kanal in Texturen Spiele- und Multimedia-Programmierung 7
Ivan Dolvich [LWJGL] Texturen überlagern sich Spiele- und Multimedia-Programmierung 2
R Texturen auf Strichmännchen Spiele- und Multimedia-Programmierung 10
S java /jogl /Texturen mit j3d Spiele- und Multimedia-Programmierung 3
A java3d, fehlende texturen unter windows (graka onboard) Spiele- und Multimedia-Programmierung 4
lumo JOGL und Texturen Spiele- und Multimedia-Programmierung 3
D Blender Model mit Texturen in Java Importieren Spiele- und Multimedia-Programmierung 10
G Verschiedene Texturen Spiele- und Multimedia-Programmierung 2
L Texturen? Spiele- und Multimedia-Programmierung 2
E GLUT und Texturen oder ist GLUT abgemeldet? Spiele- und Multimedia-Programmierung 5
T Problem mit Texturen im Web. Spiele- und Multimedia-Programmierung 4
D 2 Texturen & transparenz Spiele- und Multimedia-Programmierung 16
F Texturen laden? Spiele- und Multimedia-Programmierung 3
M Universe mit texturen und lichteffekten Spiele- und Multimedia-Programmierung 10
M Format für Texturen Spiele- und Multimedia-Programmierung 5
M Laden von Texturen nicht möglich Spiele- und Multimedia-Programmierung 11
L Wie kann ich mehrere Texturen auf ein Object File mappen Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen


Oben