protected void createTextures() { reflectionTexture = new Texture2D(renderWidth, renderHeight, Format.RGBA8); refractionTexture = new Texture2D(renderWidth, renderHeight, Format.RGBA8); reflectionTexture.setMinFilter(Texture.MinFilter.Trilinear); reflectionTexture.setMagFilter(Texture.MagFilter.Bilinear); refractionTexture.setMinFilter(Texture.MinFilter.Trilinear); refractionTexture.setMagFilter(Texture.MagFilter.Bilinear); depthTexture = new Texture2D(renderWidth, renderHeight, Format.Depth); }
dualEyeTex = new Texture2D(cam.getWidth(), cam.getHeight(), Image.Format.RGBA8); dualEyeTex.setMinFilter(Texture.MinFilter.BilinearNoMipMaps); dualEyeTex.setMagFilter(Texture.MagFilter.Bilinear); logger.config("Dual eye texture "+dualEyeTex.getName()+" ("+dualEyeTex.getImage().getId()+")"); logger.config(" Type: "+dualEyeTex.getType()); logger.config(" Size: "+dualEyeTex.getImage().getWidth()+"x"+dualEyeTex.getImage().getHeight()); logger.config(" Image depth: "+dualEyeTex.getImage().getDepth()); logger.config(" Image format: "+dualEyeTex.getImage().getFormat()); logger.config(" Image color space: "+dualEyeTex.getImage().getColorSpace());
/** * Creates a new atlas texture for the given map name. * @param mapName * @return the atlas texture */ public Texture getAtlasTexture(String mapName) { if (images == null) { return null; } byte[] image = images.get(mapName); if (image != null) { //TODO check if color space shouldn't be sRGB Texture2D tex = new Texture2D(new Image(format, atlasWidth, atlasHeight, BufferUtils.createByteBuffer(image), null, ColorSpace.Linear)); tex.setMagFilter(Texture.MagFilter.Bilinear); tex.setMinFilter(Texture.MinFilter.BilinearNearestMipMap); tex.setWrap(Texture.WrapMode.EdgeClamp); return tex; } return null; }
@Override public Texture createSimpleClone() { Texture2D clone = new Texture2D(); createSimpleClone(clone); return clone; }
/** * Creates a new two-dimensional texture using the given image. * @param img The image to use. */ public Texture2D(Image img){ super(); setImage(img); if (img.getData(0) == null) { setMagFilter(MagFilter.Nearest); setMinFilter(MinFilter.NearestNoMipMaps); } }
@Override protected Texture toJmeObject() { Image image = null; TextureKey key = null; if (media != null) { image = (Image) media.getJmeObject(); key = media.getTextureKey(); } if (image == null) { image = PlaceholderAssets.getPlaceholderImage(assetManager); } Texture2D tex = new Texture2D(image); if (key != null) { tex.setKey(key); tex.setName(key.getName()); tex.setAnisotropicFilter(key.getAnisotropy()); } tex.setMinFilter(MinFilter.Trilinear); tex.setMagFilter(MagFilter.Bilinear); if (wrapModeU == 0) { tex.setWrap(WrapAxis.S, WrapMode.Repeat); } if (wrapModeV == 0) { tex.setWrap(WrapAxis.T, WrapMode.Repeat); } return tex; }
public FbxTexture(SceneLoader scene, FbxElement element) { super(scene, element); for(FbxElement e : element.children) { switch(e.id) { case "Type": bindType = (String) e.properties.get(0); break; case "FileName": filename = (String) e.properties.get(0); break; } } texture = new Texture2D(); texture.setName(name); texture.setWrap(WrapMode.Repeat); // Default FBX wrapping. TODO: Investigate where this is stored (probably, in material) }
/** * Sets the shadow compare mode. See {@link CompareMode} for more info. * * @param compareMode the desired compare mode (not null) */ final public void setShadowCompareMode(CompareMode compareMode) { if (compareMode == null) { throw new IllegalArgumentException("Shadow compare mode cannot be null"); } this.shadowCompareMode = compareMode; for (Texture2D shadowMap : shadowMaps) { if (compareMode == CompareMode.Hardware) { shadowMap.setShadowCompareMode(ShadowCompareMode.LessOrEqual); if (edgeFilteringMode == EdgeFilteringMode.Bilinear) { shadowMap.setMagFilter(MagFilter.Bilinear); shadowMap.setMinFilter(MinFilter.BilinearNoMipMaps); } else { shadowMap.setMagFilter(MagFilter.Nearest); shadowMap.setMinFilter(MinFilter.NearestNoMipMaps); } } else { shadowMap.setShadowCompareMode(ShadowCompareMode.Off); shadowMap.setMagFilter(MagFilter.Nearest); shadowMap.setMinFilter(MinFilter.NearestNoMipMaps); } } postshadowMat.setBoolean("HardwareShadows", compareMode == CompareMode.Hardware); }
public RenderImageJme(String filename, boolean linear, NiftyJmeDisplay display){ TextureKey key = new TextureKey(filename, true); key.setAnisotropy(0); key.setGenerateMips(false); texture = (Texture2D) display.getAssetManager().loadTexture(key); texture.setMagFilter(linear ? MagFilter.Bilinear : MagFilter.Nearest); texture.setMinFilter(linear ? MinFilter.BilinearNoMipMaps : MinFilter.NearestNoMipMaps); image = texture.getImage(); width = image.getWidth(); height = image.getHeight(); }
public Texture2D readSampler(int samplerIndex, Texture2D texture) throws IOException { if (samplers == null) { throw new AssetLoadException("No samplers defined"); } JsonObject sampler = samplers.get(samplerIndex).getAsJsonObject(); Texture.MagFilter magFilter = getMagFilter(getAsInteger(sampler, "magFilter")); Texture.MinFilter minFilter = getMinFilter(getAsInteger(sampler, "minFilter")); Texture.WrapMode wrapS = getWrapMode(getAsInteger(sampler, "wrapS")); Texture.WrapMode wrapT = getWrapMode(getAsInteger(sampler, "wrapT")); if (magFilter != null) { texture.setMagFilter(magFilter); } if (minFilter != null) { texture.setMinFilter(minFilter); } texture.setWrap(Texture.WrapAxis.S, wrapS); texture.setWrap(Texture.WrapAxis.T, wrapT); texture = customContentManager.readExtensionAndExtras("texture.sampler", sampler, texture); return texture; }
/** * Sets the filtering mode for shadow edges. See {@link EdgeFilteringMode} * for more info. * * @param filterMode the desired filter mode (not null) */ final public void setEdgeFilteringMode(EdgeFilteringMode filterMode) { if (filterMode == null) { throw new NullPointerException(); } this.edgeFilteringMode = filterMode; postshadowMat.setInt("FilterMode", filterMode.getMaterialParamValue()); postshadowMat.setFloat("PCFEdge", edgesThickness); if (shadowCompareMode == CompareMode.Hardware) { for (Texture2D shadowMap : shadowMaps) { if (filterMode == EdgeFilteringMode.Bilinear) { shadowMap.setMagFilter(MagFilter.Bilinear); shadowMap.setMinFilter(MinFilter.BilinearNoMipMaps); } else { shadowMap.setMagFilter(MagFilter.Nearest); shadowMap.setMinFilter(MinFilter.NearestNoMipMaps); } } } }
/** * Sets the normal texture. * * @param normalTexture the normal texture. */ public void setNormalTexture(Texture2D normalTexture) { this.normalTexture = normalTexture; normalTexture.setWrap(WrapMode.Repeat); if (material != null) { material.setTexture("NormalMap", normalTexture); } }
logger.severe(" Texture handle: " + leftTextureType.handle()); logger.severe(" Left eye texture " + leftEyeTexture.getName() + " (" + leftEyeTexture.getImage().getId() + ")"); logger.severe(" Type: " + leftEyeTexture.getType()); logger.severe(" Size: " + leftEyeTexture.getImage().getWidth() + "x" + leftEyeTexture.getImage().getHeight()); logger.severe(" Image depth: " + leftEyeTexture.getImage().getDepth()); logger.severe(" Image format: " + leftEyeTexture.getImage().getFormat()); logger.severe(" Image color space: " + leftEyeTexture.getImage().getColorSpace()); logger.severe(" Right eye texture " + rightEyeTexture.getName() + " (" + rightEyeTexture.getImage().getId() + ")"); logger.severe(" Type: " + rightEyeTexture.getType()); logger.severe(" Size: " + rightEyeTexture.getImage().getWidth() + "x" + rightEyeTexture.getImage().getHeight()); logger.severe(" Image depth: " + rightEyeTexture.getImage().getDepth()); logger.severe(" Image format: " + rightEyeTexture.getImage().getFormat()); logger.severe(" Image color space: " + rightEyeTexture.getImage().getColorSpace());
private void updateTexture(Texture2D tex, ByteBuffer buf, int stride) { if (buf == null) { tex.setImage(emptyImage); return; } if (tex.getImage().getData(0).capacity() != buf.capacity()) { Image img = new Image(Format.Luminance8, stride, buf.capacity() / stride, buf, ColorSpace.Linear); tex.setImage(img); } else { tex.getImage().setData(buf); } }
@Override protected Texture toJmeObject() { Image image = null; TextureKey key = null; if (media != null) { image = (Image) media.getJmeObject(); key = media.getTextureKey(); } if (image == null) { image = PlaceholderAssets.getPlaceholderImage(assetManager); } Texture2D tex = new Texture2D(image); if (key != null) { tex.setKey(key); tex.setName(key.getName()); tex.setAnisotropicFilter(key.getAnisotropy()); } tex.setMinFilter(MinFilter.Trilinear); tex.setMagFilter(MagFilter.Bilinear); if (wrapModeU == 0) { tex.setWrap(WrapAxis.S, WrapMode.Repeat); } if (wrapModeV == 0) { tex.setWrap(WrapAxis.T, WrapMode.Repeat); } return tex; }
protected Texture loadTexture(String path){ String[] split = path.trim().split("\\p{javaWhitespace}+"); // will crash if path is an empty string path = split[split.length-1]; String name = new File(path).getName(); TextureKey texKey = new TextureKey(folderName + name); texKey.setGenerateMips(true); Texture texture; try { texture = assetManager.loadTexture(texKey); texture.setWrap(WrapMode.Repeat); } catch (AssetNotFoundException ex){ logger.log(Level.WARNING, "Cannot locate {0} for material {1}", new Object[]{texKey, key}); texture = new Texture2D(PlaceholderAssets.getPlaceholderImage(assetManager)); texture.setWrap(WrapMode.Repeat); texture.setKey(key); } return texture; }
/** * Creates a new two-dimensional texture using the given image. * @param img The image to use. */ public Texture2D(Image img){ super(); setImage(img); if (img.getData(0) == null) { setMagFilter(MagFilter.Nearest); setMinFilter(MinFilter.NearestNoMipMaps); } }