Ao map now only attenuates indirect lighting in PBR shader

This commit is contained in:
Nehon 2018-01-04 16:53:48 +01:00
parent a6b86ad24d
commit 12004217d1
4 changed files with 11 additions and 13 deletions

View File

@ -196,6 +196,7 @@ void main(){
#endif
gl_FragColor.rgb = vec3(0.0);
vec3 ao = vec3(1.0);
#ifdef LIGHTMAP
vec3 lightMapColor;
@ -206,7 +207,7 @@ void main(){
#endif
#ifdef AO_MAP
lightMapColor.gb = lightMapColor.rr;
diffuseColor.rgb *= lightMapColor;
ao = lightMapColor;
#else
gl_FragColor.rgb += diffuseColor.rgb * lightMapColor;
#endif
@ -268,7 +269,7 @@ void main(){
indirectSpecular = ApproximateSpecularIBLPolynomial(g_PrefEnvMap, specularColor.rgb, Roughness, ndotv, dominantR, nbMipMaps);
indirectSpecular *= vec3(horiz);
vec3 indirectLighting = indirectDiffuse + indirectSpecular;
vec3 indirectLighting = (indirectDiffuse + indirectSpecular) * ao;
gl_FragColor.rgb = gl_FragColor.rgb + indirectLighting * step( 0.0, g_LightProbeData.w);
#endif

View File

@ -33,27 +33,22 @@ package jme3test.light.pbr;
import com.jme3.app.SimpleApplication;
import com.jme3.bounding.BoundingSphere;
import com.jme3.environment.util.*;
import com.jme3.light.LightProbe;
import com.jme3.environment.LightProbeFactory;
import com.jme3.environment.EnvironmentCamera;
import com.jme3.environment.LightProbeFactory;
import com.jme3.environment.generation.JobProgressAdapter;
import com.jme3.environment.util.EnvMapUtils;
import com.jme3.environment.util.LightsDebugState;
import com.jme3.input.ChaseCamera;
import com.jme3.input.KeyInput;
import com.jme3.input.controls.ActionListener;
import com.jme3.input.controls.KeyTrigger;
import com.jme3.light.DirectionalLight;
import com.jme3.light.LightProbe;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.FastMath;
import com.jme3.math.Vector3f;
import com.jme3.math.*;
import com.jme3.post.FilterPostProcessor;
import com.jme3.post.filters.FXAAFilter;
import com.jme3.post.filters.ToneMapFilter;
import com.jme3.post.ssao.SSAOFilter;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
import com.jme3.scene.*;
import com.jme3.texture.plugins.ktx.KTXLoader;
import com.jme3.util.MaterialDebugAppState;
import com.jme3.util.SkyFactory;

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 MiB

View File

@ -6,6 +6,8 @@ Material Tank : Common/MatDefs/Light/PBRLighting.j3md {
NormalMap : Flip Models/Tank/Tank_Normal.png
BaseColorMap : Flip Models/Tank/Tank_Base_Color.png
EmissiveMap : Flip Models/Tank/Tank_Emissive.png
LightMap: Flip Models/Tank/Tank_AO.png
LightMapAsAOMap: true;
EmissiveIntensity : 2.0
}