Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Moraff

Pages: [1]
1
Support / Re: Multiple textures on one cube
« on: October 03, 2011, 07:27:11 am »
Thanks for the quick answer. Your suggestion worked fine for creating the cube. I generalized it so that it can use any x1,x2,y1,y2,z1,z2 and paste the 6 images onto the faces. I also am using buffered images so that I can print onto the sides of the cubes. I haven't started with the transformations yet, but I am looking forward to playing with them. I had a lot of fun with Java2D's transform system.


void createBox() {
   texture[0] = new Texture(image[0].bufferedImage);
   TextureManager.getInstance().addTexture(debugName + "t0", texture[0]);
texture[1] = new Texture(image[1].bufferedImage);
TextureManager.getInstance().addTexture(debugName + "t1", texture[1]);
texture[2] = new Texture(image[2].bufferedImage);
TextureManager.getInstance().addTexture(debugName + "t2", texture[2]);
texture[3] = new Texture(image[3].bufferedImage);
TextureManager.getInstance().addTexture(debugName + "t3", texture[3]);
texture[4] = new Texture(image[4].bufferedImage);
TextureManager.getInstance().addTexture(debugName + "t4", texture[4]);
texture[5] = new Texture(image[5].bufferedImage);
TextureManager.getInstance().addTexture(debugName + "t5", texture[5]);

box = new Object3D(12);

SimpleVector upperLeftFront = new SimpleVector(locationActual.x1, locationActual.y1, locationActual.z1);
SimpleVector upperRightFront = new SimpleVector(locationActual.x2, locationActual.y1, locationActual.z1);
SimpleVector lowerLeftFront = new SimpleVector(locationActual.x1, locationActual.y2, locationActual.z1);
SimpleVector lowerRightFront = new SimpleVector(locationActual.x2, locationActual.y2, locationActual.z1);

SimpleVector upperLeftBack = new SimpleVector(locationActual.x1, locationActual.y1, locationActual.z2);
SimpleVector upperRightBack = new SimpleVector(locationActual.x2, locationActual.y1, locationActual.z2);
SimpleVector lowerLeftBack = new SimpleVector(locationActual.x1, locationActual.y2, locationActual.z2);
SimpleVector lowerRightBack = new SimpleVector(locationActual.x2, locationActual.y2, locationActual.z2);

TextureManager tm = TextureManager.getInstance();

// Front
box.addTriangle(upperLeftFront, 0, 0, lowerLeftFront, 0, 1, upperRightFront, 1, 0, tm.getTextureID(debugName + "t1"));
box.addTriangle(upperRightFront, 1, 0, lowerLeftFront, 0, 1, lowerRightFront, 1, 1, tm.getTextureID(debugName + "t1"));

// Back
box.addTriangle(upperLeftBack, 0, 0, upperRightBack, 1, 0, lowerLeftBack, 0, 1, tm.getTextureID(debugName + "t0"));
box.addTriangle(upperRightBack, 1, 0, lowerRightBack, 1, 1, lowerLeftBack, 0, 1, tm.getTextureID(debugName + "t0"));

// Upper
box.addTriangle(upperLeftBack, 0, 0, upperLeftFront, 0, 1, upperRightBack, 1, 0, tm.getTextureID(debugName + "t4"));
box.addTriangle(upperRightBack, 1, 0, upperLeftFront, 0, 1, upperRightFront, 1, 1, tm.getTextureID(debugName + "t4"));
// box.addTriangle(upperLeftBack, 0, 0, upperLeftFront, 0, 1, upperRightBack, 1, 0);
// box.addTriangle(upperRightBack, 1, 0, upperLeftFront, 0, 1, upperRightFront, 1, 1);

// Lower
box.addTriangle(lowerLeftBack, 0, 0, lowerRightBack, 1, 0, lowerLeftFront, 0, 1, tm.getTextureID(debugName + "t3"));
box.addTriangle(lowerRightBack, 1, 0, lowerRightFront, 1, 1, lowerLeftFront, 0, 1, tm.getTextureID(debugName + "t3"));

// Left
box.addTriangle(upperLeftFront, 0, 0, upperLeftBack, 1, 0, lowerLeftFront, 0, 1, tm.getTextureID(debugName + "t2"));
box.addTriangle(upperLeftBack, 1, 0, lowerLeftBack, 1, 1, lowerLeftFront, 0, 1, tm.getTextureID(debugName + "t2"));

// Right
box.addTriangle(upperRightFront, 0, 0, lowerRightFront, 0, 1, upperRightBack, 1, 0, tm.getTextureID(debugName + "t5"));
box.addTriangle(upperRightBack, 1, 0, lowerRightFront, 0, 1, lowerRightBack, 1, 1, tm.getTextureID(debugName + "t5"));

box.setTexture("dfg");

box.build();

}

2
Support / Multiple textures on one cube
« on: September 30, 2011, 05:00:20 pm »
I've been trying to put a different picture on each side of a cube. I was able to do it by creating 6 planes and making them a cube, but three planes always faced the wrong way (into the interior of the cube). I am trying to build a 3D gaming framework for creating educational software that uses a lot of images on 3D blocks.

My second question is whether there is a way to transform a cube after it is created that will allow scaling control for each of the x, y, and z axis independently. I created an awesome animation system for Java2D that allows a lot of transforms to unwind, but I want to adapt it for 3D transforms. Should I access the object's matrix? If so, is there documentation on the structure of the jpct 3D matrix?

I am new to real 3D programming and jpct, so thanks for your patience!

Steve Moraff

Pages: [1]