diff --git a/data/shaders/instanced_object_pass2.frag b/data/shaders/instanced_object_pass2.frag index feebe72f2..8068bf40c 100644 --- a/data/shaders/instanced_object_pass2.frag +++ b/data/shaders/instanced_object_pass2.frag @@ -1,9 +1,11 @@ #ifndef GL_ARB_bindless_texture uniform sampler2D Albedo; +uniform sampler2D SpecMap; #endif #ifdef GL_ARB_bindless_texture flat in sampler2D handle; +flat in sampler2D secondhandle; #endif in vec2 uv; in vec4 color; @@ -15,12 +17,14 @@ void main(void) { #ifdef GL_ARB_bindless_texture vec4 col = texture(handle, uv); + float specmap = texture(secondhandle, uv).g; #ifdef SRGBBindlessFix col.xyz = pow(col.xyz, vec3(2.2)); #endif #else vec4 col = texture(Albedo, uv); + float specmap = texture(SpecMap, uv).g; #endif col.xyz *= pow(color.xyz, vec3(2.2)); - FragColor = vec4(getLightFactor(col.xyz, vec3(1.), 1.), 1.); + FragColor = vec4(getLightFactor(col.xyz, vec3(specmap), 1.), 1.); } diff --git a/data/shaders/instanced_objectref_pass2.frag b/data/shaders/instanced_objectref_pass2.frag index 045706254..41f3dc34f 100644 --- a/data/shaders/instanced_objectref_pass2.frag +++ b/data/shaders/instanced_objectref_pass2.frag @@ -1,9 +1,11 @@ #ifndef GL_ARB_bindless_texture uniform sampler2D Albedo; +uniform sampler2D SpecMap; #endif #ifdef GL_ARB_bindless_texture flat in sampler2D handle; +flat in sampler2D secondhandle; #endif in vec2 uv; in vec4 color; @@ -15,13 +17,15 @@ void main(void) { #ifdef GL_ARB_bindless_texture vec4 col = texture(handle, uv); + float specmap = texture(secondhandle, uv).g; #ifdef SRGBBindlessFix col.xyz = pow(col.xyz, vec3(2.2)); #endif #else vec4 col = texture(Albedo, uv); + float specmap = texture(SpecMap, uv).g; #endif col.xyz *= pow(color.xyz, vec3(2.2)); if (col.a * color.a < 0.5) discard; - FragColor = vec4(getLightFactor(col.xyz, vec3(1.), 1.), 1.); + FragColor = vec4(getLightFactor(col.xyz, vec3(1.), specmap), 1.); }