better colors
This commit is contained in:
@@ -48,7 +48,11 @@ initResources arrays = do
|
|||||||
listIOsToIOlist
|
listIOsToIOlist
|
||||||
[createObject arr 4 GL.Triangles (GL.AttribLocation 0) | arr <- arrays]
|
[createObject arr 4 GL.Triangles (GL.AttribLocation 0) | arr <- arrays]
|
||||||
[]
|
[]
|
||||||
program <- loadColorShader
|
program <-
|
||||||
|
loadShaders
|
||||||
|
[ ShaderInfo GL.VertexShader (StringSource vertShader),
|
||||||
|
ShaderInfo GL.FragmentShader (StringSource fragShader)
|
||||||
|
]
|
||||||
GL.currentProgram $= Just program
|
GL.currentProgram $= Just program
|
||||||
return (objects, program)
|
return (objects, program)
|
||||||
|
|
||||||
@@ -63,20 +67,6 @@ listIOsToIOlist (io : ios) out = do
|
|||||||
-- u_ uniform
|
-- u_ uniform
|
||||||
-- o_ fragment shader output
|
-- o_ fragment shader output
|
||||||
|
|
||||||
loadBlackShader :: IO GL.Program
|
|
||||||
loadBlackShader =
|
|
||||||
loadShaders
|
|
||||||
[ ShaderInfo GL.VertexShader (StringSource vertShader),
|
|
||||||
ShaderInfo GL.FragmentShader (StringSource blackFragShader)
|
|
||||||
]
|
|
||||||
|
|
||||||
loadColorShader :: IO GL.Program
|
|
||||||
loadColorShader =
|
|
||||||
loadShaders
|
|
||||||
[ ShaderInfo GL.VertexShader (StringSource vertShader),
|
|
||||||
ShaderInfo GL.FragmentShader (StringSource colorFragShader)
|
|
||||||
]
|
|
||||||
|
|
||||||
vertShader :: String
|
vertShader :: String
|
||||||
vertShader =
|
vertShader =
|
||||||
unlines
|
unlines
|
||||||
@@ -94,26 +84,17 @@ vertShader =
|
|||||||
"}"
|
"}"
|
||||||
]
|
]
|
||||||
|
|
||||||
colorFragShader :: String
|
fragShader :: String
|
||||||
colorFragShader =
|
fragShader =
|
||||||
unlines
|
unlines
|
||||||
[ "#version 330 core",
|
[ "#version 330 core",
|
||||||
"out vec4 o_vColor;",
|
"out vec4 o_vColor;",
|
||||||
"in vec3 v_pos;",
|
"in vec3 v_pos;",
|
||||||
"void main()",
|
"void main()",
|
||||||
"{",
|
"{",
|
||||||
" o_vColor = vec4((0.5 + 0.5 * normalize(v_pos)) / 2, 1.0);",
|
" // yoinked from https://stackoverflow.com/questions/14980712/how-to-get-flat-normals-on-a-cube/14981446#14981446",
|
||||||
"}"
|
" vec3 norm = normalize(cross(dFdx(v_pos), dFdy(v_pos)));",
|
||||||
]
|
" o_vColor = vec4((0.5 + 0.5 * norm) / 2, 1.0);",
|
||||||
|
|
||||||
blackFragShader :: String
|
|
||||||
blackFragShader =
|
|
||||||
unlines
|
|
||||||
[ "#version 330 core",
|
|
||||||
"out vec4 o_vColor;",
|
|
||||||
"void main()",
|
|
||||||
"{",
|
|
||||||
" o_vColor = vec4(0.0, 0.0, 0.0, 1.0);",
|
|
||||||
"}"
|
"}"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -48,9 +48,8 @@ main = do
|
|||||||
GLFW.setCursorPosCallback window $ Just (cursorPosHandler Nothing)
|
GLFW.setCursorPosCallback window $ Just (cursorPosHandler Nothing)
|
||||||
(objects, program) <-
|
(objects, program) <-
|
||||||
initResources $
|
initResources $
|
||||||
[map (v3tov4 0) $ map (+ V3 a 0 0) cube | a <- take 100 [4, 6 ..]]
|
[map (\v -> (V4 a 0 a 0) + (rotate4 0 3 (a * g90 / 6) v)) hCube | a <- take 100 [0, 2 ..]]
|
||||||
++ [hCube]
|
++ [map (+ V4 a 0 0 0) hCube | a <- take 100 [0, (-2) ..]]
|
||||||
++ [map (\v -> rotate4 0 3 (g90 / 3) (v + V4 0 3 0 0)) hCube]
|
|
||||||
|
|
||||||
let model =
|
let model =
|
||||||
mkModel
|
mkModel
|
||||||
|
|||||||
Reference in New Issue
Block a user