Implement texture atlas, details on why it works unclear

This commit is contained in:
jgk
2021-06-14 16:24:10 +02:00
parent f09fe8798e
commit 73bd407c49
16 changed files with 118 additions and 26 deletions
+15 -6
View File
@@ -10,7 +10,6 @@ import Shader
import Shader.Data
import Shader.Compile
import Shader.AuxAddition
import Geometry.Data
import Data.Preload.Render
import Graphics.Rendering.OpenGL hiding (Point,translate,scale,imageHeight)
@@ -54,8 +53,12 @@ preloadRender = do
>>= addTexture "data/texture/grayscaleDirt.png"
---- texture shader
-- textShad <- makeShader "texture/simpleWorld" [vert,frag] [(0,3),(1,2)] Triangles poke32
-- >>= addTexture "data/texture/ayene_wooden_floor.png"
textShad <- makeShader "texture/simpleWorld" [vert,frag] [3,2] Triangles poke32
>>= addTexture "data/texture/ayene_wooden_floor.png"
---- texture array shader
textArrayShad <- makeShader "texture/array" [vert,frag] [3,3] Triangles poke33
>>= addTextureArray "data/texture/ayene_wooden_floor.png"
-- framebuffer for lighting
(fbo,fboTO,fboRBO) <- setupFramebufferWithStencil
@@ -70,7 +73,8 @@ preloadRender = do
, _lightingWallShader = wlLightShad
, _wallBlankShader = wlBlank
, _wallTextureShader = wlTexture
--, _textureShader = textShad
, _textureShader = textShad
, _textureArrayShader = textArrayShad
, _backgroundShader = bgShad
, _fullscreenShader = fsShad
, _boxBlurShader = boxBlurShad
@@ -195,8 +199,13 @@ pokeWPColStrat :: RenderType -> [[Float]]
pokeWPColStrat Render22x4{_unRender22x4=(((x,y),(z,w)),(r,g,b,a))} = [[x,y,z,w,r,g,b,a]]
pokeWPColStrat _ = undefined
poke32 :: (Point3,Point2) -> [[Float]]
poke32 ((x,y,z),(a,b)) = [[x,y,z,a,b]]
poke32 :: RenderType -> [[Float]]
poke32 Render3x2{_unRender3x2=((x,y,z),(a,b))} = [[x,y,z,a,b]]
poke32 _ = undefined
poke33 :: RenderType -> [[Float]]
poke33 Render3x3{_unRender3x3=((x,y,z),(a,b,c))} = [[x,y,z,a,b,c]]
poke33 _ = undefined
pokeBGStrat :: a -> [[Float]]
pokeBGStrat = const []