/** * initialize the pem map * @param size the size of the map * @param imageFormat the format of the image * @return the initialized prefiltered env map */ public static TextureCubeMap createPrefilteredEnvMap(int size, Image.Format imageFormat) { TextureCubeMap pem = new TextureCubeMap(size, size, imageFormat); pem.setMagFilter(Texture.MagFilter.Bilinear); pem.setMinFilter(Texture.MinFilter.Trilinear); pem.getImage().setColorSpace(ColorSpace.Linear); int nbMipMap = Math.min(6, (int) (Math.log(size) / Math.log(2))); CubeMapWrapper targetWrapper = new CubeMapWrapper(pem); targetWrapper.initMipMaps(nbMipMap); return pem; } }
private float samplePixel(CubeMapWrapper envMapReader, Vector3f lWorld, float NoL, float computedMipLevel, Vector3f store) { if (NoL <= 0) { return 0; } envMapReader.getPixel(lWorld, computedMipLevel, c); store.setX(store.x + c.r * NoL); store.setY(store.y + c.g * NoL); store.setZ(store.z + c.b * NoL); return NoL; }
CubeMapWrapper sourceWrapper = new CubeMapWrapper(sourceEnvMap); CubeMapWrapper targetWrapper = new CubeMapWrapper(pem); targetWrapper.setPixel(x, y, face, mipLevel, outColor);
ColorRGBA color = new ColorRGBA(); CubeMapWrapper envMapReader = new CubeMapWrapper(cubeMap); for (int face = 0; face < 6; face++) { for (int y = 0; y < height; y++) { envMapReader.getPixel(x, y, face, color);
ColorRGBA color = new ColorRGBA(); CubeMapWrapper envMapReader = new CubeMapWrapper(cubeMap); for (int face = 0; face < 6; face++) { for (int y = 0; y < height; y++) { envMapReader.getPixel(x, y, face, color);
/** * initialize the pem map * @param size the size of the map * @param imageFormat the format of the image * @return the initialized prefiltered env map */ public static TextureCubeMap createPrefilteredEnvMap(int size, Image.Format imageFormat) { TextureCubeMap pem = new TextureCubeMap(size, size, imageFormat); pem.setMagFilter(Texture.MagFilter.Bilinear); pem.setMinFilter(Texture.MinFilter.Trilinear); pem.getImage().setColorSpace(ColorSpace.Linear); int nbMipMap = Math.min(6, (int) (Math.log(size) / Math.log(2))); CubeMapWrapper targetWrapper = new CubeMapWrapper(pem); targetWrapper.initMipMaps(nbMipMap); return pem; } }
CubeMapWrapper sourceWrapper = new CubeMapWrapper(sourceEnvMap); CubeMapWrapper targetWrapper = new CubeMapWrapper(pem); targetWrapper.setPixel(x, y, face, mipLevel, outColor);
private float samplePixel(CubeMapWrapper envMapReader, Vector3f lWorld, float NoL, float computedMipLevel, Vector3f store) { if (NoL <= 0) { return 0; } envMapReader.getPixel(lWorld, computedMipLevel, c); store.setX(store.x + c.r * NoL); store.setY(store.y + c.g * NoL); store.setZ(store.z + c.b * NoL); return NoL; }