fix shader issue
This commit is contained in:
@@ -56,7 +56,7 @@ main = do
|
|||||||
Model
|
Model
|
||||||
objects
|
objects
|
||||||
(Camera
|
(Camera
|
||||||
(V3 0 0 5)
|
(V3 0 0 3)
|
||||||
(V3 0 0 0)
|
(V3 0 0 0)
|
||||||
(V3 0 1 0)
|
(V3 0 1 0)
|
||||||
)
|
)
|
||||||
@@ -117,7 +117,7 @@ vertShader =
|
|||||||
"uniform mat4 u_projection;\n" ++
|
"uniform mat4 u_projection;\n" ++
|
||||||
"void main()\n" ++
|
"void main()\n" ++
|
||||||
"{\n" ++
|
"{\n" ++
|
||||||
" gl_Position = u_projection * u_view * vec4(a_vPos, 0);\n" ++
|
" gl_Position = u_projection * u_view * vec4(a_vPos.xyz, 1.0);\n" ++
|
||||||
"}"
|
"}"
|
||||||
|
|
||||||
-- | fragment shader
|
-- | fragment shader
|
||||||
@@ -228,8 +228,8 @@ loop window update view modelRef = do
|
|||||||
Just frameEnd <- GLFW.getTime
|
Just frameEnd <- GLFW.getTime
|
||||||
let
|
let
|
||||||
dt = frameEnd - frameStart :: Double
|
dt = frameEnd - frameStart :: Double
|
||||||
target = 1 / 60 :: Double
|
target = 1 / 30 :: Double
|
||||||
when (dt < target) $ threadDelay $ floor $ (target - dt) * 1000
|
when (dt < target) $ threadDelay $ floor $ (target - dt) * 1000000
|
||||||
|
|
||||||
loop window update view modelRef
|
loop window update view modelRef
|
||||||
|
|
||||||
@@ -273,13 +273,13 @@ view window (model@(Model objects (Camera camPos camTarget camUp) program)) = do
|
|||||||
-- apply transforms
|
-- apply transforms
|
||||||
let
|
let
|
||||||
viewMatrix = L.lookAt camPos camTarget camUp
|
viewMatrix = L.lookAt camPos camTarget camUp
|
||||||
projectionMatrix = L.perspective 1 (fromIntegral w / fromIntegral h) 0.1 100
|
projectionMatrix = L.perspective 1.4 (fromIntegral w / fromIntegral h) 0.1 100
|
||||||
|
|
||||||
viewGLMatrix <- GL.newMatrix GL.ColumnMajor $ toGLMatrix projectionMatrix :: IO (GL.GLmatrix GL.GLfloat)
|
viewGLMatrix <- GL.newMatrix GL.RowMajor $ toGLMatrix viewMatrix :: IO (GL.GLmatrix GL.GLfloat)
|
||||||
viewLocation <- GL.get $ GL.uniformLocation program "u_view"
|
viewLocation <- GL.get $ GL.uniformLocation program "u_view"
|
||||||
GL.uniform viewLocation $= viewGLMatrix
|
GL.uniform viewLocation $= viewGLMatrix
|
||||||
|
|
||||||
projectionGLMatrix <- GL.newMatrix GL.ColumnMajor $ toGLMatrix projectionMatrix :: IO (GL.GLmatrix GL.GLfloat)
|
projectionGLMatrix <- GL.newMatrix GL.RowMajor $ toGLMatrix projectionMatrix :: IO (GL.GLmatrix GL.GLfloat)
|
||||||
projectionLocation <- GL.get $ GL.uniformLocation program "u_projection"
|
projectionLocation <- GL.get $ GL.uniformLocation program "u_projection"
|
||||||
GL.uniform projectionLocation $= projectionGLMatrix
|
GL.uniform projectionLocation $= projectionGLMatrix
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user