[LWJGL] Karusell, mehrere Objekte drehen sich um einen Mittelpunkt

E

economix

Gast
Hallo an alle die sich die Mühe machen das zu lesen, natürlich auch Hallo an den Rest, aber der liest das ja nicht :)

Ich beschäftige mich nun seit einigen Tagen mit der Lightweight Java Game Library und nachdem ich mich nun durch recht viele Tutorials gelesen und geklickt habe, glaube ich die grundsätze verstanden zu haben. Einige recht einfache Sachen funktionieren bereits und desshalb möchte ich mich nun an etwas schwierigeres herantrauen. Ich würde gerne eine Art Karusell aus mehreren "einfachen" Objekten (bisher dachte ich an Quadrate) "bauen". Das heißt die Quadrate drehen sich alle um einen gemeinsamen Mittelpunkt, doch leider habe ich keine Ahnung wie man so etwas programmiert. Zudem bräuchte ich eigentlich eine elliptische Bahn, denn die Quadrate die gerade "hinten" drehen sollten zu sehen sein (korrigiert mich bitte wenn ich hier falsch liege).

Ich arbeite mit Eclipse und der lwjgl-Version 2.8.4 auf Linux Ubuntu 12.04.

Mein bisheriges Quadrat sieht im Sourcecode so aus:

[JAVA=42]
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;

public class Quadrat {

public void start() {
try {
Display.setDisplayMode(new DisplayMode(1200,800));
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}

GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, 800, 0, 600, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

while (!Display.isCloseRequested()) {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);

// Farbe des Quadrats
GL11.glColor3f(0.0f,1.0f,0.0f);

// zeichne Quadrat
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2f(50,50);
GL11.glVertex2f(50+100,50);
GL11.glVertex2f(50+100,50+100);
GL11.glVertex2f(50,50+100);
GL11.glEnd();

Display.update();
}

Display.destroy();
}

public static void main(String[] argv) {
Quadrat quadrat = new Quadrat();
quadrat.start();
}
}
[/code]

Ich weiß also nicht wie ich mehrere Objekte um einen Mittelpunkt kreisen lassen kann (evtl. elliptisch). Dabei bräuchte ich nun eure Hilfe.

Vielen Dank an alle die sich die Mühe machen das hier durchzulesen und einen noch größeren Dank an alle die auch antworten.

MfG
eco
 

BRoll

Bekanntes Mitglied
Versuchs doch mal mit Polarkoordinaten zu berechnen.
Unabhängig von LWJGL liegt ja bei dir eher das Problem, dass du nicht weißt
wie du die Rotation berechnen kannst. Und dafür eignen sich diese
Herangehensweise.

Dh. ausgeschrieben berechnet man die Position einer Kreisbahn
mit einem vorgegebenen Winkel so:

Java:
int x=(int) (Math.cos(winkel)*radius);
int y=(int) (Math.sin(winkel)*radius);

Somit hast du die Position abhängig vom Winkel dargestellt,
und kannst nun schön immer den Winkel langsam erhöhen und
schon wird sich das Rechteck auf der Kreisbahn bewegt.

Damit es sich nicht um die linke obere Ecke des Bildschirms rotiert,
kannst du natürlich die Position zusätzlich verschieben,
zb. um 2*radius, dann würde die komplette Kreisbahn sichtbar angezeigt werden.
(Aber das ist ja logisch)

Wenn du jetzt zb. noch langsam den radius erhöhst wirst du sehen,
dass du eine Spirale erzeugt hast :)

Um die Kreisbahn gut sichtbar zu machen kannst du ja ganz viele
Punkte darauf zeichnen lassen, zb. so:
Java:
for(int i=0; i<1000; i++)	
{
		    
		int x=(int) (Math.cos(w2-i)*r2);
		int y=(int) (Math.sin(w2-i)*r2);
   //Hier kannst du nun mit dem x und y und einer Verschiebung dein Rechteck,Kreis oder sonstwas zeichnen 
}
Damit wird die ganze Bahn schön sichtbar.

Ich hoffe ich konnte dir helfen :)
 

Marco13

Top Contributor
Eigentlich bietet LWJGL bzw. OpenGL in der verwendeten (und veralteten!) Version 1.1 schon die Methoden, die man dafür braucht. Die Quadrate müssen "scheinbar" immer nur in den Ursprung gezeichnet werden. Das ist dann "ihr" Ursprung, und WO genau der liegt, hängt von den vorher zusammenmultiplizierten Modelview-Matrizen ab. Es würde sich anbieten, sich ein paar Methoden oder ggf. sogar Klassen zu machen, die die "Objekte" (Quadrate) zeichnen oder repräsentieren. Im GROBEN Pseudocode müßte das zeichnen von n Kreisförmig angeordneten Objekten dann sowas sein wie
Java:
void drawObjects()
{
    for (int i=0; i<n; i++)
    {
        float angle = i * (360.0f / n);
        glPushMatrix();
        glRotateZ(angle);
        glTranslate(10,0,0);
        drawObject();
        glPopMatrix();
    }
}
Das ganze dann um die gemeinsame Achse rotieren zu lassen wäre schon mit
Java:
        glPushMatrix();
        glRotateZ(currentAngle);
        drawObjects();
        glPopMatrix();
erledigt. (Jedenfalls kommt da nirgendwo ein "sin" oder "cos" drin vor ;) )
 
E

economix

Gast
Erstmal vielen Dank für die Antworten, es tut mir sehr leid, dass ich jetzt erst antworte, aber ich war das Wochenende über beschäftigt.
Eure Tipps sehen vielversprechend aus, aber ich bin gerade zu geschafft um die jetzt auszuprobieren. Das mache ich dann morgen und werde mich danach wieder melden.
Danke nochmal an euch, die ihr geantwortet habt.

MfG
eco
 
E

economix

Gast
Sooo jetzt habe ich mal die Zeit gehabt mir eure Tipps in aller Ruhe durchzulesen und auszuprobieren.

BRoll Danke nochmal für die Antwort, aber ich denke, dass ich eher Marcos Variante benutzen werde, denn eigentlich hab eich gerade keine Lust auf sin(), bzw cos() :p

