Show Posts
|
|
Pages: [1]
|
|
1
|
Java Game APIs & Engines / JOGL Development / Loading Normals from obj file
|
on: 2011-11-18 14:04:08
|
Hi, I'm having a few issues loading th normals into jogl okay I' ve wrote my model loader and have iterated over the vertices which are loading in just fine and resembling a Cube, now I'm trying to load the normals Ive iterating over the information and have tried to load them I do get some visual faces but in a bit of a mess rather than the shape of a cube any help would be most appreciated. 1 2 3 4 5 6 7 8 9 10 11 12 13
| gl.glVertexPointer( 3, GL2.GL_FLOAT, 0, fBuffer ); gl.glNormalPointer( GL2.GL_FLOAT, 0, nBuffer ); gl.glEnableClientState( GL2.GL_VERTEX_ARRAY ); gl.glEnableClientState( GL2.GL_NORMAL_ARRAY ); gl.glDrawArrays( GL2.GL_POINTS, 0, fVertex.length / 3 ); gl.glDrawArrays( GL2.GL_POLYGON, 0, nNormals.length / 3 ); gl.glDisableClientState( GL2.GL_VERTEX_ARRAY ); gl.glDisableClientState( GL2.GL_NORMAL_ARRAY ); |
These are the the normal which I think are vn in the obj file ? Normal Iterate Array: 0.000000 Normal Iterate Array: -1.000000 Normal Iterate Array: 0.000000 Normal Iterate Array: 0.000000 Normal Iterate Array: 1.000000 Normal Iterate Array: 0.000000 Normal Iterate Array: 1.000000 Normal Iterate Array: 0.000000 Normal Iterate Array: 0.000000 Normal Iterate Array: -0.000000 Normal Iterate Array: -0.000000 Normal Iterate Array: 1.000000 Normal Iterate Array: -1.000000 Normal Iterate Array: -0.000000 Normal Iterate Array: -0.000000 Normal Iterate Array: 0.000000 Normal Iterate Array: 0.000000 Normal Iterate Array: -1.000000 and these are the vertices which I think are v in the obj file? Iterate Array: 1.000000 Iterate Array: -1.000000 Iterate Array: -1.000000 Iterate Array: 1.000000 Iterate Array: -1.000000 Iterate Array: 1.000000 Iterate Array: -1.000000 Iterate Array: -1.000000 Iterate Array: 1.000000 Iterate Array: -1.000000 Iterate Array: -1.000000 Iterate Array: -1.000000 Iterate Array: 1.000000 Iterate Array: 1.000000 Iterate Array: -0.999999 Iterate Array: 0.999999 Iterate Array: 1.000000 Iterate Array: 1.000001 Iterate Array: -1.000000 Iterate Array: 1.000000 Iterate Array: 1.000000 Iterate Array: -1.000000 Iterate Array: 1.000000 Iterate Array: -1.000000
|
|
|
|
|
2
|
Java Game APIs & Engines / JOGL Development / Re: problem loading Float Buffer correctly
|
on: 2011-11-17 22:16:42
|
Hi, I figured out the problem the cube requires 8 vertice where I was putting in the length of the array this does work but interestingly puts a vertice in the middle of the cube, and also interestingly if you don't create any x, y or z coordinates it will create a vertice in the middle without any coordinates as long as you have a number in the vertice in the glDrawArrays. 1
| gl.glDrawArrays( GL2.GL_POINTS, 0, 1 ); |
Wrong 1
| gl.glDrawArrays( GL2.GL_POINTS, 0, pointsf.length ); |
Right 1
| gl.glDrawArrays( GL2.GL_POINTS, 0, 8 ); |
|
|
|
|
|
3
|
Java Game APIs & Engines / JOGL Development / problem loading Float Buffer correctly
|
on: 2011-11-17 21:13:10
|
Hi, I'm having a problem with loading the x,y,z vertices the problem is, is that I get the vertices loaded which resemble a Cube but I keep getting a vertice in the middle of the cube that shouldnt be their ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| private float[]pointsf = { 1.000000f, -1.000000f, -1.000000f, 1.000000f, -1.000000f, 1.000000f, -1.000000f, -1.000000f, 1.000000f, -1.000000f, -1.000000f, -1.000000f, 1.000000f, 1.000000f, -0.999999f, 0.999999f, 1.000000f, 1.000001f, -1.000000f, 1.000000f, 1.000000f, -1.000000f, 1.000000f, -1.000000f };
private FloatBuffer rectVertices;
@Override public void display(GLAutoDrawable gld ) { GL2 gl = gld.getGL().getGL2(); gl.glClear( GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT ); gl.glMatrixMode( GL2.GL_MODELVIEW ); gl.glLoadIdentity(); gl.glTranslatef( 0.0f, 0.0f, -5.0f ); gl.glRotatef( 0, 1.0f, 0.0f, 0.0f ); gl.glRotatef( 0, 0.0f, 1.0f, 0.0f ); rectVertices = GLBuffers.newDirectFloatBuffer( pointsf.length ); rectVertices.put( pointsf ); rectVertices.rewind(); gl.glVertexPointer( 3, GL2.GL_FLOAT, 0, rectVertices ); gl.glEnableClientState( GL2.GL_VERTEX_ARRAY ); gl.glNormal3f( 0,0,1 ); gl.glDrawArrays( GL2.GL_POINTS, 0, pointsf.length ); gl.glDisableClientState( GL2.GL_VERTEX_ARRAY ); }
public void init(GLAutoDrawable gld ) { GL2 gl = gld.getGL().getGL2(); glu = new GLU(); gl.glClearColor( 0.0f, 0.0f, 0.0f, 1.0f ); gl.glEnable( GL2.GL_DEPTH_TEST ); gl.glMatrixMode( GL2.GL_PROJECTION ); gl.glLoadIdentity(); glu.gluPerspective( 45.0, 500.0 / 500.0, 1.0, 500.0 ); gl.glPointSize( 5.0f ); } |
I would of tried to show this in a image but cant figure out how to load the image? [ img ] src = "C:\\Documents and Settings\Administrator\My Documents\My Pictures\pointArray.bmp"/> [/img]
|
|
|
|
|
4
|
Java Game APIs & Engines / OpenGL Development / Problem with FloatBuffer Array
|
on: 2011-11-17 21:07:00
|
Hi, I'm having a problem with loading the x,y,z vertices the problem is, is that I get the vertices loaded which resemble a Cube but I keep getting a vertice in the middle of the cube that shouldnt be their ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| private float[]pointsf = { 1.000000f, -1.000000f, -1.000000f, 1.000000f, -1.000000f, 1.000000f, -1.000000f, -1.000000f, 1.000000f, -1.000000f, -1.000000f, -1.000000f, 1.000000f, 1.000000f, -0.999999f, 0.999999f, 1.000000f, 1.000001f, -1.000000f, 1.000000f, 1.000000f, -1.000000f, 1.000000f, -1.000000f };
private FloatBuffer rectVertices;
@Override public void display(GLAutoDrawable gld ) { GL2 gl = gld.getGL().getGL2(); gl.glClear( GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT ); gl.glMatrixMode( GL2.GL_MODELVIEW ); gl.glLoadIdentity(); gl.glTranslatef( 0.0f, 0.0f, -5.0f ); gl.glRotatef( 0, 1.0f, 0.0f, 0.0f ); gl.glRotatef( 0, 0.0f, 1.0f, 0.0f ); rectVertices = GLBuffers.newDirectFloatBuffer( pointsf.length ); rectVertices.put( pointsf ); rectVertices.rewind(); gl.glVertexPointer( 3, GL2.GL_FLOAT, 0, rectVertices ); gl.glEnableClientState( GL2.GL_VERTEX_ARRAY ); gl.glNormal3f( 0,0,1 ); gl.glDrawArrays( GL2.GL_POINTS, 0, pointsf.length ); gl.glDisableClientState( GL2.GL_VERTEX_ARRAY ); }
public void init(GLAutoDrawable gld ) { GL2 gl = gld.getGL().getGL2(); glu = new GLU(); gl.glClearColor( 0.0f, 0.0f, 0.0f, 1.0f ); gl.glEnable( GL2.GL_DEPTH_TEST ); gl.glMatrixMode( GL2.GL_PROJECTION ); gl.glLoadIdentity(); glu.gluPerspective( 45.0, 500.0 / 500.0, 1.0, 500.0 ); gl.glPointSize( 5.0f ); } |
I would of tried to show this in a image but cant figure out how to load the image? [ img ] src = "C:\\Documents and Settings\Administrator\My Documents\My Pictures\pointArray.bmp"/> [/img]
|
|
|
|
|
6
|
Game Development / Newbie & Debugging Questions / Rotating a shape
|
on: 2011-07-17 09:32:49
|
Hi, I have a problem what I'm trying to do is make my fillRect() Rotate constantly as it moves around a point What i mean by this is, I have wrote the trigonometry so the fillRect() moves around a point constantly and then what I am trying to do is make the shape rotate as it goes around the point any help would be apprecited 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*;
public class PhysicGUI extends JFrame { private Trigonometry trig; private MoveAnim move; private Timer timer;
private int x; private int y; private double hypotenese; private double cosine; private double sine; private double counter; private int radianCounter;
public PhysicGUI() { super(); setSize( 500, 500 ); setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); trig = new Trigonometry(); move = new MoveAnim(); timer = new Timer( 500, move );
x = 250; y = 250;
hypotenese = 60; sine = 0; cosine = 0; counter = 0; radianCounter = 0; timer.start(); }
public void paint( Graphics g ) { super.paint( g ); Graphics2D g2d = ( Graphics2D )g; g2d.translate( 15, 15 ); g2d.rotate( radianCounter++, x , y ); g2d.fillRect( x + ( int )trig.getCosine() , y + ( int )trig.getSine(), 30, 30 ); }
public void move() { double radian = Math.toRadians( counter ); cosine = Math.cos( radian ) * hypotenese; sine = Math.sin( radian ) * hypotenese; counter = counter + 30;
if( counter > 360 ) { counter = 0; }
}
public class MoveAnim implements ActionListener { public void actionPerformed(ActionEvent e) { repaint(); move(); } }
public static void main( String[]args ) { PhysicGUI gui = new PhysicGUI(); gui.setVisible( true ); }
} |
|
|
|
|
|