Hi, I've been batting my head against a wall for some time on this topic and am curious if anyone out there can spot a mistake I have made. Essentially, what I am trying to do is construct a 3d asteroid field. I wanted to use 'interesting' shapes and so have generated some items in a 3D program...which I exported as .obj files. I have read these into my program, storing them as vertices and can generate the shape in a jogl display. Happy days. The next stap was to wrap a suitable texture around the object and this is where i have been stuck for some time- i have searched numerous forums yet can't seem to crack it.
This is how i'm loading the texture image:
//do stuff for the bound texture
//-get input stream and bind to image integer place-holder
InputStream stream1 = AsteroidListener.class.getResourceAsStream("textures/asteroid_texture.png");
BufferedInputStream bis = new BufferedInputStream(stream1);
//-create buffered image
BufferedImage bi= ImageIO.read(bis);
Raster r =bi.getRaster();
DataBufferByte dbi= (DataBufferByte) r.getDataBuffer();
//-create final byte buffer to use as the texture
int texSize =b.length;
//System.out.println("tex size is:" +texSize);
ByteBuffer texture= ByteBuffer.allocateDirect(texSize);
ByteOrder newOrder= ByteOrder.nativeOrder();
//-fill texture that is in byte array
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_NEAREST);
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR_MIPMAP_LINEAR);
glu.gluBuild2DMipmaps(GL.GL_TEXTURE_2D, GL.GL_RGB, bi.getWidth(), bi.getHeight(), GL.GL_RGB, GL.GL_UNSIGNED_BYTE,texture);
And i'm (trying) to wrap the generated shape with:
Yet all I seem to be getting is the desired shape textured with something that is 'not quite right'. The texture appears to be getting overlaid, yet it is not the right colour and there seem to be some very odd 'flourescing' effects on the surface of the object.
Has anyone come across this before?