So nun habe ich nochmal einige Fragen zu deinem Ansatz Marco:
Muss ich noch etwas zusätzlich importieren, denn ich habe eben mal zum Testen deine drawObjects Methode versucht laufen zu lassen und er gibt mir einige Dinge als undefined an.
Zweitens kommt es mir eher zweitrangig auf die Übersichtlichkeit an, und deswegen würde ich es bevorzugen mit nur einer Klasse zu arbeiten.
So wie ich dich verstanden habe, sollte ich zuerst meine "n" Objekte um den Ursprung zeichnen und sie dann alle zusammen drehen. Das heißt ich bräuchte eine Methode zeichne Objekte auf Kreisbahn, in der ich auf die Methode zeichne Objekte generell (also die die ich bereits im Anfangspost gepostet habe) zurückgreifen müsste, oder ? Dann zum Schluss noch drehen und gut ist.
Habe ich da jetzt was falsch bei verstanden?

Ach genau wenn ich schon dabei bin, wie genau mache ich es, dass sich das Karussel bei Klick auf die rechte Maustaste aufhört zu drehen?

Es sollte doch ungefähr so anfangen
Java:
if (Mouse.isButtonDown(0))
oder?

Danke jetzt schon an alle die antworten und sich dafür durch dieses Chaos gewühlt haben :)

MfG
eco
 

Marco13

Top Contributor
Das war nur Pseudocode. Sowas wie
glRotateZ(angle);
wäre in echt eben
GL11.glRotate(angle, 0, 0, 1);

Man zeichnet die Objekte nicht in eine Kreisbahn. Man erstellt sich eine Methode
drawObject();
die das Objekt im Ursprung zeichnet - z.B. ein Einheitsquadrat von (0,0,0) bis (1,1,0)

WO dieses Quadrat dann tatsächlich erscheint, hängt davon ab, welche ModelView-Matrix gerade die aktuelle ist, wenn die Methode aufgerufen wird. Wenn man z.B.

glPushMatrix();
glTranslatef(10,20,30);
drawObject();
glPopMatrix();

ausführt, wird das Quadrat von (10,20,30) bis (11,21,30) gezeichnet.


Mit der angedeuteten "drawObjects"-Methode würden "n" Objekte gezeichnet, die Kreisförmig angeordnet sind.
 
E

economix

Gast
das das nur Pseudocode war ist mir durchaus klar und ich habe das auch geändert beim Testen^^
Trotzdem trat/tritt bei mir bei glRotate ein Fehler auf und ich dachte, dass liegt vielleicht daran, dass ich irgendetwas notwendiges nicht importiert habe.

Danke für dieAufkärung, dass du meintest, dass man die Objekte in den Ursprung zeichnest.
Mein Problem ist wohl, dass ich doch noch nicht so weit bin wie ich dachte, denn aus irgendeinem Grund bekomme ich es nicht hin, dass zu "vercoden". Nehmen wir mal das Quadrat als Beispiel.
Ich schaffe es, das Teil in den Ursprung zu zeichnen, doch ich weiß nicht wie ich es darstellen soll, dass das Quadrat mehrmals auf einer Kreisbahn abgebildet wird.
"welche ModelView-Matrix gerade die aktuelle ist" sagt mir irgendwie nichts.
Ich habe wohl einige OpenGL Tutorials ausgelassen weil ich möglichst schnell ein Erfolgserlebniss wollte.

MfG
eco
 
E

economix

Gast
So jetzt habe ich mal meinen Code entsprechend angepasst, so dass alles bis auf deine "drawObjects" Methode enthalten ist. Dementsprechend sollte er mir eigentlich mal ein Quadrat aufzeichnen und es dann verschieben , doch er will mir meine zweite Methode irgendwie nicht anerkennen, also die drawObject. Wahrscheinlich ist es ein echt lächerlicher Fehler, dementsprechend wäre es super wenn mich jemand darüber aufklären könnte.
Als n hab ich hier mal 1 eingesetzt.

Hier also mal der Code

[JAVA=1]import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;

public class Quadrat {

public void start() {
try {
Display.setDisplayMode(new DisplayMode(1200,800));
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}

GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, 800, 0, 600, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

while (!Display.isCloseRequested()) {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);

public void drawObject(){
GL11.glBegin(GL11.GL_QUADS); // Draw A Quad
GL11.glVertex3f(-1.0f, 1.0f, 0.0f); // Top Left
GL11.glVertex3f( 1.0f, 1.0f, 0.0f); // Top Right
GL11.glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
GL11.glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
GL11.glEnd();

}

for (int i=0; i<1; i++) //1 als n
{
float angle = i * (360.0f / 1); //1 als n
GL11.glPushMatrix();
GL11.glRotatef(angle,10,20,30) ;
GL11.glTranslatef(10,20,30);
//GL11.drawObject();

GL11.glPopMatrix();
}

Display.update();
}


Display.destroy();
}

public static void main(String[] argv) {
Quadrat quadrat = new Quadrat();
quadrat.start();
}
}[/code]
 

Marco13

Top Contributor
Eigentlich war schon alles da...
Java:
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
 
public class Quadrat {
 
    public void start() 
    {
        try {
            Display.setDisplayMode(new DisplayMode(1200,800));
            Display.create();
        } catch (LWJGLException e) {
            e.printStackTrace();
            System.exit(0);
        }

        GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glLoadIdentity();
        GL11.glOrtho(0, 800, 0, 600, 1, -1);
        GL11.glMatrixMode(GL11.GL_MODELVIEW);

        while (!Display.isCloseRequested()) {
            GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);   

            // Farbe des Quadrats
            GL11.glColor3f(0.0f,1.0f,0.0f);
            
            GL11.glPushMatrix();
            GL11.glTranslatef(400,300,0);
            drawObjects();
            GL11.glPopMatrix();
            

            Display.update();
        }

        Display.destroy();
    }
    
    void drawObjects()
    {
        int n = 10;
        for (int i=0; i<n; i++)
        {
            float angle = i * (360.0f / n);
            GL11.glPushMatrix();
            GL11.glRotatef(angle,0,0,1);
            GL11.glTranslatef(200,0,0);
            drawObject();
            GL11.glPopMatrix();
        }
    }    
    
    private void drawObject()
    {
        // zeichne Quadrat
        GL11.glBegin(GL11.GL_QUADS);
        GL11.glVertex2f(-50,-50);
        GL11.glVertex2f(50,-50);
        GL11.glVertex2f(50,50);
        GL11.glVertex2f(-50,50);
        GL11.glEnd();
    }
 
    public static void main(String[] argv) {
       Quadrat quadrat = new Quadrat();
       quadrat.start();
    }
}
 
E

economix

Gast
ääähh
jaaa
sagen wir ich war noch etwas verschlafen...
ja wie du sagst eigentlich war alles da....

