diff --git a/shader/wallShadow.geom b/shader/wallShadow.geom index b3d11a788..6f80907d9 100644 --- a/shader/wallShadow.geom +++ b/shader/wallShadow.geom @@ -1,6 +1,6 @@ #version 430 core layout (points) in; -layout (triangle_strip, max_vertices = 8) out; +layout (triangle_strip, max_vertices = 12) out; in vec4 vBackPoss[]; uniform vec2 lightPos; @@ -31,11 +31,14 @@ void main() vec2 backR = backR4.xy; if (isLHS( lightPos - frontL, frontR - frontL) < 0) +// if (isLHS( lightPos - backL, backR - backL) < 0) { + emitLine (frontL); emitLine (backL); emitLine (frontL); emitLine (frontR); emitLine (backR); + emitLine (frontR); } else { diff --git a/src/Dodge/Rendering.hs b/src/Dodge/Rendering.hs index 9b582ae0e..9b5e3b654 100644 --- a/src/Dodge/Rendering.hs +++ b/src/Dodge/Rendering.hs @@ -396,6 +396,7 @@ lineOnScreen w (p1:p2:_) = errorPointInPolygon 8 p1 sp || errorPointInPolygon 9 drawWallShadow :: World -> Wall -> Drawing +--drawWallShadow w _ = blank drawWallShadow w wall | isRHS sightFrom x y = blank -- | otherwise = onLayerL l $ color shadCol $ polygon $ points @@ -404,7 +405,8 @@ drawWallShadow w wall colorAndLayer | _wlIsSeeThrough wall = setLayer 2 . onLayerL [levLayer ShadowLayer] . color (withAlpha 0.2 $ _wlColor wall) - | otherwise = onLayerL [levLayer ShadowLayer,2] + | otherwise = setLayer 1 + . onLayerL [levLayer ShadowLayer,2] . color black (x:y:_) = _wlLine wall ps = linePointsBetween x y