diff --git a/src/main/java/io/github/hydos/ginger/Example.java b/src/main/java/io/github/hydos/ginger/Example.java index d37da8f..2a601b9 100644 --- a/src/main/java/io/github/hydos/ginger/Example.java +++ b/src/main/java/io/github/hydos/ginger/Example.java @@ -75,7 +75,7 @@ public class Example { TexturedModel dragonMdl = ModelLoader.loadModel("dragon.obj", "stallTexture.png"); - dragonMdl.getTexture().setReflectivity(4f); + dragonMdl.getTexture().setReflectivity(4f); dragonMdl.getTexture().setShineDamper(2f); @@ -123,8 +123,8 @@ public class Example { float colour = 0; terrains.add(terrain); - GuiTexture shadowMap = new GuiTexture(masterRenderer.getShadowMapTexture(), new Vector2f(0.5f,0.5f), new Vector2f(0.5f,0.5f)); - guis.add(shadowMap); +// GuiTexture shadowMap = new GuiTexture(masterRenderer.getShadowMapTexture(), new Vector2f(0.5f,0.5f), new Vector2f(0.5f,0.5f)); +// guis.add(shadowMap); ParticleTexture particleTexture = new ParticleTexture(Loader.loadTexture("particles/smoke.png"), 8); diff --git a/src/main/java/io/github/hydos/ginger/engine/renderEngine/MasterRenderer.java b/src/main/java/io/github/hydos/ginger/engine/renderEngine/MasterRenderer.java index 9a920be..f32652f 100644 --- a/src/main/java/io/github/hydos/ginger/engine/renderEngine/MasterRenderer.java +++ b/src/main/java/io/github/hydos/ginger/engine/renderEngine/MasterRenderer.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL13; import io.github.hydos.ginger.engine.elements.Entity; import io.github.hydos.ginger.engine.elements.Light; @@ -80,7 +81,13 @@ public class MasterRenderer { GL11.glDisable(GL11.GL_CULL_FACE); } + public void prepare() { + GL13.glActiveTexture(GL13.GL_TEXTURE5); + GL11.glBindTexture(GL11.GL_TEXTURE_2D, shadowMapRenderer.getShadowMap()); + } + public void renderScene(List entities, List normalEntities, List terrains, List lights, ThirdPersonCamera camera, Vector4f clipPlane) { + prepare(); renderEntities(entities, camera, lights); renderNormalEntities(normalEntities, lights, camera, clipPlane); renderTerrains(terrains, lights, camera); @@ -105,7 +112,7 @@ public class MasterRenderer { terrainShader.loadSkyColour(Window.getColour()); terrainShader.loadLights(lights); terrainShader.loadViewMatrix(camera); - terrainRenderer.render(terrains); + terrainRenderer.render(terrains, shadowMapRenderer.getToShadowMapSpaceMatrix()); terrainShader.stop(); } diff --git a/src/main/java/io/github/hydos/ginger/engine/renderEngine/renderers/TerrainRenderer.java b/src/main/java/io/github/hydos/ginger/engine/renderEngine/renderers/TerrainRenderer.java index 4bb464f..d9c46b9 100644 --- a/src/main/java/io/github/hydos/ginger/engine/renderEngine/renderers/TerrainRenderer.java +++ b/src/main/java/io/github/hydos/ginger/engine/renderEngine/renderers/TerrainRenderer.java @@ -28,7 +28,8 @@ public class TerrainRenderer { shader.stop(); } - public void render(List terrains) { + public void render(List terrains, Matrix4f toShadowSpace) { + shader.loadToShadowMapSpace(toShadowSpace); for(Terrain t : terrains) { prepareTerrain(t); loadModelMatrix(t); diff --git a/src/main/java/io/github/hydos/ginger/engine/renderEngine/shaders/TerrainShader.java b/src/main/java/io/github/hydos/ginger/engine/renderEngine/shaders/TerrainShader.java index 1b4d86e..9259308 100644 --- a/src/main/java/io/github/hydos/ginger/engine/renderEngine/shaders/TerrainShader.java +++ b/src/main/java/io/github/hydos/ginger/engine/renderEngine/shaders/TerrainShader.java @@ -34,7 +34,10 @@ public class TerrainShader extends ShaderProgram{ private int location_bTexture; private int location_blendMap; + + private int location_toShadowMapSpace; + private int location_shadowMap; public TerrainShader() { super("terrainVertexShader.glsl", "terrainFragmentShader.glsl"); @@ -61,6 +64,8 @@ public class TerrainShader extends ShaderProgram{ location_gTexture = super.getUniformLocation("gTexture"); location_bTexture = super.getUniformLocation("bTexture"); location_blendMap = super.getUniformLocation("blendMap"); + location_toShadowMapSpace = super.getUniformLocation("toShadowMapSpace"); + location_shadowMap = super.getUniformLocation("shadowMap"); } @Override @@ -106,12 +111,17 @@ public class TerrainShader extends ShaderProgram{ super.loadVector(location_skyColour, colour); } + public void loadToShadowMapSpace(Matrix4f matrix) { + super.loadMatrix(location_toShadowMapSpace, matrix); + } + public void connectTextureUnits() { super.loadInt(location_backgroundTexture, 0); super.loadInt(location_rTexture, 1); super.loadInt(location_gTexture, 2); super.loadInt(location_bTexture, 3); super.loadInt(location_blendMap, 4); + super.loadInt(location_shadowMap, 5); } } diff --git a/src/main/java/io/github/hydos/ginger/engine/shadow/ShadowMapMasterRenderer.java b/src/main/java/io/github/hydos/ginger/engine/shadow/ShadowMapMasterRenderer.java index 9f8bae7..60648a8 100644 --- a/src/main/java/io/github/hydos/ginger/engine/shadow/ShadowMapMasterRenderer.java +++ b/src/main/java/io/github/hydos/ginger/engine/shadow/ShadowMapMasterRenderer.java @@ -21,7 +21,7 @@ import io.github.hydos.ginger.engine.renderEngine.models.TexturedModel; */ public class ShadowMapMasterRenderer { - private static final int SHADOW_MAP_SIZE = 2048; + private static final int SHADOW_MAP_SIZE = 4096; private ShadowFrameBuffer shadowFbo; private ShadowShader shader; diff --git a/src/main/resources/shaders/terrainFragmentShader.glsl b/src/main/resources/shaders/terrainFragmentShader.glsl index 220958a..14df34f 100644 --- a/src/main/resources/shaders/terrainFragmentShader.glsl +++ b/src/main/resources/shaders/terrainFragmentShader.glsl @@ -5,6 +5,7 @@ in vec3 surfaceNormal; in vec3 toLightVector[5]; in vec3 toCameraVector; in float visibility; +in vec4 shadowCoords; out vec4 out_Color; @@ -13,6 +14,8 @@ uniform sampler2D rTexture; uniform sampler2D gTexture; uniform sampler2D bTexture; uniform sampler2D blendMap; +uniform sampler2D shadowMap; + uniform vec3 attenuation[5]; uniform vec3 lightColour[5]; const float shineDamper = 0; @@ -21,6 +24,12 @@ uniform vec3 skyColour; void main(void){ + float objectNearestLight = texture(shadowMap, shadowCoords.xy).r; + float lightFactor = 1.0; + if(shadowCoords.z > objectNearestLight){ + lightFactor = 1.0 - 0.4; + } + vec4 blendMapColour = texture(blendMap, pass_textureCoords); vec3 unitVectorToCamera = normalize(toCameraVector); @@ -55,7 +64,7 @@ void main(void){ totalSpecular = totalSpecular + dampedFactor * reflectivity * lightColour[i] / attFactor; } - totalDiffuse = max(totalDiffuse, 0.2); + totalDiffuse = max(totalDiffuse, 0.2) * lightFactor; out_Color = vec4(totalDiffuse, 1.0) * totalColour + vec4(totalSpecular, 1.0); out_Color = mix(vec4(skyColour, 1.0), out_Color, visibility); diff --git a/src/main/resources/shaders/terrainVertexShader.glsl b/src/main/resources/shaders/terrainVertexShader.glsl index 912c99a..cd72a79 100644 --- a/src/main/resources/shaders/terrainVertexShader.glsl +++ b/src/main/resources/shaders/terrainVertexShader.glsl @@ -1,5 +1,4 @@ -#version 400 core - +#version 150 in vec3 position; in vec2 textureCoords; in vec3 normal; @@ -9,18 +8,23 @@ out vec3 surfaceNormal; out vec3 toLightVector[5]; out vec3 toCameraVector; out float visibility; +out vec4 shadowCoords; uniform mat4 transformationMatrix; uniform mat4 projectionMatrix; uniform mat4 viewMatrix; uniform vec3 lightPosition[5]; +uniform mat4 toShadowMapSpace; + const float density = 0.01; const float gradient = 1; void main(void){ vec4 worldPosition = transformationMatrix * vec4(position.xyz,1.0); + shadowCoords = toShadowMapSpace * worldPosition; + vec4 positionRelativeToCam = viewMatrix * worldPosition; gl_Position = projectionMatrix * positionRelativeToCam; diff --git a/target/classes/io/github/hydos/ginger/Example.class b/target/classes/io/github/hydos/ginger/Example.class index 5b77f91..8ebe5f7 100644 Binary files a/target/classes/io/github/hydos/ginger/Example.class and b/target/classes/io/github/hydos/ginger/Example.class differ diff --git a/target/classes/io/github/hydos/ginger/Starter.class b/target/classes/io/github/hydos/ginger/Starter.class index 970edd9..b60c210 100644 Binary files a/target/classes/io/github/hydos/ginger/Starter.class and b/target/classes/io/github/hydos/ginger/Starter.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/elements/Entity.class b/target/classes/io/github/hydos/ginger/engine/elements/Entity.class index 7f53469..6a4f409 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/elements/Entity.class and b/target/classes/io/github/hydos/ginger/engine/elements/Entity.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/elements/FirstPersonCamera.class b/target/classes/io/github/hydos/ginger/engine/elements/FirstPersonCamera.class index e9b3293..a7cbff8 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/elements/FirstPersonCamera.class and b/target/classes/io/github/hydos/ginger/engine/elements/FirstPersonCamera.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/elements/Light.class b/target/classes/io/github/hydos/ginger/engine/elements/Light.class index 380a56c..3f1cd71 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/elements/Light.class and b/target/classes/io/github/hydos/ginger/engine/elements/Light.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/elements/Player.class b/target/classes/io/github/hydos/ginger/engine/elements/Player.class index f067b6f..ff47562 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/elements/Player.class and b/target/classes/io/github/hydos/ginger/engine/elements/Player.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/elements/ThirdPersonCamera$1.class b/target/classes/io/github/hydos/ginger/engine/elements/ThirdPersonCamera$1.class index 0d703f6..73fd314 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/elements/ThirdPersonCamera$1.class and b/target/classes/io/github/hydos/ginger/engine/elements/ThirdPersonCamera$1.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/elements/ThirdPersonCamera.class b/target/classes/io/github/hydos/ginger/engine/elements/ThirdPersonCamera.class index 54536e7..ca79158 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/elements/ThirdPersonCamera.class and b/target/classes/io/github/hydos/ginger/engine/elements/ThirdPersonCamera.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/font/Character.class b/target/classes/io/github/hydos/ginger/engine/font/Character.class index 780c253..447259f 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/font/Character.class and b/target/classes/io/github/hydos/ginger/engine/font/Character.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/font/FontType.class b/target/classes/io/github/hydos/ginger/engine/font/FontType.class index b19b527..7e0faa6 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/font/FontType.class and b/target/classes/io/github/hydos/ginger/engine/font/FontType.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/font/GUIText.class b/target/classes/io/github/hydos/ginger/engine/font/GUIText.class index bb50b84..3164476 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/font/GUIText.class and b/target/classes/io/github/hydos/ginger/engine/font/GUIText.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/font/Line.class b/target/classes/io/github/hydos/ginger/engine/font/Line.class index b8b7336..a8835fc 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/font/Line.class and b/target/classes/io/github/hydos/ginger/engine/font/Line.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/font/MetaFile.class b/target/classes/io/github/hydos/ginger/engine/font/MetaFile.class index d9589c8..b50a612 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/font/MetaFile.class and b/target/classes/io/github/hydos/ginger/engine/font/MetaFile.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/font/TextMaster.class b/target/classes/io/github/hydos/ginger/engine/font/TextMaster.class index f0d9044..f825fb0 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/font/TextMaster.class and b/target/classes/io/github/hydos/ginger/engine/font/TextMaster.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/font/TextMeshCreator.class b/target/classes/io/github/hydos/ginger/engine/font/TextMeshCreator.class index 842bc66..750f6ea 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/font/TextMeshCreator.class and b/target/classes/io/github/hydos/ginger/engine/font/TextMeshCreator.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/font/TextMeshData.class b/target/classes/io/github/hydos/ginger/engine/font/TextMeshData.class index 3ce44df..6bc906a 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/font/TextMeshData.class and b/target/classes/io/github/hydos/ginger/engine/font/TextMeshData.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/font/Word.class b/target/classes/io/github/hydos/ginger/engine/font/Word.class index d12e10d..8b7fd14 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/font/Word.class and b/target/classes/io/github/hydos/ginger/engine/font/Word.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/guis/GuiTexture.class b/target/classes/io/github/hydos/ginger/engine/guis/GuiTexture.class index 3f25279..45893a6 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/guis/GuiTexture.class and b/target/classes/io/github/hydos/ginger/engine/guis/GuiTexture.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/io/Window.class b/target/classes/io/github/hydos/ginger/engine/io/Window.class index ef068fc..4158dfb 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/io/Window.class and b/target/classes/io/github/hydos/ginger/engine/io/Window.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/Maths.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/Maths.class index d28f254..7eae7c1 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/Maths.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/Maths.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/Quaternion.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/Quaternion.class index 538dfd3..07f445b 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/Quaternion.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/Quaternion.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix.class index a2def8f..20d0847 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix2f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix2f.class index fc3f6ca..dffe93b 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix2f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix2f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix3f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix3f.class index 2275260..df64082 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix3f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix3f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix4f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix4f.class index 87f2624..4bd934a 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix4f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/matrixes/Matrix4f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector.class index aad9f5c..2263590 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector2f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector2f.class index 177829f..aa55db3 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector2f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector2f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector3f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector3f.class index 5d313a8..444dbd4 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector3f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector3f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector4f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector4f.class index 3031d75..3150c3e 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector4f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/ReadableVector4f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector.class index 358d0b5..2b6dbd0 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector2f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector2f.class index 87dd583..e2692d4 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector2f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector2f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector3f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector3f.class index 9aaa293..b83e8cd 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector3f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector3f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector4f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector4f.class index 4ba13ab..9994d90 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector4f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/Vector4f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector2f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector2f.class index d726633..4bf23a7 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector2f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector2f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector3f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector3f.class index bd21e8c..96c389f 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector3f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector3f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector4f.class b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector4f.class index f5d0dd0..c0f4a78 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector4f.class and b/target/classes/io/github/hydos/ginger/engine/mathEngine/vectors/WritableVector4f.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/obj/ModelData.class b/target/classes/io/github/hydos/ginger/engine/obj/ModelData.class index 94e30e1..b1cd759 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/obj/ModelData.class and b/target/classes/io/github/hydos/ginger/engine/obj/ModelData.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/obj/ModelLoader.class b/target/classes/io/github/hydos/ginger/engine/obj/ModelLoader.class index 99d6422..6dbdbcc 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/obj/ModelLoader.class and b/target/classes/io/github/hydos/ginger/engine/obj/ModelLoader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/obj/OBJFileLoader.class b/target/classes/io/github/hydos/ginger/engine/obj/OBJFileLoader.class index 918565d..639af62 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/obj/OBJFileLoader.class and b/target/classes/io/github/hydos/ginger/engine/obj/OBJFileLoader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/obj/Vertex.class b/target/classes/io/github/hydos/ginger/engine/obj/Vertex.class index 5427475..b724afb 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/obj/Vertex.class and b/target/classes/io/github/hydos/ginger/engine/obj/Vertex.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/obj/normals/ModelDataNM.class b/target/classes/io/github/hydos/ginger/engine/obj/normals/ModelDataNM.class index b1a0614..aee1fcf 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/obj/normals/ModelDataNM.class and b/target/classes/io/github/hydos/ginger/engine/obj/normals/ModelDataNM.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/obj/normals/NormalMappedObjLoader.class b/target/classes/io/github/hydos/ginger/engine/obj/normals/NormalMappedObjLoader.class index 027e061..006228b 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/obj/normals/NormalMappedObjLoader.class and b/target/classes/io/github/hydos/ginger/engine/obj/normals/NormalMappedObjLoader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/obj/normals/VertexNM.class b/target/classes/io/github/hydos/ginger/engine/obj/normals/VertexNM.class index b7d8612..81ca120 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/obj/normals/VertexNM.class and b/target/classes/io/github/hydos/ginger/engine/obj/normals/VertexNM.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/particle/InsertionSort.class b/target/classes/io/github/hydos/ginger/engine/particle/InsertionSort.class index 13d138c..3a684ad 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/particle/InsertionSort.class and b/target/classes/io/github/hydos/ginger/engine/particle/InsertionSort.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/particle/Particle.class b/target/classes/io/github/hydos/ginger/engine/particle/Particle.class index efcc3ca..ce46877 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/particle/Particle.class and b/target/classes/io/github/hydos/ginger/engine/particle/Particle.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/particle/ParticleMaster.class b/target/classes/io/github/hydos/ginger/engine/particle/ParticleMaster.class index 12be487..6f69fd2 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/particle/ParticleMaster.class and b/target/classes/io/github/hydos/ginger/engine/particle/ParticleMaster.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/particle/ParticleSystem.class b/target/classes/io/github/hydos/ginger/engine/particle/ParticleSystem.class index 71cf27c..4b8d5af 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/particle/ParticleSystem.class and b/target/classes/io/github/hydos/ginger/engine/particle/ParticleSystem.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/particle/ParticleTexture.class b/target/classes/io/github/hydos/ginger/engine/particle/ParticleTexture.class index 597db99..36e4970 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/particle/ParticleTexture.class and b/target/classes/io/github/hydos/ginger/engine/particle/ParticleTexture.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/MasterRenderer.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/MasterRenderer.class index c28da67..fb2c2fc 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/MasterRenderer.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/MasterRenderer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/models/RawModel.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/models/RawModel.class index 1d4d018..f57d586 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/models/RawModel.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/models/RawModel.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/models/TexturedModel.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/models/TexturedModel.class index a321529..3375f05 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/models/TexturedModel.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/models/TexturedModel.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/EntityRenderer.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/EntityRenderer.class index 610e647..dbbd301 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/EntityRenderer.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/EntityRenderer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/FontRenderer.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/FontRenderer.class index bf02534..624d0c1 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/FontRenderer.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/FontRenderer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/GuiRenderer.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/GuiRenderer.class index ffc1293..ffdd324 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/GuiRenderer.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/GuiRenderer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/NormalMappingRenderer.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/NormalMappingRenderer.class index bc24591..e61df5f 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/NormalMappingRenderer.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/NormalMappingRenderer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/ParticleRenderer.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/ParticleRenderer.class index adf2288..304b3fc 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/ParticleRenderer.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/ParticleRenderer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/SkyboxRenderer.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/SkyboxRenderer.class index 0abde9d..d63b2f4 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/SkyboxRenderer.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/SkyboxRenderer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/TerrainRenderer.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/TerrainRenderer.class index 38aedba..4472ab9 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/TerrainRenderer.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/renderers/TerrainRenderer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/FontShader.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/FontShader.class index e8b1a57..578a549 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/FontShader.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/FontShader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/GuiShader.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/GuiShader.class index 669cf8d..ce543c3 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/GuiShader.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/GuiShader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/NormalMappingShader.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/NormalMappingShader.class index 89d7071..e23dbf9 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/NormalMappingShader.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/NormalMappingShader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/ParticleShader.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/ParticleShader.class index 8ed3c38..94743b5 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/ParticleShader.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/ParticleShader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/ShaderProgram.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/ShaderProgram.class index 3bf1050..71e2e37 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/ShaderProgram.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/ShaderProgram.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/SkyboxShader.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/SkyboxShader.class index fce69b8..9e221d6 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/SkyboxShader.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/SkyboxShader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/StaticShader.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/StaticShader.class index 2831f0b..d86266e 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/StaticShader.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/StaticShader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/TerrainShader.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/TerrainShader.class index 885a265..5f2a7b7 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/TerrainShader.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/shaders/TerrainShader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/texture/Image.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/texture/Image.class index ba5a820..69a5faf 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/texture/Image.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/texture/Image.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/texture/ModelTexture.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/texture/ModelTexture.class index 754f1a6..b417ebc 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/texture/ModelTexture.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/texture/ModelTexture.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/tools/IOUtil.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/tools/IOUtil.class index 4fb6d2d..dcae783 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/tools/IOUtil.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/tools/IOUtil.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/renderEngine/tools/MousePicker.class b/target/classes/io/github/hydos/ginger/engine/renderEngine/tools/MousePicker.class index 5a06df1..45182d3 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/renderEngine/tools/MousePicker.class and b/target/classes/io/github/hydos/ginger/engine/renderEngine/tools/MousePicker.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/shadow/ShadowBox.class b/target/classes/io/github/hydos/ginger/engine/shadow/ShadowBox.class index 8aa78e9..e7b3af5 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/shadow/ShadowBox.class and b/target/classes/io/github/hydos/ginger/engine/shadow/ShadowBox.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/shadow/ShadowFrameBuffer.class b/target/classes/io/github/hydos/ginger/engine/shadow/ShadowFrameBuffer.class index 38ade51..1762709 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/shadow/ShadowFrameBuffer.class and b/target/classes/io/github/hydos/ginger/engine/shadow/ShadowFrameBuffer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/shadow/ShadowMapEntityRenderer.class b/target/classes/io/github/hydos/ginger/engine/shadow/ShadowMapEntityRenderer.class index 67fa1b8..21e8e9f 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/shadow/ShadowMapEntityRenderer.class and b/target/classes/io/github/hydos/ginger/engine/shadow/ShadowMapEntityRenderer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/shadow/ShadowMapMasterRenderer.class b/target/classes/io/github/hydos/ginger/engine/shadow/ShadowMapMasterRenderer.class index e87581a..789724e 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/shadow/ShadowMapMasterRenderer.class and b/target/classes/io/github/hydos/ginger/engine/shadow/ShadowMapMasterRenderer.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/shadow/ShadowShader.class b/target/classes/io/github/hydos/ginger/engine/shadow/ShadowShader.class index ca6888d..dc0b068 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/shadow/ShadowShader.class and b/target/classes/io/github/hydos/ginger/engine/shadow/ShadowShader.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/terrain/Terrain.class b/target/classes/io/github/hydos/ginger/engine/terrain/Terrain.class index 58bfa48..be87644 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/terrain/Terrain.class and b/target/classes/io/github/hydos/ginger/engine/terrain/Terrain.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/terrain/TerrainTexture.class b/target/classes/io/github/hydos/ginger/engine/terrain/TerrainTexture.class index 85829f0..a0cd12a 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/terrain/TerrainTexture.class and b/target/classes/io/github/hydos/ginger/engine/terrain/TerrainTexture.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/terrain/TerrainTexturePack.class b/target/classes/io/github/hydos/ginger/engine/terrain/TerrainTexturePack.class index 42eff06..d1f05d1 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/terrain/TerrainTexturePack.class and b/target/classes/io/github/hydos/ginger/engine/terrain/TerrainTexturePack.class differ diff --git a/target/classes/io/github/hydos/ginger/engine/utils/Loader.class b/target/classes/io/github/hydos/ginger/engine/utils/Loader.class index e9b9adb..f5eb30b 100644 Binary files a/target/classes/io/github/hydos/ginger/engine/utils/Loader.class and b/target/classes/io/github/hydos/ginger/engine/utils/Loader.class differ diff --git a/target/classes/shaders/terrainFragmentShader.glsl b/target/classes/shaders/terrainFragmentShader.glsl index 220958a..14df34f 100644 --- a/target/classes/shaders/terrainFragmentShader.glsl +++ b/target/classes/shaders/terrainFragmentShader.glsl @@ -5,6 +5,7 @@ in vec3 surfaceNormal; in vec3 toLightVector[5]; in vec3 toCameraVector; in float visibility; +in vec4 shadowCoords; out vec4 out_Color; @@ -13,6 +14,8 @@ uniform sampler2D rTexture; uniform sampler2D gTexture; uniform sampler2D bTexture; uniform sampler2D blendMap; +uniform sampler2D shadowMap; + uniform vec3 attenuation[5]; uniform vec3 lightColour[5]; const float shineDamper = 0; @@ -21,6 +24,12 @@ uniform vec3 skyColour; void main(void){ + float objectNearestLight = texture(shadowMap, shadowCoords.xy).r; + float lightFactor = 1.0; + if(shadowCoords.z > objectNearestLight){ + lightFactor = 1.0 - 0.4; + } + vec4 blendMapColour = texture(blendMap, pass_textureCoords); vec3 unitVectorToCamera = normalize(toCameraVector); @@ -55,7 +64,7 @@ void main(void){ totalSpecular = totalSpecular + dampedFactor * reflectivity * lightColour[i] / attFactor; } - totalDiffuse = max(totalDiffuse, 0.2); + totalDiffuse = max(totalDiffuse, 0.2) * lightFactor; out_Color = vec4(totalDiffuse, 1.0) * totalColour + vec4(totalSpecular, 1.0); out_Color = mix(vec4(skyColour, 1.0), out_Color, visibility); diff --git a/target/classes/shaders/terrainVertexShader.glsl b/target/classes/shaders/terrainVertexShader.glsl index 912c99a..cd72a79 100644 --- a/target/classes/shaders/terrainVertexShader.glsl +++ b/target/classes/shaders/terrainVertexShader.glsl @@ -1,5 +1,4 @@ -#version 400 core - +#version 150 in vec3 position; in vec2 textureCoords; in vec3 normal; @@ -9,18 +8,23 @@ out vec3 surfaceNormal; out vec3 toLightVector[5]; out vec3 toCameraVector; out float visibility; +out vec4 shadowCoords; uniform mat4 transformationMatrix; uniform mat4 projectionMatrix; uniform mat4 viewMatrix; uniform vec3 lightPosition[5]; +uniform mat4 toShadowMapSpace; + const float density = 0.01; const float gradient = 1; void main(void){ vec4 worldPosition = transformationMatrix * vec4(position.xyz,1.0); + shadowCoords = toShadowMapSpace * worldPosition; + vec4 positionRelativeToCam = viewMatrix * worldPosition; gl_Position = projectionMatrix * positionRelativeToCam;