diff --git a/shader/lighting/cloud.frag b/shader/lighting/cloud.frag new file mode 100644 index 000000000..d6fe56413 --- /dev/null +++ b/shader/lighting/cloud.frag @@ -0,0 +1,21 @@ +#version 450 core +layout(early_fragment_tests) in; +layout (std140, binding = 1) uniform TheLight { vec4 lightPos; vec4 lumRad; }; +layout (binding = 0) uniform sampler2D screenTexture; +layout (binding = 1) uniform sampler2D normals; +in vec2 vTexPos; +out vec4 fColor; +float rad = lumRad.a; +void main() { + vec3 pos = texture(screenTexture, vTexPos).xyz; + vec3 distVec = pos - lightPos.xyz; + float dist = dot(distVec, distVec); + vec3 norm = texture(normals, vTexPos).xyz; + float y1 = dot(norm, distVec); + float y2 = float(y1 > 0 ? 1 : 0.1); + //bool t = pos.z > lightPos.z && norm.z > 0; + //float y2 = float(y1 > 0 || t ? 1 : 0.1); + float x = 1 - (pow(dist / rad,4)); + vec3 c = y2* x * lumRad.rgb; + fColor = vec4(c, 0); +} diff --git a/shader/lighting/cloud.vert b/shader/lighting/cloud.vert new file mode 100644 index 000000000..2672e2b06 --- /dev/null +++ b/shader/lighting/cloud.vert @@ -0,0 +1,8 @@ +#version 450 core +layout (std140, binding = 2) uniform PosTex { vec4 posTex[6]; }; +out vec2 vTexPos; +void main() +{ + gl_Position = vec4(posTex[gl_VertexID].xy,0,1); + vTexPos = posTex[gl_VertexID].zw; +} diff --git a/shader/picture/charArray.vert b/shader/picture/charArray.vert index 16024bfe7..a7956a219 100644 --- a/shader/picture/charArray.vert +++ b/shader/picture/charArray.vert @@ -10,6 +10,5 @@ void main() { gl_Position = theMat * pos; vColor = inColor; - //vTexCoord = inTexCoord.xyz; vTexCoord = inTexCoord; } diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index dbb8c3030..e09fe0a76 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -122,7 +122,6 @@ preloadRender = do putStrLn "Setup full screen shaders" alphadivideshader <- makeSourcedShader "texture2D/alphaDivide" [vert, frag] fsShad <- makeSourcedShader "texture/simple" [vert, frag] --- transcompshader <- makeSourcedShader "fullscreen/transparencyComp" [vert, frag] bloomBlurShad <- makeSourcedShader "texture/bloomBlur" [vert, frag] lightingTextureShad <- makeSourcedShader "lighting/texture" [vert, frag] lightingCloudShad <- makeSourcedShader "lighting/cloud" [vert, frag] @@ -185,7 +184,6 @@ preloadRender = do , _windowPullShader = winpull , _pullWallShader = wallpull , _fullscreenShader = fsShad --- , _transparencyCompShader = transcompshader , _alphaDivideShader = alphadivideshader , _lightingTextureShader = lightingTextureShad , _lightingCloudShader = lightingCloudShad diff --git a/src/Shader/Compile.hs b/src/Shader/Compile.hs index 1cf43ef14..5c70c911b 100644 --- a/src/Shader/Compile.hs +++ b/src/Shader/Compile.hs @@ -125,16 +125,14 @@ setupVertexAttribPointer vao loc va = do where loc' = fromIntegral loc -makeShaderProgram :: - String -> - [(GLenum, BS.ByteString)] -> -- list of shaders - IO GLuint +makeShaderProgram :: String -> [(GLenum, BS.ByteString)] -> IO GLuint makeShaderProgram str srcs = do theprog <- glCreateProgram shaders <- mapM (compileAndCheckShader str) srcs mapM_ (glAttachShader theprog) shaders glLinkProgram theprog - checkErrorGL (str ++ " linking ") glGetProgramiv glGetProgramInfoLog theprog GL_LINK_STATUS + checkErrorGL + (str ++ " linking ") glGetProgramiv glGetProgramInfoLog theprog GL_LINK_STATUS mapM_ (glDetachShader theprog) shaders mapM_ glDeleteShader shaders return theprog diff --git a/src/Shader/Poke.hs b/src/Shader/Poke.hs index 32d460b9b..c008e6c0e 100644 --- a/src/Shader/Poke.hs +++ b/src/Shader/Poke.hs @@ -499,11 +499,10 @@ pokeLayVerx vbos counts vx = do pokeStride :: ShadNum -> Int {-# INLINE pokeStride #-} -pokeStride PolyShad = 7 + 1 ---pokeStride TextShad = 11 -pokeStride TextShad = 10 + 2 -pokeStride ArcShad = 10 + 2 -pokeStride EllShad = 7 + 1 +pokeStride PolyShad = 8 +pokeStride TextShad = 12 +pokeStride ArcShad = 12 +pokeStride EllShad = 8 poke34 :: Ptr Float -> Point3 -> Point4 -> IO () {-# INLINE poke34 #-} diff --git a/tags b/tags index 8e685d585..e7fa0399e 100644 --- a/tags +++ b/tags @@ -4379,8 +4379,8 @@ pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f pointsToPoly src/Geometry/ConvexPoly.hs 35;" f poisonSPic src/Dodge/Creature/Update.hs 125;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f -poke34 src/Shader/Poke.hs 508;" f -pokeArrayOff src/Shader/Poke.hs 520;" f +poke34 src/Shader/Poke.hs 507;" f +pokeArrayOff src/Shader/Poke.hs 519;" f pokeBox src/Shader/Poke.hs 228;" f pokeBoxSurface src/Shader/Poke.hs 261;" f pokeChasm src/Shader/Poke/Floor.hs 25;" f