Egal
Vielen, vielen Dank
Ich hätte dafür bestimmt ewig gebraucht, weil ich mich einfach zu dumm angestellt habe...
Nochmal Danke

MfG
eco
 
E

economix

Gast
Eine Frage hätte ich dann doch noch^^
Was müsste ich tun, damit die Quadrate nicht in verschieden Richtungen zeigen, sondern immer in der Ausgangslage stehen? Also ich will, dass die Seiten der Quadrate immer parallel sind. Wie komme ich dahin?
Danke an alle die darauf eine Antwort haben und sie mir auch mitteilen.

MfG
eco
 

BRoll

Bekanntes Mitglied
Naja mit "meiner" Methode, was im Prinzip nichts anderes
als eine einfache mathematische herangehensweise des Problems ist,
gehts ganz einfach.
Du musst einfach das Rechteck mit dem Mittelpunkt auf die Koordinate zeichnen.
Die Koordinate wird ja dann im Kreis bewegt mit der Cosinus und Sinus Funktion,
da ist ja keine Komponente usw die gedreht wird.
Und intern in der Berechnung der anderen Variante wird es natürlich auch auf
dieser Berechnungsweise basieren. :)

Ist wirklich nicht schwer sich da was selber zu schreiben:
Java:
double winkel=0;
int radius=300;

void drehen()
{
winkel+=0.1;
int xpos=(int)(Math.cos(Math.toRadians(winkel))*r+200);
int ypos=(int)(Math.sin(Math.toRadians(winkel))*r+200);
//und jetzt einfach mit der Pos als Mittelpunkt zeichnen

}

mehr ists wirklich nicht ;)
 

Marco13

Top Contributor
Man könnte auch einfach die Zeile
GL11.glRotatef(-angle,0,0,1);
direkt vor "drawObject" einfügen, aber es gibt viele Wege....
 
E

economix

Gast
Nun das war wirklich einfacher als gedacht :)
Beide Methoden funktionieren einwandfrei, so gut, dass ich jetzt einfach 2 Versionen gemacht habe, einfach um mich daran zu erinnern wie wichtig sin und cos doch sind. Nocheinmal vielen Dank an euch beide. Alleine hätte ich wohl noch etwas länger auf dem Schlauch gestanden.

MfG
eco
 
Y

YumYum

Gast
Hey Leute,

ich habe diesen Thread gerade über die Googlesuche entdeckt und er passt sehr gut auf mein Problem.
Ich möchte gerne eine ähnliche Konstruktion wie der Threadersteller erstellen, doch bei mir sollen sich die Objekte in der Animation auch drehen.
Ich will quasi die Klasse ausführen und die Dinger sollen sich direkt drehen.
Dazu bräuchte ich doch eigentlich nur mit einem Rotate alles um die Z-Achse jagen oder nicht?
Doch wie bekomme ich diese Rotation dauerhaft oder auf Abruf (aka irgendeine Taste drücken und los gehts) hin?
Bei mir läuft das Ganze mit eingebunden Texturen ab, aber das sollte ja eigentlich keinen Unterschied machen.

Ich fände es super nett wenn sich jemand finden würde, der mir hilft. Dummerweise komme ich erstmal nicht an meinen ursprünglichen Code, aber theoretisch müsste ich es auch einem Beispiel verstehen können. Evtl. teste ich es auch einfach am Code des Threaderstellers, wenn der nix dagegen hat.
 

Marco13

Top Contributor
Langsam klingt das ziemlich hausaufgabig. Du hast es geschafft, texturierte Objekte mit LWJGL anzuzeigen, aber schaffst es nicht, irgendwo einen Winkel hochzuzählen und glRotate(winkel,0,0,1) aufzurufen? ???:L
 
Y

YumYum

Gast
Langsam klingt das ziemlich hausaufgabig. Du hast es geschafft, texturierte Objekte mit LWJGL anzuzeigen, aber schaffst es nicht, irgendwo einen Winkel hochzuzählen und glRotate(winkel,0,0,1) aufzurufen? ???:L

Nun ich kann dir als Beruhigung sage, aus dem Hausaufgabenalter bin ich seit ungefähr 25 Jahren raus ;). Mein Problem ist ja auch nicht das vom Fragesteller, sondern vielmehr, dass ich nicht weiß wie ich in opengl eine dauerhafte Rotation einbaue. Ich habe mal versucht mir ein Casino zusammenzuprogrammieren und bin habe nun 3 "Rollen" die mit verschiedenen Texturen versehen sind.
Nun will ich dieses 3 Rollen rotieren lassen, bis sie auf Mausklick anhalten. Das war vor gut und gerne 5 Jahren. Jetzt bin ich mit meiner Familie im Urlaub und mein Jüngster ist krank und einer muss bei ihm bleiben. Da er die meiste Zeit schläft, ahbe ich mir gedacht ich könnte doch meine alten Projekte aufleben lassen. Pustekuchen... die Teile sind zum großen Teil nicht auf meinem Notebook. Bis zu den Rollen habe ich es jetzt -auch dank diesem Thread- geschafft. Doch die wollen und wollen sich nicht drehen. Mit Rotate drehen die sich halt schon, aber sie sind dann immer schon gedreht wenn ich play drücke. Das ist mein Problem. Sollte das nun die Grenzen dieses Threads sprengen tut es mir Leid und ich mache meinen eigenen auf. Ich dachte mir nun, da hier ein ähnliches Thema besprochen wurde, wäre es treffend hier zu posten.

PS.
Welche Schule unterrichtet denn OpenGl? Zu meiner Zeit gabs sowas noch nicht. Nur trockene Theorie.
 

Marco13

Top Contributor
Hätte eine Uni/FH-Hausaufgabe sein können.

Thematisch könnte es schon etwas von der ursprünglichen Frage abweichen. Falls ich das richtig verstanden habe, geht es jetzt NUR um die Start/Stop-Funktionalität für die Rotation?
 
Y

YumYum

Gast
Da hast du schon Recht, es weicht da wirklich etwas ab, auf der anderen Seite ist es nur eine kurze Frage und ich fand es unnötig dafür einen eigenen Thread aufzumachen.
Ja. Mein Ziel ist es eine Rotation auf Abruf zu starten, bzw. eigentlich sollte es so sein, dass es direkt von Anfang an rotiert und dann wenn ich die Eingabe vornehme anhält, wobei es ja nicht schlimm wäre wenn man die Rotation erst noch starten müsste.
Ich weiß nicht wie ich das implementieren kann, bzw. welche Befehle ich dazu benötige.
 
