arrghh someone deleted my program, and i had to rewrite it.
right now i’ve got
import java.awt.*;
import java.io.File;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import java.util.Vector;
import org.lwjgl.BufferUtils;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.*;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.util.glu.GLU;
import org.lwjgl.util.vector.Matrix4f;
import org.lwjgl.util.vector.Vector4f;
import org.newdawn.slick.opengl.TextureLoader;
import org.newdawn.slick.util.*;
import com.google.sites.lvgeeks.deepthought.utils.opengl.lwjgl.*;
public class lwjgltest {
DisplayMode mode;
int frag, vert,prog;
/**
* Sets up the screen.
*
* @see javax.media.openGL11.GLEventListener#init(javax.media.openGL11.GLAutoDrawable)
*/
public static void main(String args[])
{
new lwjgltest();
}
public lwjgltest()
{
init();
while(!Display.isCloseRequested())
{
render();
Display.update();
}
}
/**
* Sets up the screen.
*
* @see javax.media.opengl.GLEventListener#init(javax.media.opengl.GLAutoDrawable)
*/
public void init() {
try {
Display.create();
mode = Display.getDisplayMode();
} catch (LWJGLException e) {
e.printStackTrace();
}
// Enable z- (depth) buffer for hidden surface removal.
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glDepthFunc(GL11.GL_LEQUAL);
// Enable smooth shading.
GL11.glShadeModel(GL11.GL_SMOOTH);
// Define "clear" color.
GL11.glClearColor(0f, 0f, 0f, 0f);
// We want a nice perspective.
GL11.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST);
frag = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER);
vert = GL20.glCreateShader(GL20.GL_VERTEX_SHADER);
prog = GL20.glCreateProgram();
glutil.shader(frag, new File("shaders/test.frag"));
glutil.shader(vert, new File("shaders/test.vert"));
GL20.glAttachShader(prog, vert);
GL20.glAttachShader(prog, frag);
glutil.link(prog);
GL20.glUseProgram(prog);
}
public void render()
{
float vertices[] = new float[]{20,0,0,
20,20,0,
0,20,0};
float colors[] = new float[]{1,0,0,
0,1,0,
0,0,1};
FloatBuffer verticesBuffer = BufferUtils.createFloatBuffer(vertices.length);
FloatBuffer colorsBuffer = BufferUtils.createFloatBuffer(colors.length);
verticesBuffer.put(vertices).flip();
colorsBuffer.put(colors).flip();
AnotherBloodyCamera.look( 45, mode.getWidth()/mode.getHeight(), 5, 5, 200, 0, 0,0);
int vtx = GL20.glGetAttribLocation(prog,"a_Vertex");
int clr = GL20.glGetAttribLocation(prog,"a_Color");
GL20.glEnableVertexAttribArray(vtx);
GL20.glEnableVertexAttribArray(clr);
int mvm = GL20.glGetUniformLocation(prog, "modelview_matrix");
int prm = GL20.glGetUniformLocation(prog, "projection_matrix");
FloatBuffer mm = BufferUtils.createFloatBuffer(16);
FloatBuffer pm = BufferUtils.createFloatBuffer(16);
GL11.glGetFloat(GL11.GL_MODELVIEW_MATRIX, mm);
GL11.glGetFloat(GL11.GL_PROJECTION_MATRIX, pm);
GL20.glUniformMatrix4(mvm, false, mm);
GL20.glUniformMatrix4(prm, false, pm);
GL20.glVertexAttribPointer(vtx, 3, false, 0, verticesBuffer);
GL20.glVertexAttribPointer(clr, 3, false, 0, colorsBuffer);
GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, 3);
}
}
and
package com.google.sites.lvgeeks.deepthought.utils.opengl.lwjgl;
import org.lwjgl.opengl.*;
import org.lwjgl.util.glu.*;
public class AnotherBloodyCamera {
public static void look(int FOV,float aspectratio, float atx, float aty, float atz,float yaw, float pitch,float roll)
{
yaw+=180;
while(pitch>360||pitch<0)
{
if(pitch>360)
{
pitch-=360;
}
if(pitch<0)
{
pitch+=360;
}
}
while(yaw>360||yaw<0)
{
if(yaw>360)
{
yaw-=360;
}
if(yaw<0)
{
yaw+=360;
}
}
while(roll>360||roll<0)
{
if(roll>360)
{
roll-=360;
}
if(roll<0)
{
roll+=360;
}
}
double yawrad = (Math.PI*yaw)/180;
double pitchrad = (Math.PI*pitch)/180;
float lookz=(float) (atz+(30*Math.cos(yawrad)));
float lookx=(float) (atx+(30*Math.sin(yawrad)));
float looky=(float) (aty+(30*Math.tan(pitchrad)));
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GLU.gluPerspective(FOV, aspectratio, 1f, 9000f);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glLoadIdentity();
GL11.glRotatef(-roll, 0, 0, 1);
GLU.gluLookAt(atx, aty, atz, lookx, looky, lookz, 0, 1, 0);
//System.out.println(lookx+" "+ looky+" "+ lookz);
}
}
but it just gives me a black screen whenever i render. why is that?