From 6c0ab69adf152c9dc72adb91daec41edbe862bef Mon Sep 17 00:00:00 2001 From: Ryan McDonough Date: Tue, 2 Jul 2024 14:37:37 -0400 Subject: [PATCH] Add MipMaps to PBRTerrainAdvancedTest.java (#2289) This test case has some noisey rendering that are due to not setting mipMaps on the TextureArray. So I added the MinFilter.Trilinear to fix this issue, and also added MagFilter.Bilinear. --- .../jme3test/terrain/PBRTerrainAdvancedTest.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/terrain/PBRTerrainAdvancedTest.java b/jme3-examples/src/main/java/jme3test/terrain/PBRTerrainAdvancedTest.java index d36a55e09c..6127c279c0 100644 --- a/jme3-examples/src/main/java/jme3test/terrain/PBRTerrainAdvancedTest.java +++ b/jme3-examples/src/main/java/jme3test/terrain/PBRTerrainAdvancedTest.java @@ -52,6 +52,8 @@ import com.jme3.texture.Image; import com.jme3.texture.Texture; import com.jme3.texture.Texture.WrapMode; +import com.jme3.texture.Texture.MagFilter; +import com.jme3.texture.Texture.MinFilter; import com.jme3.texture.TextureArray; import java.util.ArrayList; import java.util.List; @@ -279,10 +281,10 @@ private void setUpTerrainMaterial() { TextureArray metallicRoughnessAoEiTextureArray = new TextureArray(metallicRoughnessAoEiMapImages); //apply wrapMode to the whole texture array, rather than each individual texture in the array - albedoTextureArray.setWrap(WrapMode.Repeat); - normalParallaxTextureArray.setWrap(WrapMode.Repeat); - metallicRoughnessAoEiTextureArray.setWrap(WrapMode.Repeat); - + setWrapAndMipMaps(albedoTextureArray); + setWrapAndMipMaps(normalParallaxTextureArray); + setWrapAndMipMaps(metallicRoughnessAoEiTextureArray); + //assign texture array to materials matTerrain.setParam("AlbedoTextureArray", VarType.TextureArray, albedoTextureArray); matTerrain.setParam("NormalParallaxTextureArray", VarType.TextureArray, normalParallaxTextureArray); @@ -430,6 +432,12 @@ private void setUpTerrain() { rootNode.attachChild(terrain); } + private void setWrapAndMipMaps(Texture texture){ + texture.setWrap(WrapMode.Repeat); + texture.setMinFilter(MinFilter.Trilinear); + texture.setMagFilter(MagFilter.Bilinear); + } + private void setUpLights() { LightProbe probe = (LightProbe) assetManager.loadAsset("Scenes/LightProbes/quarry_Probe.j3o");