mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-01-23 17:30:42 +00:00
a626dc7ca8
This takes care of the type punning issue by each pass using the correct sampler type with the correct view types bound. Also, point light and spot light shadow maps are now guaranteed to be separated (it was just luck that they were before) and spot light maps may be significantly smaller as their cone angle is taken into account. Lighting is quite borked, but at least the engine is running again.
17 lines
456 B
GLSL
17 lines
456 B
GLSL
#version 450
|
|
#extension GL_GOOGLE_include_directive : enable
|
|
|
|
layout (set = 0, binding = 0) buffer ShadowMatrices {
|
|
mat4 shadow_mats[];
|
|
};
|
|
layout (set = 3, binding = 0) uniform samplerCubeArrayShadow shadow_map[32];
|
|
|
|
float
|
|
shadow (uint map_id, uint layer, uint mat_id, vec3 pos)
|
|
{
|
|
vec4 p = shadow_mats[mat_id] * vec4 (pos, 1);
|
|
float depth = (p / p.w).z;
|
|
return texture (shadow_map[map_id], vec4 (p.xyz, layer), depth);
|
|
}
|
|
|
|
#include "lighting_main.finc"
|