Re: Using multiple models in a scene
Posted by ted_gress on Jun 22, 2018; 6:37pm
URL: https://forum.jogamp.org/Using-multiple-models-in-a-scene-tp4038956p4038958.html
public class CubeObject extends WSObject implements IThreeDimensionalObject {
@Override
public void Render() {
// TODO Auto-generated method stub
}
ShortBuffer cubeVertices;
static ShortBuffer cubeTexCoords;
static FloatBuffer cubeColors;
static ByteBuffer cubeNormals;
static ByteBuffer cubeIndices;
static float[] light_position = { -50.f, 50.f, 50.f, 0.f };
static float[] light_ambient = { 0.125f, 0.125f, 0.125f, 1.f };
static float[] light_diffuse = { 1.0f, 1.0f, 1.0f, 1.f };
static float[] material_spec = { 1.0f, 1.0f, 1.0f, 0.f };
static float[] zero_vec4 = { 0.0f, 0.0f, 0.0f, 0.f };
public CubeObject()
{
this.cubeVertices = Buffers.newDirectShortBuffer(s_cubeVertices.length);
cubeVertices.put(s_cubeVertices);
cubeVertices.flip();
this.cubeColors = Buffers.newDirectFloatBuffer(s_cubeColors.length);
cubeColors.put(s_cubeColors);
cubeColors.flip();
this.cubeNormals = Buffers.newDirectByteBuffer(s_cubeNormals.length);
cubeNormals.put(s_cubeNormals);
cubeNormals.flip();
this.cubeIndices = Buffers.newDirectByteBuffer(s_cubeIndices.length);
cubeIndices.put(s_cubeIndices);
cubeIndices.flip();
this.cubeTexCoords = Buffers.newDirectShortBuffer(s_cubeTexCoords.length);
cubeTexCoords.put(s_cubeTexCoords);
cubeTexCoords.flip();
}
public static short[] s_cubeVertices =
{
-10, 10, 10, 10, -10, 10, 10, 10, 10, -10, -10, 10,
-10, 10, -10, 10, -10, -10, 10, 10, -10, -10, -10, -10,
-10, -10, 10, 10, -10, -10, 10, -10, 10, -10, -10, -10,
-10, 10, 10, 10, 10, -10, 10, 10, 10, -10, 10, -10,
10, -10, 10, 10, 10, -10, 10, 10, 10, 10, -10, -10,
-10, -10, 10, -10, 10, -10, -10, 10, 10, -10, -10, -10
};
public static short[] s_cubeTexCoords =
{
0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,
0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,
0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,
0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,
0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,
0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,
};
public static float[] s_cubeColors =
{
40f/255f, 80f/255f, 160f/255f, 255f/255f, 40f/255f, 80f/255f, 160f/255f, 255f/255f,
40f/255f, 80f/255f, 160f/255f, 255f/255f, 40f/255f, 80f/255f, 160f/255f, 255f/255f,
40f/255f, 80f/255f, 160f/255f, 255f/255f, 40f/255f, 80f/255f, 160f/255f, 255f/255f,
40f/255f, 80f/255f, 160f/255f, 255f/255f, 40f/255f, 80f/255f, 160f/255f, 255f/255f,
128f/255f, 128f/255f, 128f/255f, 255f/255f, 128f/255f, 128f/255f, 128f/255f, 255f/255f,
128f/255f, 128f/255f, 128f/255f, 255f/255f, 128f/255f, 128f/255f, 128f/255f, 255f/255f,
128f/255f, 128f/255f, 128f/255f, 255f/255f, 128f/255f, 128f/255f, 128f/255f, 255f/255f,
128f/255f, 128f/255f, 128f/255f, 255f/255f, 128f/255f, 128f/255f, 128f/255f, 255f/255f,
255f/255f, 110f/255f, 10f/255f, 255f/255f, 255f/255f, 110f/255f, 10f/255f, 255f/255f,
255f/255f, 110f/255f, 10f/255f, 255f/255f, 255f/255f, 110f/255f, 10f/255f, 255f/255f,
255f/255f, 70f/255f, 60f/255f, 255f/255f, 255f/255f, 70f/255f, 60f/255f, 255f/255f,
255f/255f, 70f/255f, 60f/255f, 255f/255f, 255f/255f, 70f/255f, 60f/255f, 255
};
public byte[] s_cubeIndices =
{
0, 3, 1, 2, 0, 1, /* front */
6, 5, 4, 5, 7, 4, /* back */
8, 11, 9, 10, 8, 9, /* top */
15, 12, 13, 12, 14, 13, /* bottom */
16, 19, 17, 18, 16, 17, /* right */
23, 20, 21, 20, 22, 21 /* left */
};
public static byte[] s_cubeNormals =
{
0, 0, 127, 0, 0, 127, 0, 0, 127, 0, 0, 127,
0, 0, -128, 0, 0, -128, 0, 0, -128, 0, 0, -128,
0, -128, 0, 0, -128, 0, 0, -128, 0, 0, -128, 0,
0, 127, 0, 0, 127, 0, 0, 127, 0, 0, 127, 0,
127, 0, 0, 127, 0, 0, 127, 0, 0, 127, 0, 0,
-128, 0, 0, -128, 0, 0, -128, 0, 0, -128, 0, 0
};
}