Y

YumYum

Gast
Stop, alles zurück.
Ich habe es geschafft.
Entschuldigung für die unnötigen Posts, vielleicht kann ein Admin die löschen, so dass der Thread wieder nur das enthält was auch draufsteht.
Danke an Marco13, dass er sich die Zeit genommen hat
 
E

economix

Gast
Einen wunderschönen guten Morgen wünsche ich euch allen.
Nachdem ihr mir so toll dabei geholfen habt, meine Quadrate in einem Kreis anzuordnen, habe ich den Code jetzt noch etwas verfeinert und die Quadrate durch Texturen ersetzt. Jetzt komme ich zum letzten Schritt meines Karussels und brauche dann doch wieder Hilfe. Ich möchte die Kameraposition verändern. Momentan sieht man den Kreis mit den Objekten von oben, doch ich hätte gerne, dass die Kamera von vorne so darauf schaut, dass die Objekte die auf dem hinteren Teil der Kreisbahn verlaufen noch zu sehen sind, wenn auch kleiner. Ich hoffe ihr versteht was ich euch damit sagen will. Ich schaue von vorne auf ein Karussel und sehe dabei auf dem vorderen Teil der Kreisbahn Objekte und auch auf dem hinteren. Dadurch verzieht sich die Kreisbahn die man sieht eher zu einer Ellipse. Ich habe das Problem gegoogelt und dabei den Befehl glulookat gefunden, bei dem man die Position der Kamera, das Ziel der Kamera und noch etwas angeben muss, doch das ist eigentlich ja mehr als ich benötige. Ich will eigentlich einfach nur meine Kamera bewegen, während das Kameraziel gleichbleibt.

Also hat jemand eine Idee wie man einfach nur die Kameraposition um einen bestimmten Winkel verändert oder mein Problem auf eine andere Weise lösen kann? Bei meiner Googlesuche war ich da mehr oder weniger ohne Erfolg.

Hier mal noch mein bisheriger Code, falls euch das hilft zu verstehen von was ich rede.

[JAVA=1]import java.io.IOException;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.newdawn.slick.Color;
import org.newdawn.slick.opengl.Texture;
import org.newdawn.slick.opengl.TextureLoader;
import org.newdawn.slick.util.ResourceLoader;

public class TextureKarussel {

private Texture texture;

long startzeit = System.nanoTime();
double T = 20000;

public void start() {
initGL(1200,800);
init();

while (true) {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
// render(700, 300);

double deltatime = System.nanoTime() - startzeit;
deltatime = deltatime /1e6; //ms
double w = 360/T;
double phi = w*deltatime; //Winkel

GL11.glPushMatrix();
drawObjects(phi);
GL11.glPopMatrix();
Display.update();

//System.exit(0);



Display.sync(100);

if (Display.isCloseRequested()) {
Display.destroy();

}
}
}


private void initGL(int width, int height) {
try {
Display.setDisplayMode(new DisplayMode(width,height));
Display.create();
Display.setVSyncEnabled(true);
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}

GL11.glEnable(GL11.GL_TEXTURE_2D);

GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

// enable alpha blending
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

GL11.glViewport(0,0,width,height);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, width, height, 0, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
}

/**
* Initialise resources
*/
public void init() {

try {
// load texture from PNG file
texture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("/home/lukas/Arbeitsfläche/64x64.png"));

System.out.println("Texture loaded: "+texture);
System.out.println(">> Image width: "+texture.getImageWidth());
System.out.println(">> Image height: "+texture.getImageHeight());
System.out.println(">> Texture width: "+texture.getTextureWidth());
System.out.println(">> Texture height: "+texture.getTextureHeight());
System.out.println(">> Texture ID: "+texture.getTextureID());
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* draw a quad with the image on it
*/
public void render(float xoffs, float yoffs ) {
Color.white.bind();
texture.bind(); // or GL11.glBind(texture.getTextureID());

GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0,0);
GL11.glVertex2f(xoffs,yoffs);
GL11.glTexCoord2f(1,0);
GL11.glVertex2f(xoffs+texture.getTextureWidth(),yoffs);
GL11.glTexCoord2f(1,1);
GL11.glVertex2f(xoffs+texture.getTextureWidth(),yoffs+texture.getTextureHeight());
GL11.glTexCoord2f(0,1);
GL11.glVertex2f(xoffs,yoffs+texture.getTextureHeight());

GL11.glEnd();
}



void drawObjects(double offs)
{
double n = 8;
for (double i=0; i<n; i++)
{
double angle = offs + i * (360.0f / n);
GL11.glPushMatrix();
GL11.glRotated(angle,0,0,1);
GL11.glTranslated(200,0,0);
GL11.glRotated(-angle,0,0,1);
render(700, 300);
GL11.glPopMatrix();

}
}

/**
* Main Class
*/
public static void main(String[] argv) {
TextureKarussel textureKarussel = new TextureKarussel();
textureKarussel.start();
}
}[/code]

Vielen Dank für eventuelle Antworten.

MfG
eco
 

Marco13

Top Contributor
Du musst noch den Projection-Matrix-Teil
GL11.glLoadIdentity();
GL11.glOrtho(0, width, height, 0, 1, -1);
zu glFrustum ? DGL Wiki ändern.

Ansonsten war gluLookAt schon richtig. Ansonsten müßte man sich seine "Kamera-Matrix" selbst zusammenfrickeln, was eklig sein kann.
 
E

economix

Gast
Vielen Dank.
Habe deinen Vorschlag mal übernommen.
Meintest du so?
Ich frage so dumm, weil ich GLUT noch nicht in mein Eclipse gepackt habe und es deswegen noch nicht testen kann :D
[JAVA=1]import java.io.IOException;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.newdawn.slick.Color;
import org.newdawn.slick.opengl.Texture;
import org.newdawn.slick.opengl.TextureLoader;
import org.newdawn.slick.util.ResourceLoader;

