mpb = modelBuilder.part("cylinder", GL20.GL_TRIANGLES, Usage.Position | Usage.Normal | Usage.TextureCoordinates | Usage.ColorPacked, material); mpb.setUVRange(1f, 1f, 0f, 0f); mpb.cylinder(2f, 4f, 3f, 15); mpb = modelBuilder.part("capsule", GL20.GL_TRIANGLES, Usage.Position | Usage.Normal | Usage.TextureCoordinates | Usage.ColorPacked, material); mpb.setUVRange(1f, 1f, 0f, 0f); mpb.capsule(1.5f, 5f, 15); mpb = modelBuilder.part("capsuleNoTexture", GL20.GL_TRIANGLES, Usage.Position | Usage.Normal | Usage.ColorPacked, solidMaterial); mpb.setUVRange(1f, 1f, 0f, 0f); mpb.capsule(1.5f, 5f, 15); mpb = modelBuilder.part("transformedSphere", GL20.GL_TRIANGLES, Usage.Position | Usage.Normal | Usage.ColorPacked, solidMaterial); mpb.setUVRange(1f, 1f, 0f, 0f); mpb.sphere(new Matrix4().translate(5, 0, 10).rotate(Vector3.Z, 45).scale(1, 2, 1), 1f, 1f, 1f, 12, 16); mpb.addMesh(mesh); mpb.setVertexTransform(transform.setToTranslation(0, 1, 1)); mpb.setUVRange(0.75f, 0.75f, 0.25f, 0.25f); mpb.addMesh(mesh);
new Material("tree")); part.rect(0f, 0f, -10f, 10f, 0f, -10f, 10f, 10f, -10f, 0f, 10f, -10f, 0, 0, 1f); part.setUVRange(1, 0, 0, 1); part.rect(10f, 0f, -10f, 0f, 0f, -10f, 0f, 10f, -10f, 10f, 10f, -10f, 0, 0, -1f); floorModel = builder.end();
new Material("tree")); part.rect( 0f, 0f, -10f, 10f, 0f, -10f, 10f, 10f, -10f, 0f, 10f, -10f, 0, 0, 1f); part.setUVRange(1, 0, 0, 1); part.rect(10f, 0f, -10f, 0f, 0f, -10f, 0f, 10f, -10f, 10f, 10f, -10f, 0, 0, -1f); floorModel = builder.end();
modelBuilder.begin(); MeshPartBuilder mpb = modelBuilder.part("box", primitiveType, attributes, material); mpb.setUVRange(yourRegion); mpb.box(width, height, depth); cube = modelBuilder.end();
private Model createPlaneModel(final float width, final float height, final Material material, final float u1, final float v1, final float u2, final float v2) { modelBuilder.begin(); MeshPartBuilder bPartBuilder = modelBuilder.part("rect", GL10.GL_TRIANGLES, Usage.Position | Usage.Normal | Usage.TextureCoordinates, material); //NOTE ON TEXTURE REGION, MAY FILL OTHER REGIONS, USE GET region.getU() and so on bPartBuilder.setUVRange(u1, v1, u2, v2); bPartBuilder.rect( -(width*0.5f), -(height*0.5f), 0, (width*0.5f), -(height*0.5f), 0, (width*0.5f), (height*0.5f), 0, -(width*0.5f), (height*0.5f), 0, 0, 0, -1); return (modelBuilder.end()); }
int attr = VertexAttributes.Usage.Position | VertexAttributes.Usage.Normal | VertexAttributes.Usage.TextureCoordinates; modelBuilder.begin(); MeshPartBuilder mpb = modelBuilder.part("box", GL20.GL_TRIANGLES, attr, new Material(TextureAttribute.createDiffuse(AssetLoader.tr[0].getTexture()))); mpb.setUVRange(AssetLoader.tr[0]); mpb.rect(-2f,-2f,-2f, -2f,2f,-2f, 2f,2f,-2, 2f,-2f,-2f, 0,0,-1); mpb.setUVRange(AssetLoader.tr[1]); mpb.rect(-2f,2f,2f, -2f,-2f,2f, 2f,-2f,2f, 2f,2f,2f, 0,0,1); mpb.setUVRange(AssetLoader.tr[2]); mpb.rect(-2f,-2f,2f, -2f,-2f,-2f, 2f,-2f,-2f, 2f,-2f,2f, 0,-1,0); mpb.setUVRange(AssetLoader.tr[3]); mpb.rect(-2f,2f,-2f, -2f,2f,2f, 2f,2f,2f, 2f,2f,-2f, 0,1,0); mpb.setUVRange(AssetLoader.tr[4]); mpb.rect(-2f,-2f,2f, -2f,2f,2f, -2f,2f,-2f, -2f,-2f,-2f, -1,0,0); mpb.setUVRange(AssetLoader.tr[5]); mpb.rect(2f,-2f,-2f, 2f,2f,-2f, 2f,2f,2f, 2f,-2f,2f, 1,0,0); box = modelBuilder.end();
public static Model buildPlaneModel(final float width, final float height, final Material material, final float u1, final float v1, final float u2, final float v2) { ModelBuilder modelBuilder = new ModelBuilder(); modelBuilder.begin(); MeshPartBuilder bPartBuilder = modelBuilder.part("rect", GL20.GL_TRIANGLES, VertexAttributes.Usage.Position | VertexAttributes.Usage.Normal | VertexAttributes.Usage.TextureCoordinates, material); bPartBuilder.setUVRange(u1, v1, u2, v2); bPartBuilder.rect(-(width * 0.5f), -(height * 0.5f), 0, (width * 0.5f), -(height * 0.5f), 0, (width * 0.5f), (height * 0.5f), 0, -(width * 0.5f), (height * 0.5f), 0, 0, 0, -1); return (modelBuilder.end()); }