Hello,
taking the following code: public void draw()
{
GL11.glPushMatrix();
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
GL11.glLoadIdentity();
GL11.glTranslatef(x,y,-7.0f);
//GL.glRotatef(angle, rotx, roty, rotz);
GL11.glBegin(GL11.GL_QUADS);
{
//oben
GL11.glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green
GL11.glVertex3f( 10.0f, 10.0f,-10.0f); // Top Right Of The Quad (Top)
GL11.glVertex3f(-10.0f, 10.0f,-10.0f); // Top Left Of The Quad (Top)
GL11.glVertex3f(-10.0f, 10.0f, 10.0f); // Bottom Left Of The Quad (Top)
GL11.glVertex3f( 10.0f, 10.0f, 10.0f); // Bottom Right Of The Quad (Top)
//vorne
GL11.glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange
GL11.glVertex3f( 10.0f,-10.0f, 10.0f); // Top Right Of The Quad (Bottom)
GL11.glVertex3f(-10.0f,-10.0f, 10.0f); // Top Left Of The Quad (Bottom)
GL11.glVertex3f(-10.0f,-10.0f, -10.0f); // Bottom Left Of The Quad (Bottom)
GL11.glVertex3f( 10.0f,-10.0f, -10.0f); // Bottom Right Of The Quad (Bottom)
//unten
GL11.glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red
GL11.glVertex3f( 10.0f, 10.0f, 10.0f); // Top Right Of The Quad (Front)
GL11.glVertex3f(-10.0f, 10.0f, 10.0f); // Top Left Of The Quad (Front)
GL11.glVertex3f(-10.0f,-10.0f, 10.0f); // Bottom Left Of The Quad (Front)
GL11.glVertex3f( 10.0f,-10.0f, 10.0f); // Bottom Right Of The Quad (Front)
//hinten
GL11.glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow
GL11.glVertex3f( 10.0f,-10.0f,-10.0f); // Bottom Left Of The Quad (Back)
GL11.glVertex3f(-10.0f,-10.0f,-10.0f); // Bottom Right Of The Quad (Back)
GL11.glVertex3f(-10.0f, 10.0f,-10.0f); // Top Right Of The Quad (Back)
GL11.glVertex3f( 10.0f, 10.0f,-10.0f); // Top Left Of The Quad (Back)
GL11.glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue
GL11.glVertex3f(-10.0f, 10.0f, 10.0f); // Top Right Of The Quad (Left)
GL11.glVertex3f(-10.0f, 10.0f,-10.0f); // Top Left Of The Quad (Left)
GL11.glVertex3f(-10.0f,-10.0f,-10.0f); // Bottom Left Of The Quad (Left)
GL11.glVertex3f(-10.0f,-10.0f, 10.0f); // Bottom Right Of The Quad (Left)
GL11.glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet
GL11.glVertex3f( 10.0f, 10.0f,-10.0f); // Top Right Of The Quad (Right)
GL11.glVertex3f( 10.0f, 10.0f, 10.0f); // Top Left Of The Quad (Right)
GL11.glVertex3f( 10.0f,-10.0f, 10.0f); // Bottom Left Of The Quad (Right)
GL11.glVertex3f( 10.0f,-10.0f,-10.0f); // Bottom Right Of The Quad (Right)
}
GL11.glEnd();
GL11.glPopMatrix();
}
is there any mistake, because there is absolutely nothing drawn on the screen?
Maybe your box is out of your sight? You translate -7 in z... Try draw box with smaller sides, not 10:
GL11.glVertex3f( 1.0f, 1.0f,-1.0f);
and see then.
yea, side sizes of 10 at -7 depthview is really to big. The cubes curves are out of sight, as my preposter allready said.
I changed the GL11.glVertex3f to GL11.glVertex3f(1.0f, 1.0f, 1.0f) but i still couldn't see any cube-like thing. Then i thought the moving just 1 to each side might create a cube that's simply hard to see so i multiplied all values by 5 but still nothing...
How are you changing the x and y values that you have in the draw()? Are you using the Keyboard? If so check for another key and have that adjust the z value so you can move the cube in and out. If you leave x and y set at 0's for now you should be able to move the cube in and out and find the optimal viewing distance!
CaseyB
I tried that too, i pressed the keys until the Z values was +/- around 1000 and i still couldn't see anything. I am going to paste the two classes here, amybe there is a mistake somewhere and i just can't see it:package manager;
import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.*;
public class Main
{
private boolean done = false;
private Player player;
public Main()
{
}
public void render()
{
GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
player.draw();
}
public void cleanUp()
{
Display.destroy();
Keyboard.destroy();
}
private void initialize(DisplayMode dm)
{
try {
Display.setDisplayMode(dm);
Display.setFullscreen(false);
Display.setTitle("Tutorial1");
Display.create();
GL11.glClearColor(1.5f, 0.0f, 1.0f, 0.0f);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, dm.getWidth(), dm.getHeight(), 0, -1, 1);
}
catch(LWJGLException e)
{
e.printStackTrace();
}
}
public DisplayMode getDisplayMode(int width, int height, int depth)
{
try {
DisplayMode[] modes = Display.getAvailableDisplayModes();
for(int i=0; i<modes.length; i++)
{
if((modes[i].getWidth() == width) && (modes[i].getHeight() == height)
&& (modes[i].getBitsPerPixel()>=depth))
{
return modes[i];
}
}
}
catch(LWJGLException e)
{
e.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
public void poll()
{
Keyboard.poll();
if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE) || Display.isCloseRequested())
{
done = true;
}
else if(Keyboard.isKeyDown(Keyboard.KEY_LEFT))
{
player.setX(player.getX() - 0.5f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_RIGHT))
{
player.setX(player.getX() + 0.5f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_UP))
{
player.setY(player.getY() - 1.0f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_DOWN))
{
player.setY(player.getY() + 1.0f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_NUMPAD9))
{
player.setX(player.getX() + 0.4f);
player.setY(player.getY() - 0.5f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_NUMPAD7))
{
player.setX(player.getX() - 0.4f);
player.setY(player.getY() - 0.5f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_NUMPAD3))
{
player.setX(player.getX() + 0.4f);
player.setY(player.getY() + 0.5f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_NUMPAD1))
{
player.setX(player.getX() - 0.4f);
player.setY(player.getY() + 0.5f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_NUMPAD2))
{
player.setY(player.getY() + 1.0f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_NUMPAD4))
{
player.setX(player.getX() - 0.5f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_NUMPAD6))
{
player.setX(player.getX() + 0.5f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_NUMPAD8))
{
player.setY(player.getY() - 1.0f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_W))
{
player.setZ(player.getZ() + 1.0f);
}
else if(Keyboard.isKeyDown(Keyboard.KEY_S))
{
player.setZ(player.getZ() - 1.0f);
}
player.draw();
}
public void mainLoop() throws Exception
{
Display.makeCurrent();
player.setPosition(15.0f, 1.0f, -7.0f);
while(!done)
{
poll();
render();
Display.update();
}
}
public static void main(String[] args)
{
Main main = new Main();
try {
DisplayMode dm = main.getDisplayMode(640, 480, 32);
main.player = new Player(dm);
main.initialize(dm);
main.mainLoop();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
main.cleanUp();
}
}
}
package manager;
import org.lwjgl.opengl.*;
import org.lwjgl.util.*;
import org.lwjgl.opengl.glu.Sphere;
public class Player
{
private float x, y, z, rotx, roty, rotz, angle;
private DisplayMode dm;
public Player(DisplayMode dm)
{
this.dm = dm;
}
public void setX(float x)
{
this.x = x;
if(x >= dm.getWidth())
{
this.x = 1.0f;
}
else if(x == 0)
{
this.x = dm.getWidth();
}
}
public float getX()
{
return x;
}
public void setY(float y)
{
this.y = y;
if(y >= dm.getHeight())
{
this.y = 1.0f;
}
else if(y == 0)
{
this.y = dm.getHeight();
}
}
public float getY()
{
return y;
}
public void setPosition(float x, float y)
{
this.x = x;
this.y = y;
}
public void setPosition(float x, float y, float z)
{
this.x = x;
this.y = y;
this.z = z;
}
public void setRotX(float x)
{
rotx = x;
}
public float getRotX()
{
return rotx;
}
public void setZ(float z)
{
this.z = z;
}
public float getZ()
{
return z;
}
public void setRotY(float y)
{
roty = y;
}
public float getRotY()
{
return roty;
}
public void setRotZ(float z)
{
rotz = z;
}
public float getRotZ()
{
return rotz;
}
public void setRotAngle(float angle)
{
this.angle = angle;
}
public float getRotAngle()
{
return angle;
}
public void setInitialRotation(float angle, float x, float y, float z)
{
this.angle = angle;
rotx = x;
roty = y;
rotz = z;
}
public void draw()
{
GL11.glPushMatrix();
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
GL11.glLoadIdentity();
GL11.glTranslatef(x,y,z);
GL11.glBegin(GL11.GL_QUADS);
{
//oben
GL11.glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green
GL11.glVertex3f( 10.0f, 10.0f,-1.0f); // Top Right Of The Quad (Top)
GL11.glVertex3f(-10.0f, 10.0f,-1.0f); // Top Left Of The Quad (Top)
GL11.glVertex3f(-10.0f, 10.0f, 1.0f); // Bottom Left Of The Quad (Top)
GL11.glVertex3f( 10.0f, 10.0f, 1.0f); // Bottom Right Of The Quad (Top)
//vorne
GL11.glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange
GL11.glVertex3f( 10.0f,-10.0f, 1.0f); // Top Right Of The Quad (Bottom)
GL11.glVertex3f(-10.0f,-10.0f, 1.0f); // Top Left Of The Quad (Bottom)
GL11.glVertex3f(-10.0f,-10.0f, -1.0f); // Bottom Left Of The Quad (Bottom)
GL11.glVertex3f( 10.0f,-10.0f, -1.0f); // Bottom Right Of The Quad (Bottom)
//unten
GL11.glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red
GL11.glVertex3f( 10.0f, 10.0f, 1.0f); // Top Right Of The Quad (Front)
GL11.glVertex3f(-10.0f, 10.0f, 1.0f); // Top Left Of The Quad (Front)
GL11.glVertex3f(-10.0f,-10.0f, 1.0f); // Bottom Left Of The Quad (Front)
GL11.glVertex3f( 10.0f,-10.0f, 1.0f); // Bottom Right Of The Quad (Front)
//hinten
GL11.glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow
GL11.glVertex3f( 10.0f,-10.0f,-1.0f); // Bottom Left Of The Quad (Back)
GL11.glVertex3f(-10.0f,-10.0f,-1.0f); // Bottom Right Of The Quad (Back)
GL11.glVertex3f(-10.0f, 10.0f,-1.0f); // Top Right Of The Quad (Back)
GL11.glVertex3f( 10.0f, 10.0f,-1.0f); // Top Left Of The Quad (Back)
GL11.glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue
GL11.glVertex3f(-10.0f, 10.0f, 1.0f); // Top Right Of The Quad (Left)
GL11.glVertex3f(-10.0f, 10.0f,-1.0f); // Top Left Of The Quad (Left)
GL11.glVertex3f(-10.0f,-10.0f,-1.0f); // Bottom Left Of The Quad (Left)
GL11.glVertex3f(-10.0f,-10.0f, 1.0f); // Bottom Right Of The Quad (Left)
GL11.glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet
GL11.glVertex3f( 10.0f, 10.0f,-1.0f); // Top Right Of The Quad (Right)
GL11.glVertex3f( 10.0f, 10.0f, 1.0f); // Top Left Of The Quad (Right)
GL11.glVertex3f( 10.0f,-10.0f, 1.0f); // Bottom Left Of The Quad (Right)
GL11.glVertex3f( 10.0f,-10.0f,-1.0f); // Bottom Right Of The Quad (Right)
}
GL11.glEnd();
GL11.glPopMatrix();
}
}
GL11.glOrtho(0, dm.getWidth(), dm.getHeight(), 0, -1, 1);
That code is at least part of your problem.
Try this:
GLU.gluPerspective(45.0f, (float)dm.getWidth() / (float)dm.getHeight(), 0.1f, 1000.0f);
You were setting up an Ortho view with a z value from -1 to 1 (probably not enough to see the cube :lol: )
Thanks! Of course that makes sense what you said, so i changed it but i'm still not successful. I tried the old code with GL11.glOrtho as well with changed values, but the same...
I noticed something else... Try putting:
GL11.glMatrixMode(GL11.GL_MODELVIEW);
after the GLU.gluPerspective() call.
Also change the cube sides to between 0.9f and -0.9f on the z coordinates.
ie.
GL11.glVertex3f( 10.0f,-10.0f,-0.9f); // Bottom Right Of The Quad