public class TextureKarussel {

private Texture texture;

long startzeit = System.nanoTime();
double T = 20000;

public void start() {
initGL(1200,800);
init();

while (true) {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
// render(700, 300);

double deltatime = System.nanoTime() - startzeit;
deltatime = deltatime /1e6; //ms
double w = 360/T;
double phi = w*deltatime; //Winkel

GL11.glPushMatrix();
drawObjects(phi);
GL11.glPopMatrix();
Display.update();

//System.exit(0);



Display.sync(100);

if (Display.isCloseRequested()) {
Display.destroy();

}
}
}


private void initGL(int width, int height) {
try {
Display.setDisplayMode(new DisplayMode(width,height));
Display.create();
Display.setVSyncEnabled(true);
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}

GL11.glEnable(GL11.GL_TEXTURE_2D);

GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
GL11.glLoadIdentity();
GL11.gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

// enable alpha blending
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

GL11.glViewport(0,0,width,height);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

GL11.glMatrixMode(GL11.GL_PROJECTION);
//GL11.glLoadIdentity();
//GL11.glOrtho(0, width, height, 0, 1, -1);
GL11.glFrustum(-100, 100, -100, 100, 50, 150);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
}

/**
* Initialise resources
*/
public void init() {

try {
// load texture from PNG file
texture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("/home/lukas/Arbeitsfläche/64x64.png"));

System.out.println("Texture loaded: "+texture);
System.out.println(">> Image width: "+texture.getImageWidth());
System.out.println(">> Image height: "+texture.getImageHeight());
System.out.println(">> Texture width: "+texture.getTextureWidth());
System.out.println(">> Texture height: "+texture.getTextureHeight());
System.out.println(">> Texture ID: "+texture.getTextureID());
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* draw a quad with the image on it
*/
public void render(float xoffs, float yoffs ) {
Color.white.bind();
texture.bind(); // or GL11.glBind(texture.getTextureID());

GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0,0);
GL11.glVertex2f(xoffs,yoffs);
GL11.glTexCoord2f(1,0);
GL11.glVertex2f(xoffs+texture.getTextureWidth(),yoffs);
GL11.glTexCoord2f(1,1);
GL11.glVertex2f(xoffs+texture.getTextureWidth(),yoffs+texture.getTextureHeight());
GL11.glTexCoord2f(0,1);
GL11.glVertex2f(xoffs,yoffs+texture.getTextureHeight());

GL11.glEnd();
}



void drawObjects(double offs)
{
double n = 8;
for (double i=0; i<n; i++)
{
double angle = offs + i * (360.0f / n);
GL11.glPushMatrix();
GL11.glRotated(angle,0,0,1);
GL11.glTranslated(200,0,0);
GL11.glRotated(-angle,0,0,1);
render(700, 300);
GL11.glPopMatrix();

}
}

/**
* Main Class
*/
public static void main(String[] argv) {
TextureKarussel textureKarussel = new TextureKarussel();
textureKarussel.start();
}
}[/code]
 
E

economix

Gast
Oh mann ich bin hier total am verzweifeln, was zur Hölle muss ich denn machen, damit er mir den Befehl gluLookAt anerkennt?
Muss ich was importieren oder noch ne library dazupacken, die ich allerdings nicht finde, nzw, wenn ich welche finde, dann sind keine jars drin die dazufügen könnte.

Helft mir, bitte

MfG
eco
 
E

economix

Gast
Ahh Danke!!!
Vielen vielen Dank.

Jetzt habe ich die Error Meldung raus, doch meine Ausgabe bleibt weiterhin leer.
Ich vermute das liegt am Frustrum. Es kann ja eigentlich nur am Frustrum oder am LookAt liegen, aber ich bin mir nicht so sicher. Hab ich alles in der richtigen Reihenfolge in meinem Code?

[JAVA=1]import java.io.IOException;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.glu.GLU;
import org.newdawn.slick.Color;
import org.newdawn.slick.opengl.Texture;
import org.newdawn.slick.opengl.TextureLoader;
import org.newdawn.slick.util.ResourceLoader;

public class TextureKarussel {

private Texture texture;

long startzeit = System.nanoTime();
double T = 20000;

public void start() {
initGL(1200,800);
init();

while (true) {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
// render(700, 300);

double deltatime = System.nanoTime() - startzeit;
deltatime = deltatime /1e6; //ms
double w = 360/T;
double phi = w*deltatime; //Winkel

GL11.glPushMatrix();
drawObjects(phi);
GL11.glPopMatrix();
Display.update();

//System.exit(0);



Display.sync(100);

if (Display.isCloseRequested()) {
Display.destroy();

}
}
}


private void initGL(int width, int height) {
try {
Display.setDisplayMode(new DisplayMode(width,height));
Display.create();
Display.setVSyncEnabled(true);
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}

GL11.glEnable(GL11.GL_TEXTURE_2D);

GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

GL11.glLoadIdentity();
GLU.gluLookAt(0, 0, 5, 0, 0, 0, 0, 1, 0);

// enable alpha blending
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

GL11.glViewport(0,0,width,height);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
//GL11.glOrtho(0, width, height, 0, 1, -1);
GL11.glFrustum(0, width, 0, height, 150, 300);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
}

/**
* Initialise resources
*/
public void init() {

try {
// load texture from PNG file
texture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("/home/lukas/Arbeitsfläche/64x64.png"));

System.out.println("Texture loaded: "+texture);
System.out.println(">> Image width: "+texture.getImageWidth());
System.out.println(">> Image height: "+texture.getImageHeight());
System.out.println(">> Texture width: "+texture.getTextureWidth());
System.out.println(">> Texture height: "+texture.getTextureHeight());
System.out.println(">> Texture ID: "+texture.getTextureID());
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* draw a quad with the image on it
*/
public void render(float xoffs, float yoffs ) {
Color.white.bind();
texture.bind(); // or GL11.glBind(texture.getTextureID());

GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0,0);
GL11.glVertex2f(xoffs,yoffs);
GL11.glTexCoord2f(1,0);
GL11.glVertex2f(xoffs+texture.getTextureWidth(),yoffs);
GL11.glTexCoord2f(1,1);
GL11.glVertex2f(xoffs+texture.getTextureWidth(),yoffs+texture.getTextureHeight());
GL11.glTexCoord2f(0,1);
GL11.glVertex2f(xoffs,yoffs+texture.getTextureHeight());

GL11.glEnd();
}



void drawObjects(double offs)
{
double n = 8;
for (double i=0; i<n; i++)
{
double angle = offs + i * (360.0f / n);
GL11.glPushMatrix();
GL11.glRotated(angle,0,0,1);
GL11.glTranslated(200,0,0);
GL11.glRotated(-angle,0,0,1);
render(700, 300);
GL11.glPopMatrix();

}
}

/**
* Main Class
*/
public static void main(String[] argv) {
TextureKarussel textureKarussel = new TextureKarussel();
textureKarussel.start();
}
}[/code]

