MeshFactory createOrGetMeshFactory(String textureKey) { MeshFactory meshFactory = catchMesh.get(textureKey); if (meshFactory == null) { meshFactory = mf.addMesh(textureKey); Material mat = MaterialFactory.createTextureMaterial(textureKey); int iMat = mf.addMaterial(mat); meshFactory.materialID = iMat; meshFactory.hasTexture = true; catchMesh.put(textureKey, meshFactory); } return meshFactory; } }
/** * Add material representing texture to model. * * @param textureData * @param model * @return */ private static RoofTextureIndex addMateraialTexture(TextureData textureData, Color color, ModelFactory model) { Material facadeMaterial = null; if (color != null) { facadeMaterial = MaterialFactory.createTextureColorMaterial(textureData.getTex0(), color); } else { facadeMaterial = MaterialFactory.createTextureMaterial(textureData.getTex0()); } int facadeMaterialIndex = model.addMaterial(facadeMaterial); return new RoofTextureIndex(facadeMaterialIndex, textureData); }
Material fenceMaterial = MaterialFactory.createTextureMaterial(facadeTexture.getTex0());
@Override public void buildWorldObject() { ModelFactory model = ModelFactory.modelBuilder(); MeshFactory mesh = model.addMesh("water"); TextureData waterTexture = getWaterTextureData();// new // TextureData("#c=#008EFF", // 1d, 1d); Material waterMaterial = MaterialFactory.createTextureMaterial(waterTexture.getTex0()); int waterMaterialIndex = model.addMaterial(waterMaterial); mesh.materialID = waterMaterialIndex; mesh.hasTexture = true; Vector3d nt = new Vector3d(0, 1, 0); Point3d planeRightTopPoint = new Point3d(0, 0.05, 0); List<PolygonWithHolesList2d> polyList = getMultiPolygonWithHoles(); for (PolygonWithHolesList2d poly : polyList) { List<Triangle2d> triangles = Poly2TriSimpleUtil.triangulate(poly); Plane3d planeTop = new Plane3d(planeRightTopPoint, nt); Vector3d roofTopLineVector = new Vector3d(-1, 0, 0); MeshFactoryUtil.addPolygonToRoofMesh(mesh, triangles, planeTop, roofTopLineVector, waterTexture, 0, 0); } this.model = model.toModel(); this.model.setUseLight(true); this.model.setUseTexture(true); buildModel = true; }
Material m = MaterialFactory.createTextureMaterial(texture.getFile());