Skip to content

Commit 1200421

Browse files
committed
Ao map now only attenuates indirect lighting in PBR shader
1 parent a6b86ad commit 1200421

File tree

4 files changed

+11
-13
lines changed

4 files changed

+11
-13
lines changed

jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.frag

+3-2
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ void main(){
196196
#endif
197197

198198
gl_FragColor.rgb = vec3(0.0);
199+
vec3 ao = vec3(1.0);
199200

200201
#ifdef LIGHTMAP
201202
vec3 lightMapColor;
@@ -206,7 +207,7 @@ void main(){
206207
#endif
207208
#ifdef AO_MAP
208209
lightMapColor.gb = lightMapColor.rr;
209-
diffuseColor.rgb *= lightMapColor;
210+
ao = lightMapColor;
210211
#else
211212
gl_FragColor.rgb += diffuseColor.rgb * lightMapColor;
212213
#endif
@@ -268,7 +269,7 @@ void main(){
268269
indirectSpecular = ApproximateSpecularIBLPolynomial(g_PrefEnvMap, specularColor.rgb, Roughness, ndotv, dominantR, nbMipMaps);
269270
indirectSpecular *= vec3(horiz);
270271

271-
vec3 indirectLighting = indirectDiffuse + indirectSpecular;
272+
vec3 indirectLighting = (indirectDiffuse + indirectSpecular) * ao;
272273

273274
gl_FragColor.rgb = gl_FragColor.rgb + indirectLighting * step( 0.0, g_LightProbeData.w);
274275
#endif

jme3-examples/src/main/java/jme3test/light/pbr/TestPBRLighting.java

+6-11
Original file line numberDiff line numberDiff line change
@@ -33,27 +33,22 @@
3333

3434
import com.jme3.app.SimpleApplication;
3535
import com.jme3.bounding.BoundingSphere;
36-
import com.jme3.environment.util.*;
37-
import com.jme3.light.LightProbe;
38-
import com.jme3.environment.LightProbeFactory;
3936
import com.jme3.environment.EnvironmentCamera;
37+
import com.jme3.environment.LightProbeFactory;
4038
import com.jme3.environment.generation.JobProgressAdapter;
39+
import com.jme3.environment.util.EnvMapUtils;
40+
import com.jme3.environment.util.LightsDebugState;
4141
import com.jme3.input.ChaseCamera;
4242
import com.jme3.input.KeyInput;
4343
import com.jme3.input.controls.ActionListener;
4444
import com.jme3.input.controls.KeyTrigger;
4545
import com.jme3.light.DirectionalLight;
46+
import com.jme3.light.LightProbe;
4647
import com.jme3.material.Material;
47-
import com.jme3.math.ColorRGBA;
48-
import com.jme3.math.FastMath;
49-
import com.jme3.math.Vector3f;
48+
import com.jme3.math.*;
5049
import com.jme3.post.FilterPostProcessor;
51-
import com.jme3.post.filters.FXAAFilter;
5250
import com.jme3.post.filters.ToneMapFilter;
53-
import com.jme3.post.ssao.SSAOFilter;
54-
import com.jme3.scene.Geometry;
55-
import com.jme3.scene.Node;
56-
import com.jme3.scene.Spatial;
51+
import com.jme3.scene.*;
5752
import com.jme3.texture.plugins.ktx.KTXLoader;
5853
import com.jme3.util.MaterialDebugAppState;
5954
import com.jme3.util.SkyFactory;
Loading

jme3-testdata/src/main/resources/Models/Tank/tank.j3m

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Material Tank : Common/MatDefs/Light/PBRLighting.j3md {
66
NormalMap : Flip Models/Tank/Tank_Normal.png
77
BaseColorMap : Flip Models/Tank/Tank_Base_Color.png
88
EmissiveMap : Flip Models/Tank/Tank_Emissive.png
9+
LightMap: Flip Models/Tank/Tank_AO.png
10+
LightMapAsAOMap: true;
911
EmissiveIntensity : 2.0
1012

1113
}

0 commit comments

Comments
 (0)