Vermutungen, Lösungen oder Lösungsansätze?
Immer her damit!

Danke nochmal und schonmal!

MfG
eco
 

Marco13

Top Contributor
Ja, da wird halt irgendwas irgendwo ins Nirvana gerendert, diese Offsets und die Frage, welches Koordinatensystem verwendet wird ist nicht ganz klar, wie auch immer...
Java:
package _test;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.glu.GLU;
 
public class TextureKarussel {
 
    //private Texture texture;
    
    long startzeit  = System.nanoTime();
    double T = 20000;
    
    public void start() {
        initGL(1200,800);
        init();
        
        while (true) {
            GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
//          render(700, 300);
            
            double deltatime = System.nanoTime() - startzeit;
            deltatime = deltatime /1e6; //ms
            double w = 360/T;
            double phi = w*deltatime;  //Winkel
            
            GL11.glPushMatrix();
            drawObjects(phi);
            GL11.glPopMatrix();
            Display.update();
            
            //System.exit(0);
 
            
            
            Display.sync(100);
 
            if (Display.isCloseRequested()) {
                Display.destroy();
 
            }
        }
    }
    
 
    private void initGL(int width, int height) {
        try {
            Display.setDisplayMode(new DisplayMode(width,height));
            Display.create();
            Display.setVSyncEnabled(true);
        } catch (LWJGLException e) {
            e.printStackTrace();
            System.exit(0);
        }
 
        GL11.glEnable(GL11.GL_TEXTURE_2D);               
        GL11.glViewport(0,0,width,height);
        GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        GL11.glMatrixMode(GL11.GL_MODELVIEW);
        GL11.glLoadIdentity();
        GLU.gluLookAt(0, -100, -150, 0, 0, 0, 0, 1, 0);
        
        // enable alpha blending
        GL11.glEnable(GL11.GL_BLEND);
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
            
 
        GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glLoadIdentity();
        GLU.gluPerspective(45.0f, (float)width/height, 0.1f, 1000.0f);
        GL11.glMatrixMode(GL11.GL_MODELVIEW);
    }
    
    /**
     * Initialise resources
     */
    public void init() {
        
//        try {
//            // load texture from PNG file
//            texture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("/home/lukas/Arbeitsfläche/64x64.png"));
//        
//            System.out.println("Texture loaded: "+texture);
//            System.out.println(">> Image width: "+texture.getImageWidth());
//            System.out.println(">> Image height: "+texture.getImageHeight());
//            System.out.println(">> Texture width: "+texture.getTextureWidth());
//            System.out.println(">> Texture height: "+texture.getTextureHeight());
//            System.out.println(">> Texture ID: "+texture.getTextureID());
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
    }
 
    /**
     * draw a quad with the image on it
     */
    public void render(float xoffs, float yoffs ) {
        //Color.white.bind();
        //texture.bind(); // or GL11.glBind(texture.getTextureID());
            
            GL11.glBegin(GL11.GL_QUADS);
            GL11.glTexCoord2f(0,0);
            GL11.glVertex2f(xoffs,yoffs);
            GL11.glTexCoord2f(10,0);
            GL11.glVertex2f(xoffs+10,yoffs);
            GL11.glTexCoord2f(1,1);
            GL11.glVertex2f(xoffs+10,yoffs+10);
            GL11.glTexCoord2f(0,1);
            GL11.glVertex2f(xoffs,yoffs+10);
            
            GL11.glEnd();
    }
    
    
    
       void drawObjects(double offs)
        {
            double n = 8;
            for (double i=0; i<n; i++)
            {
                double angle = offs + i * (360.0f / n);
                GL11.glPushMatrix();
                GL11.glRotated(angle,0,0,1);
                GL11.glTranslated(50,0,0);
                GL11.glRotated(-angle,0,0,1);
                render(-5,-5);
                GL11.glPopMatrix();
               
            }
        }    
        
    /**
     * Main Class
     */
    public static void main(String[] argv) {
        TextureKarussel textureKarussel = new TextureKarussel();
        textureKarussel.start();
    }
}
 
E

economix

Gast
Nach mehreren Kopf-Wand und Kopf-Tisch Duellen, komme ich nun dazu dir zu danken.
Danke
Wieder einmal
Vielen Dank
Würdest du mir nicht antworten, dann wäre mein Pc wohl nicht mehr am Leben.
Danke!
 
E

economix

Gast
An was könnte es liegen, dass das eingebundenen Bild auf einer Hälfte verzerrt wirkt.

W5qJR.jpg


Aber es sollte eigentlich so wirken

cG3yT.png


Code

Java:
import java.io.IOException;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.glu.GLU;
import org.newdawn.slick.Color;
import org.newdawn.slick.opengl.Texture;
import org.newdawn.slick.opengl.TextureLoader;
import org.newdawn.slick.util.ResourceLoader;
 
public class TextureKarussel2 {
 
    public Texture texture;
    
    long startzeit  = System.nanoTime();
    double T = 20000;
    
    public void start() {
        initGL(1200,800);
        init();
        
        while (true) {
            GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
//          render(700, 300);
            
            double deltatime = System.nanoTime() - startzeit;
            deltatime = deltatime /1e6; //ms
            double w = 360/T;
            double phi = w*deltatime;  //Winkel
            
            GL11.glPushMatrix();
            drawObjects(phi);
            GL11.glPopMatrix();
            Display.update();
            
            //System.exit(0);
 
            
            
            Display.sync(100);
 
            if (Display.isCloseRequested()) {
                Display.destroy();
 
            }
        }
    }
    
 
    private void initGL(int width, int height) {
        try {
            Display.setDisplayMode(new DisplayMode(width,height));
            Display.create();
            Display.setVSyncEnabled(true);
        } catch (LWJGLException e) {
            e.printStackTrace();
            System.exit(0);
        }
 
        GL11.glEnable(GL11.GL_TEXTURE_2D);               
        GL11.glViewport(0,0,width,height);
        GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        GL11.glMatrixMode(GL11.GL_MODELVIEW);
        GL11.glLoadIdentity();
        GLU.gluLookAt(0, -100, -150, 0, 0, 0, 0, 1, 0);
        
        // enable alpha blending
        GL11.glEnable(GL11.GL_BLEND);
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
            
 
        GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glLoadIdentity();
        GLU.gluPerspective(45.0f, (float)width/height, 0.5f, 1000.0f);
        GL11.glMatrixMode(GL11.GL_MODELVIEW);
    }
    
