experiment with color banding
							parent
							
								
									d370d4e2e4
								
							
						
					
					
						commit
						a914c586b2
					
				|  | @ -18,8 +18,6 @@ namespace Kav | ||||||
|         EffectParameter directionalLightDirectionParam; |         EffectParameter directionalLightDirectionParam; | ||||||
|         EffectParameter directionalLightColorParam; |         EffectParameter directionalLightColorParam; | ||||||
| 
 | 
 | ||||||
|         EffectParameter softnessParam; |  | ||||||
| 
 |  | ||||||
|         EffectParameter cascadeFarPlanesParam; |         EffectParameter cascadeFarPlanesParam; | ||||||
|         EffectParameter shadowMapSizeParam; |         EffectParameter shadowMapSizeParam; | ||||||
| 
 | 
 | ||||||
|  | @ -43,8 +41,6 @@ namespace Kav | ||||||
|         public Vector3 DirectionalLightDirection { get; set; } |         public Vector3 DirectionalLightDirection { get; set; } | ||||||
|         public Vector3 DirectionalLightColor { get; set; } |         public Vector3 DirectionalLightColor { get; set; } | ||||||
| 
 | 
 | ||||||
|         public float Softness { get; set; } |  | ||||||
| 
 |  | ||||||
|         public float[] CascadeFarPlanes { get; } |         public float[] CascadeFarPlanes { get; } | ||||||
|         public float ShadowMapSize { get; set; } |         public float ShadowMapSize { get; set; } | ||||||
| 
 | 
 | ||||||
|  | @ -76,8 +72,6 @@ namespace Kav | ||||||
|             directionalLightDirectionParam.SetValue(DirectionalLightDirection); |             directionalLightDirectionParam.SetValue(DirectionalLightDirection); | ||||||
|             directionalLightColorParam.SetValue(DirectionalLightColor); |             directionalLightColorParam.SetValue(DirectionalLightColor); | ||||||
| 
 | 
 | ||||||
|             softnessParam.SetValue(Softness); |  | ||||||
| 
 |  | ||||||
|             cascadeFarPlanesParam.SetValue(CascadeFarPlanes); |             cascadeFarPlanesParam.SetValue(CascadeFarPlanes); | ||||||
|             shadowMapSizeParam.SetValue(ShadowMapSize); |             shadowMapSizeParam.SetValue(ShadowMapSize); | ||||||
| 
 | 
 | ||||||
|  | @ -104,8 +98,6 @@ namespace Kav | ||||||
|             directionalLightDirectionParam = Parameters["DirectionalLightDirection"]; |             directionalLightDirectionParam = Parameters["DirectionalLightDirection"]; | ||||||
|             directionalLightColorParam     = Parameters["DirectionalLightColor"]; |             directionalLightColorParam     = Parameters["DirectionalLightColor"]; | ||||||
| 
 | 
 | ||||||
|             softnessParam                  = Parameters["Softness"]; |  | ||||||
| 
 |  | ||||||
|             cascadeFarPlanesParam          = Parameters["CascadeFarPlanes"]; |             cascadeFarPlanesParam          = Parameters["CascadeFarPlanes"]; | ||||||
|             shadowMapSizeParam             = Parameters["ShadowMapSize"]; |             shadowMapSizeParam             = Parameters["ShadowMapSize"]; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										
											BIN
										
									
								
								Effects/FXB/Deferred_ToonEffect.fxb (Stored with Git LFS)
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								Effects/FXB/Deferred_ToonEffect.fxb (Stored with Git LFS)
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -18,8 +18,6 @@ float3 EyePosition                           _ps(c0)     _cb(c0); | ||||||
| float3 DirectionalLightDirection             _ps(c1)     _cb(c1); | float3 DirectionalLightDirection             _ps(c1)     _cb(c1); | ||||||
| float3 DirectionalLightColor                 _ps(c2)     _cb(c2); | float3 DirectionalLightColor                 _ps(c2)     _cb(c2); | ||||||
| 
 | 
 | ||||||
| float Softness                               _ps(c3)     _cb(c3); |  | ||||||
| 
 |  | ||||||
| float CascadeFarPlanes[NUM_SHADOW_CASCADES]  _ps(c4)     _cb(c4); | float CascadeFarPlanes[NUM_SHADOW_CASCADES]  _ps(c4)     _cb(c4); | ||||||
| 
 | 
 | ||||||
| float ShadowMapSize                          _ps(c8)     _cb(c8); | float ShadowMapSize                          _ps(c8)     _cb(c8); | ||||||
|  | @ -138,6 +136,26 @@ float ComputeShadow(float3 positionWorldSpace, float3 N, float3 L) | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | float IntensityBanding(float NdotL) | ||||||
|  | { | ||||||
|  |     if (NdotL > 0.5) | ||||||
|  |     { | ||||||
|  |         return 1.0; | ||||||
|  |     } | ||||||
|  |     else if (NdotL > 0.25) | ||||||
|  |     { | ||||||
|  |         return 0.5; | ||||||
|  |     } | ||||||
|  |     else if (NdotL > 0.0) | ||||||
|  |     { | ||||||
|  |         return 0.25; | ||||||
|  |     } | ||||||
|  |     else | ||||||
|  |     { | ||||||
|  |         return 0.0; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // FIXME: organize this | // FIXME: organize this | ||||||
| float4 main_ps(PixelInput input) : SV_TARGET0 | float4 main_ps(PixelInput input) : SV_TARGET0 | ||||||
| { | { | ||||||
|  | @ -153,16 +171,7 @@ float4 main_ps(PixelInput input) : SV_TARGET0 | ||||||
|     float NdotL = dot(N, L); |     float NdotL = dot(N, L); | ||||||
|     float NdotH = max(dot(N, H), 0.0); |     float NdotH = max(dot(N, H), 0.0); | ||||||
| 
 | 
 | ||||||
|     float lightIntensity; |     float lightIntensity = IntensityBanding(NdotL); | ||||||
|     if (Softness > 0.0) |  | ||||||
|     { |  | ||||||
|         lightIntensity = smoothstep(0, Softness, NdotL); |  | ||||||
|     } |  | ||||||
|     else |  | ||||||
|     { |  | ||||||
|         lightIntensity = (NdotL > 0.0) ? 1.0 : 0.0; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     float3 light = lightIntensity * DirectionalLightColor; |     float3 light = lightIntensity * DirectionalLightColor; | ||||||
| 
 | 
 | ||||||
|     float specularIntensity = pow(NdotH * lightIntensity, 32 * 32); |     float specularIntensity = pow(NdotH * lightIntensity, 32 * 32); | ||||||
|  |  | ||||||
|  | @ -352,8 +352,6 @@ namespace Kav | ||||||
|             Deferred_ToonEffect.DirectionalLightColor =  |             Deferred_ToonEffect.DirectionalLightColor =  | ||||||
|                 directionalLight.Color.ToVector3() * directionalLight.Intensity; |                 directionalLight.Color.ToVector3() * directionalLight.Intensity; | ||||||
| 
 | 
 | ||||||
|             Deferred_ToonEffect.Softness = 0.01f; |  | ||||||
| 
 |  | ||||||
|             Deferred_ToonEffect.ShadowMapOne = ShadowRenderTargets[0]; |             Deferred_ToonEffect.ShadowMapOne = ShadowRenderTargets[0]; | ||||||
|             if (NumShadowCascades > 1) |             if (NumShadowCascades > 1) | ||||||
|             { |             { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue