diff --git a/data/shaders/sem.frag.spv b/data/shaders/sem.frag.spv deleted file mode 100644 index 8a5795a2..00000000 Binary files a/data/shaders/sem.frag.spv and /dev/null differ diff --git a/data/shaders/sem.vert.spv b/data/shaders/sem.vert.spv deleted file mode 100644 index 82c3df79..00000000 Binary files a/data/shaders/sem.vert.spv and /dev/null differ diff --git a/data/shaders/spirv-sem.bat b/data/shaders/sphericalenvmapping/generate-spirv.bat similarity index 100% rename from data/shaders/spirv-sem.bat rename to data/shaders/sphericalenvmapping/generate-spirv.bat diff --git a/data/shaders/sem.frag b/data/shaders/sphericalenvmapping/sem.frag similarity index 68% rename from data/shaders/sem.frag rename to data/shaders/sphericalenvmapping/sem.frag index cd473cab..31aa72da 100644 --- a/data/shaders/sem.frag +++ b/data/shaders/sphericalenvmapping/sem.frag @@ -3,11 +3,12 @@ #extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_shading_language_420pack : enable -layout (binding = 1) uniform sampler2D matCap; +layout (binding = 1) uniform sampler2DArray matCap; layout (location = 0) in vec3 inColor; layout (location = 1) in vec3 inEyePos; layout (location = 2) in vec3 inNormal; +layout (location = 3) in flat int inTexIndex; layout (location = 0) out vec4 outFragColor; @@ -17,5 +18,5 @@ void main() vec3 r2 = vec3( r.x, r.y, r.z + 1.0 ); float m = 2.0 * length( r2 ); vec2 vN = r.xy / m + .5; - outFragColor = vec4( texture( matCap, vN ).rgb * (clamp(inColor.r * 2, 0.0, 1.0)), 1.0 ); + outFragColor = vec4( texture( matCap, vec3(vN, inTexIndex)).rgb * (clamp(inColor.r * 2, 0.0, 1.0)), 1.0 ); } diff --git a/data/shaders/sphericalenvmapping/sem.frag.spv b/data/shaders/sphericalenvmapping/sem.frag.spv new file mode 100644 index 00000000..b854d5d4 Binary files /dev/null and b/data/shaders/sphericalenvmapping/sem.frag.spv differ diff --git a/data/shaders/sem.vert b/data/shaders/sphericalenvmapping/sem.vert similarity index 85% rename from data/shaders/sem.vert rename to data/shaders/sphericalenvmapping/sem.vert index 2c60823b..e5649f91 100644 --- a/data/shaders/sem.vert +++ b/data/shaders/sphericalenvmapping/sem.vert @@ -5,7 +5,6 @@ layout (location = 0) in vec4 inPos; layout (location = 1) in vec3 inNormal; -layout (location = 2) in vec2 inTexCoord; layout (location = 3) in vec3 inColor; layout (binding = 0) uniform UBO @@ -14,21 +13,24 @@ layout (binding = 0) uniform UBO mat4 model; mat4 normal; mat4 view; + int texIndex; } ubo; layout (location = 0) out vec3 outColor; layout (location = 1) out vec3 outEyePos; layout (location = 2) out vec3 outNormal; +layout (location = 3) out flat int outTexIndex; void main() { outColor = inColor; mat4 modelView = ubo.view * ubo.model; outEyePos = normalize( vec3( modelView * inPos ) ); + outTexIndex = ubo.texIndex; // outNormal = normalize( mat3(ubo.normal) * inNormal ); outNormal = normalize(inNormal); vec3 r = reflect( outEyePos, outNormal ); float m = 2.0 * sqrt( pow(r.x, 2.0) + pow(r.y, 2.0) + pow(r.z + 1.0, 2.0)); //vN = r.xy / m + .5; - gl_Position = ubo.projection * modelView * inPos ; + gl_Position = ubo.projection * modelView * inPos; } diff --git a/data/shaders/sphericalenvmapping/sem.vert.spv b/data/shaders/sphericalenvmapping/sem.vert.spv new file mode 100644 index 00000000..8c580876 Binary files /dev/null and b/data/shaders/sphericalenvmapping/sem.vert.spv differ