mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-10-31 07:25:22 +01:00 
			
		
		
		
	Copy irrlichtmt to <root>/irr/
This commit is contained in:
		
							
								
								
									
										62
									
								
								irr/media/Shaders/Solid.fsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								irr/media/Shaders/Solid.fsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| #version 100 | ||||
|  | ||||
| precision mediump float; | ||||
|  | ||||
| /* Uniforms */ | ||||
|  | ||||
| uniform int uTextureUsage0; | ||||
| uniform sampler2D uTextureUnit0; | ||||
| uniform int uFogEnable; | ||||
| uniform int uFogType; | ||||
| uniform vec4 uFogColor; | ||||
| uniform float uFogStart; | ||||
| uniform float uFogEnd; | ||||
| uniform float uFogDensity; | ||||
|  | ||||
| /* Varyings */ | ||||
|  | ||||
| varying vec2 vTextureCoord0; | ||||
| varying vec4 vVertexColor; | ||||
| varying float vFogCoord; | ||||
|  | ||||
| float computeFog() | ||||
| { | ||||
| 	const float LOG2 = 1.442695; | ||||
| 	float FogFactor = 0.0; | ||||
|  | ||||
| 	if (uFogType == 0) // Exp | ||||
| 	{ | ||||
| 		FogFactor = exp2(-uFogDensity * vFogCoord * LOG2); | ||||
| 	} | ||||
| 	else if (uFogType == 1) // Linear | ||||
| 	{ | ||||
| 		float Scale = 1.0 / (uFogEnd - uFogStart); | ||||
| 		FogFactor = (uFogEnd - vFogCoord) * Scale; | ||||
| 	} | ||||
| 	else if (uFogType == 2) // Exp2 | ||||
| 	{ | ||||
| 		FogFactor = exp2(-uFogDensity * uFogDensity * vFogCoord * vFogCoord * LOG2); | ||||
| 	} | ||||
|  | ||||
| 	FogFactor = clamp(FogFactor, 0.0, 1.0); | ||||
|  | ||||
| 	return FogFactor; | ||||
| } | ||||
|  | ||||
| void main() | ||||
| { | ||||
| 	vec4 Color = vVertexColor; | ||||
|  | ||||
| 	if (bool(uTextureUsage0)) | ||||
| 		Color *= texture2D(uTextureUnit0, vTextureCoord0); | ||||
|  | ||||
| 	if (bool(uFogEnable)) | ||||
| 	{ | ||||
| 		float FogFactor = computeFog(); | ||||
| 		vec4 FogColor = uFogColor; | ||||
| 		FogColor.a = 1.0; | ||||
| 		Color = mix(FogColor, Color, FogFactor); | ||||
| 	} | ||||
|  | ||||
| 	gl_FragColor = Color; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user