    /**
     * Initialise resources
     */
    public void init() {		try {
		// load texture from PNG file
		texture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("/home/lukas/Arbeitsfläche/128x128.png"));
	
		System.out.println("Texture loaded: "+texture);
		System.out.println(">> Image width: "+texture.getImageWidth());
		System.out.println(">> Image height: "+texture.getImageHeight());
		System.out.println(">> Texture width: "+texture.getTextureWidth());
		System.out.println(">> Texture height: "+texture.getTextureHeight());
		System.out.println(">> Texture ID: "+texture.getTextureID());
	} catch (IOException e) {
		e.printStackTrace();
	}
}
 
    /**
     * draw a quad with the image on it
     */
    public void render(float xoffs, float yoffs ) {
        Color.white.bind();
        texture.bind(); // or GL11.glBind(texture.getTextureID());
            
            GL11.glBegin(GL11.GL_QUADS);
            GL11.glTexCoord3f(0,0,0);
            GL11.glVertex3f(xoffs,yoffs,0);
            GL11.glTexCoord3f(10,0,0);
            GL11.glVertex3f(xoffs+10,yoffs,0);
            GL11.glTexCoord3f(1,1,0);
            GL11.glVertex3f(xoffs+10,yoffs+10,0);
            GL11.glTexCoord3f(0,1,0);
            GL11.glVertex3f(xoffs,yoffs+10,0);
            
            GL11.glEnd();
    }
    
    
    
       void drawObjects(double offs)
        {
            double n = 30;
            for (double i=0; i<n; i++)
            {
                double angle = offs + i * (360.0f / n);
                GL11.glPushMatrix();
               GL11.glRotated(angle,0,0,1);
                GL11.glTranslated(50,0,0);
                GL11.glRotated(-angle,0,0,1);
                render(-5,-5);
                GL11.glPopMatrix();
               
            }
        }    
        
    /**
     * Main Class
     */
    public static void main(String[] argv) {
        TextureKarussel2 textureKarussel2 = new TextureKarussel2();
        textureKarussel2.start();
    }
}

Habe jetzt mehrfach versucht andere Bildgörßen zu nehemn, bzw andere Parameter einzusetzen. Hilft alles nicht. Ist das einfach nicht zu verhindern, wenn man die Kamera bei gemappten Texturen dreht, oder ist es zu beheben und wenn ja wie?
 

Marco13

Top Contributor
Nein Texturen in OpenGL werden grundsätzlich nur richtig dargestellt, wenn man mit der Kamera genau von vorne draufguckt.

:joke:


GL11.glTexCoord3f(10,0,0); sollte vermutlich
GL11.glTexCoord3f(1,0,0); sein


EDIT: Grml... :D
 
E

economix

Gast
die 0 wars...
einfach mal einen ganzen Tag lang nichts anderes gemacht, als im netz nach gründen zu suchen und dann war einfach eine null zu viel...
Ich liebe es.

Danke euch beiden
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
coolian lwjgl glfw window zeigt nur grau an Spiele- und Multimedia-Programmierung 0
coolian slick lwjgl text darstellen mit UnicodeFont funktoniert nicht? Spiele- und Multimedia-Programmierung 11
F OpenGL (LWJGL) Shader Programmierung GLSL Spiele- und Multimedia-Programmierung 2
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
V LWJGL GUI Spiele- und Multimedia-Programmierung 1
V GUI in LWJGL 2 erstellen Spiele- und Multimedia-Programmierung 6
C GLSL Shaderprogrammierung in LWJGL 3 Spiele- und Multimedia-Programmierung 12
G Low Poly 3D LWJGL Shader Problem Spiele- und Multimedia-Programmierung 4
B LWJGL OpenGL SIGSEGV auf Linux (Verzweiflung :/) Spiele- und Multimedia-Programmierung 8
G LWJGL .obj .mtl loader Spiele- und Multimedia-Programmierung 3
G 2D animationen LWJGL Spiele- und Multimedia-Programmierung 0
pcfreak9000 "Allgemeine" Performance verbessern (LWJGL 2) Spiele- und Multimedia-Programmierung 2
G LWJGL Rendert nicht Spiele- und Multimedia-Programmierung 3
G lwjgl verwendung Spiele- und Multimedia-Programmierung 6
R [LWJGL] Skeletal Animation Spiele- und Multimedia-Programmierung 5
E LWJGL glGenVertexArrays() erzeugt doppelte IDs Spiele- und Multimedia-Programmierung 3
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
Streeber Problem mit Transparenz/TextDrawing in LWJGL/Slick2d (OpenGL) Spiele- und Multimedia-Programmierung 1
K No Lwjgl Spiele- und Multimedia-Programmierung 2
T LWJGL 2.9.2: Seltsamer Effekt beim Rendern (VertexShader Problem?) Spiele- und Multimedia-Programmierung 3
T LWJGL: Terrain-Texturen / 2D-Array in Shader? Spiele- und Multimedia-Programmierung 2
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
T [LWJGL] Textur / File wieder freigeben Spiele- und Multimedia-Programmierung 4
F [LWJGL] Skeletal Animation 3D Spiele- und Multimedia-Programmierung 1
C Generelle Hilfe zur lwjgl Spiele- und Multimedia-Programmierung 0
D LWJGL gluLookAt "Umschauen" Problem Spiele- und Multimedia-Programmierung 0
D Problem mit Würfelanimierung in LWJGL Spiele- und Multimedia-Programmierung 7
RalleYTN LWJGL Vignette Spiele- und Multimedia-Programmierung 2
E LWJGL Switchen zwischen gluOrtho und gluPerspective Spiele- und Multimedia-Programmierung 0
RalleYTN LWJGL Rotation Spiele- und Multimedia-Programmierung 1
C LWJGL Color Picking Textures deaktivieren Spiele- und Multimedia-Programmierung 0
K FBO Framebuffer object [LWJGL] 2D tutorial gesucht Spiele- und Multimedia-Programmierung 2
K [LWJGL] 2D Tunneler Hintergrund Spiele- und Multimedia-Programmierung 7
S LWJGL 3d-spieleentwicklung Spiele- und Multimedia-Programmierung 3
H LWJGL-Renderfail Spiele- und Multimedia-Programmierung 1
Seikuassi LWJGL - Texturen flackern Spiele- und Multimedia-Programmierung 2
Androbin LWJGL - Kollisions-Bug (Fallen) Spiele- und Multimedia-Programmierung 14
K Schiessen in 2D (LWJGL) Spiele- und Multimedia-Programmierung 2
S LWJGL Kamera Problem - Alles verzerrt Spiele- und Multimedia-Programmierung 4
U Kann nur ein Objekt mit LWJGL rendern Spiele- und Multimedia-Programmierung 2
X LWJGL | Parent.isDisplayable() must be true | wie kann man das zu true machen? Spiele- und Multimedia-Programmierung 0
X [LWJGL] Binden von Texturen per PNG File und Texture Sheet Spiele- und Multimedia-Programmierung 1
X LWJGL - Anklick baren Button erstellen aber wie? Spiele- und Multimedia-Programmierung 6
U Quadrate anklicken LWJGL Spiele- und Multimedia-Programmierung 3
B LWJGL / OPENGL Kriege Depth-Test nicht hin :( Spiele- und Multimedia-Programmierung 0
B LWJGL Manche Seiten werden transparent angezeigt Spiele- und Multimedia-Programmierung 2
T LWJGL VBO's funktionieren nicht, geben aber auch keinen Fehler Spiele- und Multimedia-Programmierung 0
U Komische fragmente bei LWJGL Spiele- und Multimedia-Programmierung 6
B LWJGL StackOverFlow Problem nach 30sekunden. (Pong) Spiele- und Multimedia-Programmierung 2
Q LWJGL - Alpha-Probleme Spiele- und Multimedia-Programmierung 2
S [LWJGL] Zweimal selbe Textur trotz unterschiedlicher IDs Spiele- und Multimedia-Programmierung 3
O LWJGL AWTGLCanvas Tiefe auf 1 beschränkt Spiele- und Multimedia-Programmierung 5
Seikuassi LWJGL-Problem Spiele- und Multimedia-Programmierung 2
S [LWJGL] schwarzer Bildschrim beim rendern von .obj Model Spiele- und Multimedia-Programmierung 2
S [lwjgl] Renderbug bei mehreren Objekten Spiele- und Multimedia-Programmierung 2
R LWJGL: OpenGL Fehler - weitere Informationen auslesen möglich? Spiele- und Multimedia-Programmierung 2
S LWJGL Kamera Koordinaten invertiert. Spiele- und Multimedia-Programmierung 2
M LWJGL Text rendern Spiele- und Multimedia-Programmierung 3
B LWJGL Mauskoordinaten Spiele- und Multimedia-Programmierung 1
J LWJGL Update Schleife (Snake) Spiele- und Multimedia-Programmierung 6
B LWJGL Display.update() ist langsam Spiele- und Multimedia-Programmierung 5
R LWJGL: Performance glBegin, drawList, ... Spiele- und Multimedia-Programmierung 16
R LWJGL: Object Loader -> .obj, .c4d, ... laden Spiele- und Multimedia-Programmierung 3
R LWJGL: Textur -> unsichtbare Stellen, wie erzeugen? Spiele- und Multimedia-Programmierung 4
A LwJGL - Animation Stockt Spiele- und Multimedia-Programmierung 5
R [lwjgl] Cursor -> versetzt Zeichnen / Bild ist umgedreht Spiele- und Multimedia-Programmierung 2
R LWJGL: 3D Picking Spiele- und Multimedia-Programmierung 4
F LWJGL: Textur ändern mit GL11.readPixels Spiele- und Multimedia-Programmierung 5
F LWJGL: Licht und GL_LINES funktioniert nicht Spiele- und Multimedia-Programmierung 6
A [LWJGL] BMP Textur wird nicht richtig dargestellt Spiele- und Multimedia-Programmierung 8
S LWJGL Rechteck wird nicht gezeichnet Spiele- und Multimedia-Programmierung 6
F LWJGL: Is undefined? Spiele- und Multimedia-Programmierung 7
F LWJGL Kamerabug Spiele- und Multimedia-Programmierung 2
F LWJGL Problem mit Erstellen eines Objekts und der Kamera Spiele- und Multimedia-Programmierung 5
F LWJGL Dreidimensionaler Würfel Spiele- und Multimedia-Programmierung 15
P LWJGL oder OpenGL (C++) Spiele- und Multimedia-Programmierung 7
P "Tiefe" in Objekten - LWJGL Spiele- und Multimedia-Programmierung 12
T LWJGL 3D Objekt Collision: Wie? Spiele- und Multimedia-Programmierung 11
S LWJGL Kamera Frage Spiele- und Multimedia-Programmierung 2
V Komischer Fehler in LWJGL Spiele- und Multimedia-Programmierung 18
Z lwjgl oder jogl nutzen Spiele- und Multimedia-Programmierung 9
Y LWJGL Hintergrund Spiele- und Multimedia-Programmierung 7
Creylon [LWJGL] Textur wird falsch angezeigt Spiele- und Multimedia-Programmierung 12
Creylon [LWJGL] Spiel Exportieren Spiele- und Multimedia-Programmierung 2
Creylon [LWJGL] 2D Sprite Rotieren/Drehen Spiele- und Multimedia-Programmierung 6
CookieSoft LWJGL Ubuntu 12.04 Fehler Spiele- und Multimedia-Programmierung 7
F lwjgl - Skysphere Spiele- und Multimedia-Programmierung 3
CookieSoft Slick und LWJGL Texture lag Spiele- und Multimedia-Programmierung 13
U OpenGl 1.1 (LWJGL GL11.*) und weiter? Spiele- und Multimedia-Programmierung 7
0 Grafikfehler LWJGL Spiele- und Multimedia-Programmierung 2
A LWJGL 3D Objekte Kollision Spiele- und Multimedia-Programmierung 3
Luk10 (LWJGL) Aufwendiges Animieren von Texturen Spiele- und Multimedia-Programmierung 16
S (LWJGL) VertexBufferObjects Spiele- und Multimedia-Programmierung 20
T LWJGL Grafik meines Projektes läuft nicht korrekt auf meinem iMac Spiele- und Multimedia-Programmierung 19
B LWJGL/OpenGL rendert manche Objekte nicht Spiele- und Multimedia-Programmierung 6
H LWJGL: Fragen zum Verständnis Spiele- und Multimedia-Programmierung 7
T LWJGL Gui erstellen Spiele- und Multimedia-Programmierung 7
Kenan89 lwjgl Exception Spiele- und Multimedia-Programmierung 3
Z Anfängerfrage: Text anzeigen mit LWJGL Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben