mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-24 20:51:35 +00:00
This gets the alias pipeline in line with the bsp pipeline, and thus everything is about as functional as it was before the rework (minus dealing with large texture sets).
42 lines
1.2 KiB
GLSL
42 lines
1.2 KiB
GLSL
#version 450
|
|
|
|
layout (constant_id = 0) const int MaxTextures = 256;
|
|
|
|
layout (set = 1, binding = 0) uniform sampler samp;
|
|
layout (set = 1, binding = 1) uniform texture2DArray skins[MaxTextures];
|
|
|
|
layout (push_constant) uniform PushConstants {
|
|
layout (offset = 68)
|
|
uint texind;
|
|
uint colorA;
|
|
uint colorB;
|
|
vec4 base_color;
|
|
vec4 fog;
|
|
};
|
|
|
|
layout (location = 0) in vec2 st;
|
|
layout (location = 1) in vec4 position;
|
|
layout (location = 2) in vec3 normal;
|
|
|
|
layout (location = 0) out vec4 frag_color;
|
|
layout (location = 1) out vec4 frag_emission;
|
|
layout (location = 2) out vec4 frag_normal;
|
|
layout (location = 3) out vec4 frag_position;
|
|
|
|
void
|
|
main (void)
|
|
{
|
|
vec4 c;
|
|
vec4 e;
|
|
int i;
|
|
vec3 light = vec3 (0);
|
|
c = texture (sampler2DArray(skins[texind], samp), vec3 (st, 0)) * base_color;
|
|
c += texture (sampler2DArray(skins[texind], samp), vec3 (st, 1)) * unpackUnorm4x8(colorA);
|
|
c += texture (sampler2DArray(skins[texind], samp), vec3 (st, 2)) * unpackUnorm4x8(colorB);
|
|
e = texture (sampler2DArray(skins[texind], samp), vec3 (st, 3));
|
|
|
|
frag_color = c;
|
|
frag_emission = e;
|
|
frag_normal = vec4(normal, 1);
|
|
frag_position = position;
|
|
}
|