Ao map now only attenuates indirect lighting in PBR shader
This commit is contained in:
parent
a6b86ad24d
commit
12004217d1
@ -196,6 +196,7 @@ void main(){
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
gl_FragColor.rgb = vec3(0.0);
|
gl_FragColor.rgb = vec3(0.0);
|
||||||
|
vec3 ao = vec3(1.0);
|
||||||
|
|
||||||
#ifdef LIGHTMAP
|
#ifdef LIGHTMAP
|
||||||
vec3 lightMapColor;
|
vec3 lightMapColor;
|
||||||
@ -206,7 +207,7 @@ void main(){
|
|||||||
#endif
|
#endif
|
||||||
#ifdef AO_MAP
|
#ifdef AO_MAP
|
||||||
lightMapColor.gb = lightMapColor.rr;
|
lightMapColor.gb = lightMapColor.rr;
|
||||||
diffuseColor.rgb *= lightMapColor;
|
ao = lightMapColor;
|
||||||
#else
|
#else
|
||||||
gl_FragColor.rgb += diffuseColor.rgb * lightMapColor;
|
gl_FragColor.rgb += diffuseColor.rgb * lightMapColor;
|
||||||
#endif
|
#endif
|
||||||
@ -268,7 +269,7 @@ void main(){
|
|||||||
indirectSpecular = ApproximateSpecularIBLPolynomial(g_PrefEnvMap, specularColor.rgb, Roughness, ndotv, dominantR, nbMipMaps);
|
indirectSpecular = ApproximateSpecularIBLPolynomial(g_PrefEnvMap, specularColor.rgb, Roughness, ndotv, dominantR, nbMipMaps);
|
||||||
indirectSpecular *= vec3(horiz);
|
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);
|
gl_FragColor.rgb = gl_FragColor.rgb + indirectLighting * step( 0.0, g_LightProbeData.w);
|
||||||
#endif
|
#endif
|
||||||
|
@ -33,27 +33,22 @@ package jme3test.light.pbr;
|
|||||||
|
|
||||||
import com.jme3.app.SimpleApplication;
|
import com.jme3.app.SimpleApplication;
|
||||||
import com.jme3.bounding.BoundingSphere;
|
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.EnvironmentCamera;
|
||||||
|
import com.jme3.environment.LightProbeFactory;
|
||||||
import com.jme3.environment.generation.JobProgressAdapter;
|
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.ChaseCamera;
|
||||||
import com.jme3.input.KeyInput;
|
import com.jme3.input.KeyInput;
|
||||||
import com.jme3.input.controls.ActionListener;
|
import com.jme3.input.controls.ActionListener;
|
||||||
import com.jme3.input.controls.KeyTrigger;
|
import com.jme3.input.controls.KeyTrigger;
|
||||||
import com.jme3.light.DirectionalLight;
|
import com.jme3.light.DirectionalLight;
|
||||||
|
import com.jme3.light.LightProbe;
|
||||||
import com.jme3.material.Material;
|
import com.jme3.material.Material;
|
||||||
import com.jme3.math.ColorRGBA;
|
import com.jme3.math.*;
|
||||||
import com.jme3.math.FastMath;
|
|
||||||
import com.jme3.math.Vector3f;
|
|
||||||
import com.jme3.post.FilterPostProcessor;
|
import com.jme3.post.FilterPostProcessor;
|
||||||
import com.jme3.post.filters.FXAAFilter;
|
|
||||||
import com.jme3.post.filters.ToneMapFilter;
|
import com.jme3.post.filters.ToneMapFilter;
|
||||||
import com.jme3.post.ssao.SSAOFilter;
|
import com.jme3.scene.*;
|
||||||
import com.jme3.scene.Geometry;
|
|
||||||
import com.jme3.scene.Node;
|
|
||||||
import com.jme3.scene.Spatial;
|
|
||||||
import com.jme3.texture.plugins.ktx.KTXLoader;
|
import com.jme3.texture.plugins.ktx.KTXLoader;
|
||||||
import com.jme3.util.MaterialDebugAppState;
|
import com.jme3.util.MaterialDebugAppState;
|
||||||
import com.jme3.util.SkyFactory;
|
import com.jme3.util.SkyFactory;
|
||||||
|
BIN
jme3-testdata/src/main/resources/Models/Tank/Tank_AO.png
Normal file
BIN
jme3-testdata/src/main/resources/Models/Tank/Tank_AO.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.8 MiB |
@ -6,6 +6,8 @@ Material Tank : Common/MatDefs/Light/PBRLighting.j3md {
|
|||||||
NormalMap : Flip Models/Tank/Tank_Normal.png
|
NormalMap : Flip Models/Tank/Tank_Normal.png
|
||||||
BaseColorMap : Flip Models/Tank/Tank_Base_Color.png
|
BaseColorMap : Flip Models/Tank/Tank_Base_Color.png
|
||||||
EmissiveMap : Flip Models/Tank/Tank_Emissive.png
|
EmissiveMap : Flip Models/Tank/Tank_Emissive.png
|
||||||
|
LightMap: Flip Models/Tank/Tank_AO.png
|
||||||
|
LightMapAsAOMap: true;
|
||||||
EmissiveIntensity : 2.0
|
EmissiveIntensity : 2.0
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user