Fix tile depth

This commit is contained in:
2021-06-25 02:27:20 +02:00
parent b6feccd934
commit 2d0f08c2e9
4 changed files with 12 additions and 2 deletions
+1
View File
@@ -10,6 +10,7 @@ data RenderData = RenderData
{ _lightingFloorShader :: FullShader { _lightingFloorShader :: FullShader
, _lightingOccludeShader :: FullShader , _lightingOccludeShader :: FullShader
, _lightingWallShader :: FullShader , _lightingWallShader :: FullShader
, _lightingSurfaceShader :: FullShader
, _wallBlankShader :: FullShader , _wallBlankShader :: FullShader
, _wallTextureShader :: FullShader , _wallTextureShader :: FullShader
, _textureShader :: FullShader , _textureShader :: FullShader
+1
View File
@@ -20,6 +20,7 @@ data RenderType
| RenderArc [(Point3,Point4,Point3)] | RenderArc [(Point3,Point4,Point3)]
| RenderLine [(Point3,Point4)] | RenderLine [(Point3,Point4)]
| RenderEllipse [(Point3,Point4)] | RenderEllipse [(Point3,Point4)]
| Render3 [Point3]
| RenderConst | RenderConst
| Render1111 {_unRender1111 :: (Float,Float,Float,Float)} | Render1111 {_unRender1111 :: (Float,Float,Float,Float)}
| Render22 {_unRender22 :: (Point2,Point2)} | Render22 {_unRender22 :: (Point2,Point2)}
+8
View File
@@ -33,6 +33,9 @@ preloadRender = do
wlLightShad wlLightShad
<- makeShader "lighting/wall" [vert,geom,frag] [4] Points pokeWPStrat <- makeShader "lighting/wall" [vert,geom,frag] [4] Points pokeWPStrat
>>= addUniforms ["lightPos","radLum"] >>= addUniforms ["lightPos","radLum"]
lightingSurfaceShad
<- makeShader "lighting/surface" [vert,frag] [3] Points poke3
>>= addUniforms ["lightPos","radLum"]
-- 2D draw shaders -- 2D draw shaders
bslist <- makeShader "twoD/basic" [vert,frag] [3,4] Triangles pokeTriStrat bslist <- makeShader "twoD/basic" [vert,frag] [3,4] Triangles pokeTriStrat
lslist <- makeShader "twoD/basic" [vert,frag] [3,4] Lines pokeLineStrat lslist <- makeShader "twoD/basic" [vert,frag] [3,4] Lines pokeLineStrat
@@ -72,6 +75,7 @@ preloadRender = do
return $ RenderData return $ RenderData
{ _pictureShaders = [bslist,lslist,cslist,aslist,eslist,bezierQuadShader] { _pictureShaders = [bslist,lslist,cslist,aslist,eslist,bezierQuadShader]
, _lightingSurfaceShader = lightingSurfaceShad
, _lightingFloorShader = lightingFloorShad , _lightingFloorShader = lightingFloorShad
, _lightingOccludeShader = wsShad , _lightingOccludeShader = wsShad
, _lightingWallShader = wlLightShad , _lightingWallShader = wlLightShad
@@ -182,6 +186,10 @@ vert = VertexShader
geom = GeometryShader geom = GeometryShader
frag = FragmentShader frag = FragmentShader
poke3 :: RenderType -> [[Float]]
poke3 (Render3 vs) = map flat3 vs
poke3 _ = undefined
pokeWPStrat :: RenderType -> [[Float]] pokeWPStrat :: RenderType -> [[Float]]
pokeWPStrat Render22{_unRender22 = ((x,y),(z,w))} = [[x,y,z,w]] pokeWPStrat Render22{_unRender22 = ((x,y),(z,w))} = [[x,y,z,w]]
pokeWPStrat _ = undefined pokeWPStrat _ = undefined
+1 -1
View File
@@ -10,7 +10,7 @@ tToRender t = map Render3x3 $ polyToTris $ zip ps3 coords3
where where
ps = _tilePoly t ps = _tilePoly t
coords = map (calcTexCoord (_tileCenter t) (_tileX t) (_tileY t)) ps coords = map (calcTexCoord (_tileCenter t) (_tileX t) (_tileY t)) ps
ps3 = map (mkTrip 0.9) ps ps3 = map (mkTrip 0.1) ps
coords3 = map (mkTrip (_tileZ t)) coords coords3 = map (mkTrip (_tileZ t)) coords
mkTrip :: c -> (a,b) -> (a,b,c) mkTrip :: c -> (a,b) -> (a,b,c)