From 40c66f713c77db9282a3938e8df24075090aa45a Mon Sep 17 00:00:00 2001 From: satellite Date: Wed, 17 Mar 2021 00:39:34 -0400 Subject: [PATCH] Major refactor, remove IS stuff --- .gitignore | 1 + nbactions-lwjgl-natives-macos.xml | 46 ++ nbactions.xml | 31 +- pom.xml | 14 +- src/main/java/audio/AudioEngine.java | 14 - .../RendererObjects/AnimChannel.java | 2 +- .../RendererObjects/AnimNode.java | 2 +- .../RendererObjects/Animation.java | 2 +- .../RendererObjects/Bone.java | 4 +- .../RendererObjects/Camera.java | 2 +- .../RendererObjects/Keyframe.java | 2 +- .../Light/DirectionalLight.java | 2 +- .../RendererObjects/Light/LightBuffer.java | 2 +- .../RendererObjects/Light/PointLight.java | 2 +- .../RendererObjects/Light/SpotLight.java | 2 +- .../RendererObjects/Material.java | 4 +- .../RendererObjects/Mesh.java | 18 +- .../RendererObjects/Model.java | 10 +- .../RendererObjects/RenderUtils.java | 24 +- .../RendererObjects/ShaderProgram.java | 4 +- .../RendererObjects/texture/Texture.java | 2 +- .../RendererObjects/texture/TextureMap.java | 2 +- .../java/electrosphere/audio/AudioEngine.java | 9 + .../{ => electrosphere}/entity/Entity.java | 2 +- .../entity/EntityUtil.java | 10 +- src/main/java/electrosphere/main/Globals.java | 93 +++ src/main/java/electrosphere/main/Main.java | 349 +++++++++++ .../java/{ => electrosphere}/net/Client.java | 2 +- .../java/{ => electrosphere}/net/Server.java | 2 +- .../{ => electrosphere}/util/ModelLoader.java | 20 +- .../java/{ => electrosphere}/util/util.java | 14 +- src/main/java/main/Globals.java | 93 --- src/main/java/main/Main.java | 564 ------------------ src/main/resources/Models/ArenaSpire1.fbx | Bin 16060 -> 0 bytes src/main/resources/Models/MonorailSupport.fbx | Bin 18396 -> 0 bytes src/main/resources/Models/RailTrack1Part1.fbx | Bin 27516 -> 0 bytes .../resources/Models/arcdock5deg1Try2.fbx | Bin 15516 -> 0 bytes .../resources/Models/arcdock5deg1notex.fbx | Bin 13116 -> 0 bytes src/main/resources/Models/plane.fbx | Bin 11532 -> 0 bytes src/main/resources/Models/skyscraper1.fbx | Bin 15004 -> 0 bytes src/main/resources/Models/tallbuilding1.fbx | Bin 21628 -> 0 bytes src/main/resources/Shaders/FragmentShader.fs | 2 +- src/main/resources/Shaders/VertexShader.vs | 2 +- .../resources/Shaders/VertexShaderNoBones.vs | 2 +- .../Shaders/skybox/FragmentShaderNoTexture.fs | 2 +- .../Shaders/skybox/VertexShaderNoTexture.vs | 2 +- src/main/resources/Textures/Ground/Road1.png | Bin 1187 -> 0 bytes .../Textures/Ground/RoadIntersection1.png | Bin 1199 -> 0 bytes .../resources/Textures/MonorailSupport.png | Bin 56824 -> 0 bytes .../resources/Textures/RailTrack1Part1.png | Bin 5986 -> 0 bytes src/main/resources/Textures/Spaceplane.png | Bin 30275 -> 0 bytes .../resources/Textures/SpaceplaneSpecular.png | Bin 16706 -> 0 bytes .../Textures/skyscraper1_diffuse.png | Bin 2327 -> 0 bytes 53 files changed, 614 insertions(+), 746 deletions(-) create mode 100644 .gitignore create mode 100644 nbactions-lwjgl-natives-macos.xml delete mode 100644 src/main/java/audio/AudioEngine.java rename src/main/java/{ => electrosphere}/RendererObjects/AnimChannel.java (99%) rename src/main/java/{ => electrosphere}/RendererObjects/AnimNode.java (93%) rename src/main/java/{ => electrosphere}/RendererObjects/Animation.java (99%) rename src/main/java/{ => electrosphere}/RendererObjects/Bone.java (85%) rename src/main/java/{ => electrosphere}/RendererObjects/Camera.java (97%) rename src/main/java/{ => electrosphere}/RendererObjects/Keyframe.java (96%) rename src/main/java/{ => electrosphere}/RendererObjects/Light/DirectionalLight.java (97%) rename src/main/java/{ => electrosphere}/RendererObjects/Light/LightBuffer.java (93%) rename src/main/java/{ => electrosphere}/RendererObjects/Light/PointLight.java (98%) rename src/main/java/{ => electrosphere}/RendererObjects/Light/SpotLight.java (98%) rename src/main/java/{ => electrosphere}/RendererObjects/Material.java (95%) rename src/main/java/{ => electrosphere}/RendererObjects/Mesh.java (97%) rename src/main/java/{ => electrosphere}/RendererObjects/Model.java (97%) rename src/main/java/{ => electrosphere}/RendererObjects/RenderUtils.java (95%) rename src/main/java/{ => electrosphere}/RendererObjects/ShaderProgram.java (99%) rename src/main/java/{ => electrosphere}/RendererObjects/texture/Texture.java (99%) rename src/main/java/{ => electrosphere}/RendererObjects/texture/TextureMap.java (97%) create mode 100644 src/main/java/electrosphere/audio/AudioEngine.java rename src/main/java/{ => electrosphere}/entity/Entity.java (95%) rename src/main/java/{ => electrosphere}/entity/EntityUtil.java (86%) create mode 100644 src/main/java/electrosphere/main/Globals.java create mode 100644 src/main/java/electrosphere/main/Main.java rename src/main/java/{ => electrosphere}/net/Client.java (90%) rename src/main/java/{ => electrosphere}/net/Server.java (90%) rename src/main/java/{ => electrosphere}/util/ModelLoader.java (90%) rename src/main/java/{ => electrosphere}/util/util.java (96%) delete mode 100644 src/main/java/main/Globals.java delete mode 100644 src/main/java/main/Main.java delete mode 100644 src/main/resources/Models/ArenaSpire1.fbx delete mode 100644 src/main/resources/Models/MonorailSupport.fbx delete mode 100644 src/main/resources/Models/RailTrack1Part1.fbx delete mode 100644 src/main/resources/Models/arcdock5deg1Try2.fbx delete mode 100644 src/main/resources/Models/arcdock5deg1notex.fbx delete mode 100644 src/main/resources/Models/plane.fbx delete mode 100644 src/main/resources/Models/skyscraper1.fbx delete mode 100644 src/main/resources/Models/tallbuilding1.fbx delete mode 100644 src/main/resources/Textures/Ground/Road1.png delete mode 100644 src/main/resources/Textures/Ground/RoadIntersection1.png delete mode 100644 src/main/resources/Textures/MonorailSupport.png delete mode 100644 src/main/resources/Textures/RailTrack1Part1.png delete mode 100644 src/main/resources/Textures/Spaceplane.png delete mode 100644 src/main/resources/Textures/SpaceplaneSpecular.png delete mode 100644 src/main/resources/Textures/skyscraper1_diffuse.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..b83d2226 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/nbactions-lwjgl-natives-macos.xml b/nbactions-lwjgl-natives-macos.xml new file mode 100644 index 00000000..c6ba5e42 --- /dev/null +++ b/nbactions-lwjgl-natives-macos.xml @@ -0,0 +1,46 @@ + + + + run + + jar + + + process-classes + org.codehaus.mojo:exec-maven-plugin:3.0.0:exec + + + -XstartOnFirstThread -classpath %classpath electrosphere.main.Main + java + + + + debug + + jar + + + process-classes + org.codehaus.mojo:exec-maven-plugin:3.0.0:exec + + + -agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address} -XstartOnFirstThread -classpath %classpath electrosphere.main.Main + java + true + + + + profile + + jar + + + process-classes + org.codehaus.mojo:exec-maven-plugin:3.0.0:exec + + + -XstartOnFirstThread -classpath %classpath electrosphere.main.Main + java + + + diff --git a/nbactions.xml b/nbactions.xml index 63a0e016..21a9f2fd 100644 --- a/nbactions.xml +++ b/nbactions.xml @@ -10,7 +10,36 @@ org.codehaus.mojo:exec-maven-plugin:1.5.0:exec - -classpath %classpath main.Main + -classpath %classpath electrosphere.main.Main + java + + + + debug + + jar + + + process-classes + org.codehaus.mojo:exec-maven-plugin:3.0.0:exec + + + -agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath electrosphere.main.Main + java + true + + + + profile + + jar + + + process-classes + org.codehaus.mojo:exec-maven-plugin:3.0.0:exec + + + -classpath %classpath electrosphere.main.Main java diff --git a/pom.xml b/pom.xml index 659f1d70..b7f16ca3 100644 --- a/pom.xml +++ b/pom.xml @@ -1,8 +1,8 @@ 4.0.0 - orbitalstudio - InfiniteStratos + electrosphere + Renderer 0.1 jar @@ -79,11 +79,21 @@ joml ${joml.version} + + com.google.code.gson gson 2.8.6 + + + + + electrosphere + TerrainGen + 0.1 + diff --git a/src/main/java/audio/AudioEngine.java b/src/main/java/audio/AudioEngine.java deleted file mode 100644 index 7fff6414..00000000 --- a/src/main/java/audio/AudioEngine.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package audio; - -/** - * - * @author amaterasu - */ -public class AudioEngine { - -} diff --git a/src/main/java/RendererObjects/AnimChannel.java b/src/main/java/electrosphere/RendererObjects/AnimChannel.java similarity index 99% rename from src/main/java/RendererObjects/AnimChannel.java rename to src/main/java/electrosphere/RendererObjects/AnimChannel.java index 74322414..8a645de8 100644 --- a/src/main/java/RendererObjects/AnimChannel.java +++ b/src/main/java/electrosphere/RendererObjects/AnimChannel.java @@ -1,4 +1,4 @@ -package RendererObjects; +package electrosphere.RendererObjects; import java.util.ArrayList; import java.util.Iterator; diff --git a/src/main/java/RendererObjects/AnimNode.java b/src/main/java/electrosphere/RendererObjects/AnimNode.java similarity index 93% rename from src/main/java/RendererObjects/AnimNode.java rename to src/main/java/electrosphere/RendererObjects/AnimNode.java index 583261d6..bfd64ec1 100644 --- a/src/main/java/RendererObjects/AnimNode.java +++ b/src/main/java/electrosphere/RendererObjects/AnimNode.java @@ -1,4 +1,4 @@ -package RendererObjects; +package electrosphere.RendererObjects; import java.util.ArrayList; import org.joml.Matrix4f; diff --git a/src/main/java/RendererObjects/Animation.java b/src/main/java/electrosphere/RendererObjects/Animation.java similarity index 99% rename from src/main/java/RendererObjects/Animation.java rename to src/main/java/electrosphere/RendererObjects/Animation.java index a8f4656e..494f526e 100644 --- a/src/main/java/RendererObjects/Animation.java +++ b/src/main/java/electrosphere/RendererObjects/Animation.java @@ -1,4 +1,4 @@ -package RendererObjects; +package electrosphere.RendererObjects; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/RendererObjects/Bone.java b/src/main/java/electrosphere/RendererObjects/Bone.java similarity index 85% rename from src/main/java/RendererObjects/Bone.java rename to src/main/java/electrosphere/RendererObjects/Bone.java index a752dc97..b69dfdb8 100644 --- a/src/main/java/RendererObjects/Bone.java +++ b/src/main/java/electrosphere/RendererObjects/Bone.java @@ -1,4 +1,4 @@ -package RendererObjects; +package electrosphere.RendererObjects; import java.util.ArrayList; import java.util.HashMap; @@ -28,7 +28,7 @@ public class Bone { deform = new Matrix4f(); final_transform = new Matrix4f(); boneID = raw_data.mName().dataString(); - inverseBindPoseMatrix = util.util.convertAIMatrix(raw_data.mOffsetMatrix()); + inverseBindPoseMatrix = electrosphere.util.util.convertAIMatrix(raw_data.mOffsetMatrix()); this.raw_data = raw_data; } } diff --git a/src/main/java/RendererObjects/Camera.java b/src/main/java/electrosphere/RendererObjects/Camera.java similarity index 97% rename from src/main/java/RendererObjects/Camera.java rename to src/main/java/electrosphere/RendererObjects/Camera.java index a19aaff4..a13bd37a 100644 --- a/src/main/java/RendererObjects/Camera.java +++ b/src/main/java/electrosphere/RendererObjects/Camera.java @@ -1,4 +1,4 @@ -package RendererObjects; +package electrosphere.RendererObjects; import org.joml.Matrix4f; import org.joml.Quaternionf; diff --git a/src/main/java/RendererObjects/Keyframe.java b/src/main/java/electrosphere/RendererObjects/Keyframe.java similarity index 96% rename from src/main/java/RendererObjects/Keyframe.java rename to src/main/java/electrosphere/RendererObjects/Keyframe.java index 0b4ea360..b5bd8964 100644 --- a/src/main/java/RendererObjects/Keyframe.java +++ b/src/main/java/electrosphere/RendererObjects/Keyframe.java @@ -1,4 +1,4 @@ -package RendererObjects; +package electrosphere.RendererObjects; import org.joml.Quaternionf; import org.joml.Vector3f; diff --git a/src/main/java/RendererObjects/Light/DirectionalLight.java b/src/main/java/electrosphere/RendererObjects/Light/DirectionalLight.java similarity index 97% rename from src/main/java/RendererObjects/Light/DirectionalLight.java rename to src/main/java/electrosphere/RendererObjects/Light/DirectionalLight.java index 567282af..7b9b7d3f 100644 --- a/src/main/java/RendererObjects/Light/DirectionalLight.java +++ b/src/main/java/electrosphere/RendererObjects/Light/DirectionalLight.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package RendererObjects.Light; +package electrosphere.RendererObjects.Light; import org.joml.Vector3f; diff --git a/src/main/java/RendererObjects/Light/LightBuffer.java b/src/main/java/electrosphere/RendererObjects/Light/LightBuffer.java similarity index 93% rename from src/main/java/RendererObjects/Light/LightBuffer.java rename to src/main/java/electrosphere/RendererObjects/Light/LightBuffer.java index 984790dd..b283b171 100644 --- a/src/main/java/RendererObjects/Light/LightBuffer.java +++ b/src/main/java/electrosphere/RendererObjects/Light/LightBuffer.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package RendererObjects.Light; +package electrosphere.RendererObjects.Light; import static org.lwjgl.opengl.GL15.*; import static org.lwjgl.opengl.GL31.GL_UNIFORM_BUFFER; diff --git a/src/main/java/RendererObjects/Light/PointLight.java b/src/main/java/electrosphere/RendererObjects/Light/PointLight.java similarity index 98% rename from src/main/java/RendererObjects/Light/PointLight.java rename to src/main/java/electrosphere/RendererObjects/Light/PointLight.java index 425f85ea..f92ab452 100644 --- a/src/main/java/RendererObjects/Light/PointLight.java +++ b/src/main/java/electrosphere/RendererObjects/Light/PointLight.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package RendererObjects.Light; +package electrosphere.RendererObjects.Light; import org.joml.Vector3f; diff --git a/src/main/java/RendererObjects/Light/SpotLight.java b/src/main/java/electrosphere/RendererObjects/Light/SpotLight.java similarity index 98% rename from src/main/java/RendererObjects/Light/SpotLight.java rename to src/main/java/electrosphere/RendererObjects/Light/SpotLight.java index 8ccbd174..cb510e79 100644 --- a/src/main/java/RendererObjects/Light/SpotLight.java +++ b/src/main/java/electrosphere/RendererObjects/Light/SpotLight.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package RendererObjects.Light; +package electrosphere.RendererObjects.Light; import org.joml.Vector3f; diff --git a/src/main/java/RendererObjects/Material.java b/src/main/java/electrosphere/RendererObjects/Material.java similarity index 95% rename from src/main/java/RendererObjects/Material.java rename to src/main/java/electrosphere/RendererObjects/Material.java index 59502d92..8c133bbe 100644 --- a/src/main/java/RendererObjects/Material.java +++ b/src/main/java/electrosphere/RendererObjects/Material.java @@ -3,9 +3,9 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package RendererObjects; +package electrosphere.RendererObjects; -import RendererObjects.texture.Texture; +import electrosphere.RendererObjects.texture.Texture; import org.lwjgl.PointerBuffer; import org.lwjgl.assimp.AIMaterial; import org.lwjgl.assimp.AIMaterialProperty; diff --git a/src/main/java/RendererObjects/Mesh.java b/src/main/java/electrosphere/RendererObjects/Mesh.java similarity index 97% rename from src/main/java/RendererObjects/Mesh.java rename to src/main/java/electrosphere/RendererObjects/Mesh.java index 4f100601..2d160b4b 100644 --- a/src/main/java/RendererObjects/Mesh.java +++ b/src/main/java/electrosphere/RendererObjects/Mesh.java @@ -1,8 +1,8 @@ -package RendererObjects; +package electrosphere.RendererObjects; -import main.Globals; -import main.Main; -import RendererObjects.Light.LightBuffer; +import electrosphere.main.Globals; +import electrosphere.main.Main; +import electrosphere.RendererObjects.Light.LightBuffer; import java.nio.FloatBuffer; import java.nio.IntBuffer; import java.util.ArrayList; @@ -243,7 +243,7 @@ public class Mesh { // System.out.println("Num weights: " + currentBoneData.mNumWeights()); Bone currentBone = new Bone(); currentBone.boneID = currentBoneData.mName().dataString(); - currentBone.inverseBindPoseMatrix = util.util.convertAIMatrix(currentBoneData.mOffsetMatrix()); + currentBone.inverseBindPoseMatrix = electrosphere.util.util.convertAIMatrix(currentBoneData.mOffsetMatrix()); currentBone.numWeights = currentBoneData.mNumWeights(); currentBone.weights = new HashMap(); Iterator weightIterator = currentBoneData.mWeights().iterator(); @@ -409,7 +409,7 @@ public class Mesh { GL20.glUniformMatrix4fv(glGetUniformLocation(shader.shaderProgram, "model"), false, parent.modelMatrix.get(new float[16])); - Vector3f cam_Loc = Globals.camera_visible.pos_Center; + Vector3f cam_Loc = Globals.cameraVisible.pos_Center; temp[0] = cam_Loc.x; temp[1] = cam_Loc.y; temp[2] = cam_Loc.z; @@ -420,7 +420,7 @@ public class Mesh { if(material == null){ - Globals.material_default.apply_material(0,1); + Globals.materialDefault.apply_material(0,1); GL20.glUniform1i(glGetUniformLocation(shader.shaderProgram, "hasTransparency"), 0); } else { material.apply_material(); @@ -463,7 +463,7 @@ public class Mesh { glUniformMatrix4fv(shader.shaderVertexModelLoc, false, parent.modelMatrix.get(new float[16])); glUniformMatrix4fv(shader.shaderVertexViewLoc, false, Globals.viewMatrix.get(new float[16])); glUniformMatrix4fv(shader.shaderVertexProjectionLoc, false, Globals.projectionMatrix.get(new float[16])); - glUniform3fv(shader.shaderVertexViewPosLoc, Globals.camera_visible.pos_Center.get(BufferUtils.createFloatBuffer(3))); + glUniform3fv(shader.shaderVertexViewPosLoc, Globals.cameraVisible.pos_Center.get(BufferUtils.createFloatBuffer(3))); // // @@ -488,7 +488,7 @@ public class Mesh { test_Light_Data[2] = 0.5f; glUniform3fv(glGetUniformLocation(shader.shaderProgram, "dirLight.diffuse"), test_Light_Data); - Vector3f cam_Loc = Globals.camera_visible.pos_Center; + Vector3f cam_Loc = Globals.cameraVisible.pos_Center; test_Light_Data = new float[3]; test_Light_Data[0] = cam_Loc.x; test_Light_Data[1] = cam_Loc.y; diff --git a/src/main/java/RendererObjects/Model.java b/src/main/java/electrosphere/RendererObjects/Model.java similarity index 97% rename from src/main/java/RendererObjects/Model.java rename to src/main/java/electrosphere/RendererObjects/Model.java index 394aa616..31ddd261 100644 --- a/src/main/java/RendererObjects/Model.java +++ b/src/main/java/electrosphere/RendererObjects/Model.java @@ -1,6 +1,6 @@ -package RendererObjects; +package electrosphere.RendererObjects; -import main.Globals; +import electrosphere.main.Globals; import java.io.File; import java.util.ArrayList; import java.util.List; @@ -21,7 +21,7 @@ import static org.lwjgl.opengl.GL13.*; import static org.lwjgl.opengl.GL15.*; import static org.lwjgl.opengl.GL20.*; import static org.lwjgl.opengl.GL30.*; -import RendererObjects.texture.TextureMap; +import electrosphere.RendererObjects.texture.TextureMap; import java.nio.FloatBuffer; import java.util.HashMap; import java.util.Iterator; @@ -119,7 +119,7 @@ public class Model { //parse animation nodes and form hierarchy // AINode rootNode = s.mRootNode(); - rVal.globalInverseTransform = util.util.convertAIMatrix(rootNode.mTransformation()); + rVal.globalInverseTransform = electrosphere.util.util.convertAIMatrix(rootNode.mTransformation()); // System.out.println("Global inverse transform"); // System.out.println(globalInverseTransform); rVal.root_anim_node = rVal.build_anim_node_map(s.mRootNode(),null); @@ -324,7 +324,7 @@ public class Model { // System.out.println("\n\n\n\n"); // } } else { - n.transform = n.transform.mul(util.util.convertAIMatrix(n.raw_data.mTransformation())); + n.transform = n.transform.mul(electrosphere.util.util.convertAIMatrix(n.raw_data.mTransformation())); } Iterator node_iterator = n.children.iterator(); while(node_iterator.hasNext()){ diff --git a/src/main/java/RendererObjects/RenderUtils.java b/src/main/java/electrosphere/RendererObjects/RenderUtils.java similarity index 95% rename from src/main/java/RendererObjects/RenderUtils.java rename to src/main/java/electrosphere/RendererObjects/RenderUtils.java index 22300950..dafd068b 100644 --- a/src/main/java/RendererObjects/RenderUtils.java +++ b/src/main/java/electrosphere/RendererObjects/RenderUtils.java @@ -3,13 +3,13 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package RendererObjects; +package electrosphere.RendererObjects; import java.nio.FloatBuffer; import java.nio.IntBuffer; import java.util.ArrayList; import java.util.Iterator; -import main.Globals; +import electrosphere.main.Globals; import org.joml.Matrix4f; import org.joml.Vector3f; import org.lwjgl.BufferUtils; @@ -44,10 +44,10 @@ import static org.lwjgl.opengl.GL30.glGenVertexArrays; */ public class RenderUtils { public static Model createSkyboxModel(Material optionalMaterial){ - Model skybox_model = new Model(); - skybox_model.meshes = new ArrayList(); + Model skyboxModel = new Model(); + skyboxModel.meshes = new ArrayList(); - skybox_model.modelMatrix = new Matrix4f(); + skyboxModel.modelMatrix = new Matrix4f(); @@ -61,8 +61,8 @@ public class RenderUtils { glUseProgram(shader.shaderProgram); if(material == null){ - Globals.material_default.apply_material(0,1); - Iterator colorIterator = Globals.skybox_colors.iterator(); + Globals.materialDefault.apply_material(0,1); + Iterator colorIterator = Globals.skyboxColors.iterator(); int counter = 0; float[] temp = new float[3]; while(colorIterator.hasNext()){ @@ -85,7 +85,7 @@ public class RenderUtils { glUniformMatrix4fv(shader.shaderVertexModelLoc, false, parent.modelMatrix.get(new float[16])); glUniformMatrix4fv(shader.shaderVertexViewLoc, false, new Matrix4f(Globals.viewMatrix).scale(100).get(new float[16])); glUniformMatrix4fv(shader.shaderVertexProjectionLoc, false, Globals.projectionMatrix.get(new float[16])); - glUniform3fv(shader.shaderVertexViewPosLoc, Globals.camera_visible.pos_Center.get(BufferUtils.createFloatBuffer(3))); + glUniform3fv(shader.shaderVertexViewPosLoc, Globals.cameraVisible.pos_Center.get(BufferUtils.createFloatBuffer(3))); GL11.glDrawElements(GL_TRIANGLES, elementCount, GL_UNSIGNED_INT, 0); @@ -268,12 +268,14 @@ public class RenderUtils { skyboxmesh.nodeID = "skybox"; - skyboxmesh.parent = skybox_model; + skyboxmesh.parent = skyboxModel; - skybox_model.meshes.add(skyboxmesh); + skyboxModel.meshes.add(skyboxmesh); - return skybox_model; + return skyboxModel; } + + } diff --git a/src/main/java/RendererObjects/ShaderProgram.java b/src/main/java/electrosphere/RendererObjects/ShaderProgram.java similarity index 99% rename from src/main/java/RendererObjects/ShaderProgram.java rename to src/main/java/electrosphere/RendererObjects/ShaderProgram.java index fa73c977..84421386 100644 --- a/src/main/java/RendererObjects/ShaderProgram.java +++ b/src/main/java/electrosphere/RendererObjects/ShaderProgram.java @@ -1,6 +1,6 @@ -package RendererObjects; +package electrosphere.RendererObjects; -import main.Main; +import electrosphere.main.Main; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; diff --git a/src/main/java/RendererObjects/texture/Texture.java b/src/main/java/electrosphere/RendererObjects/texture/Texture.java similarity index 99% rename from src/main/java/RendererObjects/texture/Texture.java rename to src/main/java/electrosphere/RendererObjects/texture/Texture.java index 75001661..07a59a45 100644 --- a/src/main/java/RendererObjects/texture/Texture.java +++ b/src/main/java/electrosphere/RendererObjects/texture/Texture.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package RendererObjects.texture; +package electrosphere.RendererObjects.texture; import java.awt.Color; import java.awt.image.BufferedImage; diff --git a/src/main/java/RendererObjects/texture/TextureMap.java b/src/main/java/electrosphere/RendererObjects/texture/TextureMap.java similarity index 97% rename from src/main/java/RendererObjects/texture/TextureMap.java rename to src/main/java/electrosphere/RendererObjects/texture/TextureMap.java index d0c87c9f..41714191 100644 --- a/src/main/java/RendererObjects/texture/TextureMap.java +++ b/src/main/java/electrosphere/RendererObjects/texture/TextureMap.java @@ -1,4 +1,4 @@ -package RendererObjects.texture; +package electrosphere.RendererObjects.texture; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/electrosphere/audio/AudioEngine.java b/src/main/java/electrosphere/audio/AudioEngine.java new file mode 100644 index 00000000..ef47e1c5 --- /dev/null +++ b/src/main/java/electrosphere/audio/AudioEngine.java @@ -0,0 +1,9 @@ +package electrosphere.audio; + +/** + * + * @author amaterasu + */ +public class AudioEngine { + +} diff --git a/src/main/java/entity/Entity.java b/src/main/java/electrosphere/entity/Entity.java similarity index 95% rename from src/main/java/entity/Entity.java rename to src/main/java/electrosphere/entity/Entity.java index 1d0ba15f..de66dbaf 100644 --- a/src/main/java/entity/Entity.java +++ b/src/main/java/electrosphere/entity/Entity.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package entity; +package electrosphere.entity; import java.util.HashMap; diff --git a/src/main/java/entity/EntityUtil.java b/src/main/java/electrosphere/entity/EntityUtil.java similarity index 86% rename from src/main/java/entity/EntityUtil.java rename to src/main/java/electrosphere/entity/EntityUtil.java index 0276c50f..da031833 100644 --- a/src/main/java/entity/EntityUtil.java +++ b/src/main/java/electrosphere/entity/EntityUtil.java @@ -3,10 +3,10 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package entity; +package electrosphere.entity; -import RendererObjects.Model; -import main.Globals; +import electrosphere.RendererObjects.Model; +import electrosphere.main.Globals; import org.joml.Quaternionf; import org.joml.Vector3f; @@ -38,8 +38,8 @@ public class EntityUtil { rVal.getData().put("position", new Vector3f(0,0,0)); rVal.getData().put("rotation", new Quaternionf().rotateAxis((float)0, new Vector3f(1,0,0))); rVal.getData().put("scale", new Vector3f(1,1,1)); - Globals.entity_list.add(rVal); - Globals.drawable_list.add(rVal); + Globals.entityList.add(rVal); + Globals.drawableList.add(rVal); return rVal; } } diff --git a/src/main/java/electrosphere/main/Globals.java b/src/main/java/electrosphere/main/Globals.java new file mode 100644 index 00000000..02d42eb4 --- /dev/null +++ b/src/main/java/electrosphere/main/Globals.java @@ -0,0 +1,93 @@ +package electrosphere.main; + +import electrosphere.RendererObjects.Camera; +import electrosphere.RendererObjects.Light.DirectionalLight; +import electrosphere.RendererObjects.Light.PointLight; +import electrosphere.RendererObjects.Light.SpotLight; +import electrosphere.RendererObjects.Material; +import electrosphere.RendererObjects.Model; +import electrosphere.RendererObjects.texture.Texture; +import electrosphere.RendererObjects.texture.TextureMap; +import com.google.gson.Gson; +import electrosphere.entity.Entity; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.joml.Matrix4f; +import org.joml.Vector3f; +import electrosphere.util.ModelLoader; + +/** + * + * @author amaterasu + */ +public class Globals { + + // + //OpenGL - Other + // + //Array that holds all models that need to be shoved to the gpu + public static Matrix4f viewMatrix = new Matrix4f(); + public static Matrix4f projectionMatrix; + + + + public static Texture textureDiffuseDefault; + public static Texture textureSpecularDefault; + public static Material materialDefault; + + public static DirectionalLight lightDirectionalDefault; + public static ArrayList lightPointListDefault; + public static SpotLight lightSpotDefault; + + public static TextureMap textureMapDefault; + + public static ArrayList entityList; + public static ArrayList drawableList; + + public static Camera cameraVisible; + + // + //Game specific models + // + + //famous fuckin last words, but temporary solution + //global arraylist of values for the skybox colors + public static ArrayList skyboxColors; + + + + public static void initGlobals(){ + //create default textures + textureDiffuseDefault = new Texture("Textures/default_diffuse.png"); + textureSpecularDefault = new Texture("Textures/default_specular.png"); + //create default material + materialDefault = new Material(); + materialDefault.set_diffuse(textureDiffuseDefault); + materialDefault.set_specular(textureSpecularDefault); + //create default lights + lightDirectionalDefault = new DirectionalLight(new Vector3f(0,-1f,0)); + //load in default texture map + Gson gson = new Gson(); + try { + //deserializes the texture map from its default path using gson + //also done in one line + textureMapDefault = gson.fromJson(Files.newBufferedReader(new File(Thread.currentThread().getContextClassLoader().getResource("Textures/default_texture_map.json").getFile()).toPath()), TextureMap.class); //only the best of coding practices :) + } catch (IOException ex) { ex.printStackTrace(); } //TODO: handle better :tm: + //create entity list + entityList = new ArrayList(); + drawableList = new ArrayList(); + //create the camera object that generates view matrix + cameraVisible = new Camera(); + //init game specific variables + initGameSpecifics(); + //temporary hold for skybox colors + skyboxColors = new ArrayList(); + } + + public static void initGameSpecifics(){ + } +} diff --git a/src/main/java/electrosphere/main/Main.java b/src/main/java/electrosphere/main/Main.java new file mode 100644 index 00000000..cab43b99 --- /dev/null +++ b/src/main/java/electrosphere/main/Main.java @@ -0,0 +1,349 @@ +package electrosphere.main; + +import electrosphere.RendererObjects.Camera; +import electrosphere.RendererObjects.Material; +import electrosphere.RendererObjects.Model; +import electrosphere.RendererObjects.RenderUtils; +import electrosphere.RendererObjects.ShaderProgram; +import electrosphere.RendererObjects.texture.Texture; +import electrosphere.entity.Entity; +import electrosphere.entity.EntityUtil; +import electrosphere.terraingen.TerrainGen; +import electrosphere.terraingen.models.TerrainModel; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.Random; +import java.util.concurrent.TimeUnit; +import org.joml.Matrix4f; +import org.joml.Quaternionf; +import org.joml.Vector3f; +import org.lwjgl.glfw.*; +import static org.lwjgl.glfw.GLFW.*; +import org.lwjgl.opengl.*; +import static org.lwjgl.opengl.GL11.*; +import static org.lwjgl.opengl.GL13.*; +import static org.lwjgl.opengl.GL14.*; +import static org.lwjgl.opengl.GL15.*; +import static org.lwjgl.opengl.GL20.*; +import static org.lwjgl.opengl.GL30.*; +import static org.lwjgl.system.MemoryUtil.NULL; +import electrosphere.util.ModelLoader; +import electrosphere.util.util; + + +/** + * + * @author amaterasu + */ +public class Main { + // + //Generic OpenGL Statements + // + //Callback function for opengl errors + private final static GLFWErrorCallback ERROR_CALLBACK = GLFWErrorCallback.createPrint(System.err); + private static long window; + + + + + + + + // + //Visualization Controls + // + //These are used in calculating the time between frames for visualization (camera) control and such + public static float deltaTime = 0.0f; + public static float lastFrame = 0.0f; + //View Controls + public static float view_Range = 2000.0f; + public static Camera camera_Current = new Camera(); + /* + Mouse Controls + */ + static float mouse_lastX = 400; + static float mouse_lastY = 300; + static double xpos = 400; + static double ypos = 300; + static float mouseSensitivity = .1f; + static double mouse_X_Buffer[] = new double[1]; + static double mouse_Y_Buffer[] = new double[1]; + static float cameraSpeed; + static float yaw = 150; + static float pitch = 50; + + + + // + //Player Object Variables + // + public static boolean CAMERA_UNDER_USER_CONTROL = false; + public static boolean CAMERA_UNDER_FREE_CONTROL = false; + public static boolean PLAYER_UNDER_USER_CONTROL = true; + public static boolean CAMERA_IS_ORBIT = true; + public static float camera_Orbit_Length = 1.0f; +// public static Camera cam_Player_Orbit; + //Camera angles using theta-phi system + //Euler angles where theta is applied, then phi + //There is no bank applied to the camera + + public static Model model; + + + + + public static void main(String args[]){ + + // + // + // I N I T I A L I Z A T I O N + // + // + + //run initialization stuff + + //Create opengl + createOpenglContext(); + + //init global variables + Globals.initGlobals(); + + + + + initWorld(); + + initSkybox(); + + + + Entity player = new Entity(); + player.getData().put("position", new Vector3f(0f,6f,0f)); + + + + + + /// + /// C A M E R A C R E A T I O N + /// + Camera camera_player_chase = new Camera(); + Camera cam_Player_Orbit = new Camera(); + + + + //main loop + while (!glfwWindowShouldClose(window)) { + + /* + Frame calculation + */ + float currentFrame = (float) glfwGetTime(); + deltaTime = currentFrame - lastFrame; + lastFrame = currentFrame; + + //poll mouse variables and update camera variables + updateMouseVariables(); + + + float cam_Player_Orbit_Magnitude = 1f; + float cam_Player_Orbit_Offset_Height = 1f; + cam_Player_Orbit.pos_Center = new Vector3f(0, 0, 0); + cam_Player_Orbit.pos_Center.x = 0 + (float) Math.cos(yaw / 180.0f * Math.PI) * cam_Player_Orbit_Magnitude; + cam_Player_Orbit.pos_Center.y = 0 + (float) Math.sin(pitch / 180.0f * Math.PI) * cam_Player_Orbit_Magnitude; + cam_Player_Orbit.pos_Center.z = 0 + (float) Math.sin(yaw / 180.0f * Math.PI) * cam_Player_Orbit_Magnitude; + cam_Player_Orbit.pos_Center.normalize(); +// System.out.println(cam_Player_Orbit.pos_Center); + + + + if(CAMERA_IS_ORBIT){ + camera_Current = cam_Player_Orbit; + } + + + + + /// + /// I N P U T C O N T R O L S + /// + cameraSpeed = 2.5f * deltaTime; + if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) { + break; + } + if (glfwGetKey(window, GLFW_KEY_LEFT_SHIFT) == GLFW_PRESS) { + if(CAMERA_UNDER_FREE_CONTROL) { + //cameraSpeed = cameraSpeed * 100; + } else if(PLAYER_UNDER_USER_CONTROL) { + + } + } + if(glfwGetKey(window, GLFW_KEY_W) == GLFW_PRESS){ + EntityUtil.getEntityPosition(player).add(new Vector3f(-camera_Current.pos_Center.x,0,-camera_Current.pos_Center.z)); + } + if(glfwGetKey(window, GLFW_KEY_S) == GLFW_PRESS){ + EntityUtil.getEntityPosition(player).add(new Vector3f(camera_Current.pos_Center.x,0,camera_Current.pos_Center.z)); + } + if(glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS){ + EntityUtil.getEntityPosition(player).add(new Vector3f(-camera_Current.pos_Center.x,0,-camera_Current.pos_Center.z).rotateY((float)(-90 * Math.PI / 180))); + } + if(glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS){ + EntityUtil.getEntityPosition(player).add(new Vector3f(-camera_Current.pos_Center.x,0,-camera_Current.pos_Center.z).rotateY((float)(90 * Math.PI / 180))); + } + if(glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS){ + EntityUtil.getEntityPosition(player).add(new Vector3f(0,0.6f,0)); + } + if(glfwGetKey(window, GLFW_KEY_LEFT_CONTROL) == GLFW_PRESS){ + EntityUtil.getEntityPosition(player).add(new Vector3f(0,-0.6f,0)); + } + + +// camera_player_chase.pos_Center = new Vector3f(EntityUtil.getEntityPosition(player)).sub(EntityUtil.getEntityRotation(player).transform(new Vector3f(-1,1,0))); + + Globals.cameraVisible.apply_camera(camera_player_chase); + + Globals.viewMatrix = Globals.cameraVisible.get_view_matrix(); + Globals.viewMatrix = new Matrix4f().setLookAt(camera_Current.pos_Center, new Vector3f(0,0,0), new Vector3f(camera_Current.pos_Center).add(new Vector3f(0,1.0f,0))).scale(1.0f, 1.5f, 1.0f); + + //Sets the background color. + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + + // + // Draw all entities + // + Iterator entity_iterator = Globals.drawableList.iterator(); + while(entity_iterator.hasNext()){ + Entity currentEntity = entity_iterator.next(); + Model currentModel = EntityUtil.getEntityModel(currentEntity); + currentModel.modelMatrix = new Matrix4f(); + currentModel.modelMatrix.translate(new Vector3f(EntityUtil.getEntityPosition(currentEntity)).sub(EntityUtil.getEntityPosition(player))); + currentModel.modelMatrix.rotate(EntityUtil.getEntityRotation(currentEntity)); + currentModel.modelMatrix.scale(EntityUtil.getEntityScale(currentEntity)); + currentModel.draw(); + } + + + + //check and call events and swap the buffers + glfwSwapBuffers(window); + glfwPollEvents(); + } + //Terminate the program. + glfwTerminate(); + } + + static void sleep(int i) { + try { + TimeUnit.MILLISECONDS.sleep(i); + } catch (InterruptedException ex) { + System.out.println("Sleep somehow interrupted?!"); + } + } + + + + + + + + + + public static void createOpenglContext(){ + //Sets the variables that control the window sizing + int screenWidth = 1920; + int screenHeight = 1080; + //Initializes opengl + glfwInit(); + //Gives hints to glfw to control how opengl will be used + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + //Creates the window reference object + window = glfwCreateWindow(screenWidth, screenHeight, "LearnOpenGL", NULL, NULL); + //Errors for failure to create window (IE: No GUI mode on linux ?) + if (window == NULL) { + System.out.println("Failed to make window."); + glfwTerminate(); + } + //Makes the window that was just created the current OS-level window context + glfwMakeContextCurrent(window); + //Maximize it + glfwMaximizeWindow(window); + //Creates the OpenGL capabilities for the program. + GL.createCapabilities(); + + //This enables Z-buffering so that farther-back polygons are not drawn over nearer ones + glEnable(GL_DEPTH_TEST); + + // Support for transparency + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + //Hide the cursor and capture it + glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED); + + + + + //Points the texture uniforms in the shader programs at the correct variables + + + + + // + // Projection and View matrix creation + // + Globals.projectionMatrix = new Matrix4f(); + Globals.viewMatrix = new Matrix4f(); + float FOV = (float)(120.0f * Math.PI /180.0f); + Globals.projectionMatrix.setPerspective(FOV, 1.0f, 0.1f, view_Range); + Globals.viewMatrix.translation(new Vector3f(0.0f,0.0f,-3.0f)); + } + + + public static void updateMouseVariables(){ + glfwGetCursorPos(window, mouse_X_Buffer, mouse_Y_Buffer); + xpos = mouse_X_Buffer[0]; + ypos = mouse_Y_Buffer[0]; + float xoffset = (float) (xpos - mouse_lastX) * mouseSensitivity; + float yoffset = (float) (mouse_lastY - ypos) * mouseSensitivity; + mouse_lastX = (float) xpos; + mouse_lastY = (float) ypos; + + yaw = yaw + xoffset; + pitch = pitch - yoffset; + + if (pitch > 100.0f) { + pitch = 100.0f; + } + if (pitch < -99.0f) { + pitch = -99.0f; + } + } + + static void initSkybox(){ + Model skyboxModel = RenderUtils.createSkyboxModel(null); + Entity skyboxEntity = EntityUtil.spawnDrawableEntity(skyboxModel); + EntityUtil.getEntityScale(skyboxEntity).mul(100); + + + Globals.skyboxColors.add(new Vector3f(100,150,200)); + Globals.skyboxColors.add(new Vector3f(100,150,200)); + Globals.skyboxColors.add(new Vector3f(50,100,150)); + Globals.skyboxColors.add(new Vector3f(50,100,150)); + Globals.skyboxColors.add(new Vector3f(100,150,200)); + Globals.skyboxColors.add(new Vector3f(100,150,200)); + Globals.skyboxColors.add(new Vector3f(50,100,150)); + Globals.skyboxColors.add(new Vector3f(50,100,150)); + } + + + + static void initWorld(){ + TerrainGen terrainGen = new TerrainGen(); + TerrainModel terrainModel = terrainGen.generateModel(); + float[][] elevation = terrainModel.getElevation(); + } +} diff --git a/src/main/java/net/Client.java b/src/main/java/electrosphere/net/Client.java similarity index 90% rename from src/main/java/net/Client.java rename to src/main/java/electrosphere/net/Client.java index 76a14a5d..2de9d0fc 100644 --- a/src/main/java/net/Client.java +++ b/src/main/java/electrosphere/net/Client.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package net; +package electrosphere.net; /** * diff --git a/src/main/java/net/Server.java b/src/main/java/electrosphere/net/Server.java similarity index 90% rename from src/main/java/net/Server.java rename to src/main/java/electrosphere/net/Server.java index 6ecf220c..9206f41b 100644 --- a/src/main/java/net/Server.java +++ b/src/main/java/electrosphere/net/Server.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package net; +package electrosphere.net; /** * diff --git a/src/main/java/util/ModelLoader.java b/src/main/java/electrosphere/util/ModelLoader.java similarity index 90% rename from src/main/java/util/ModelLoader.java rename to src/main/java/electrosphere/util/ModelLoader.java index 8eae31f7..631de57e 100644 --- a/src/main/java/util/ModelLoader.java +++ b/src/main/java/electrosphere/util/ModelLoader.java @@ -1,11 +1,11 @@ -package util; +package electrosphere.util; -import main.Globals; -import RendererObjects.Material; -import RendererObjects.Mesh; -import RendererObjects.Model; -import RendererObjects.texture.Texture; -import RendererObjects.texture.TextureMap; +import electrosphere.main.Globals; +import electrosphere.RendererObjects.Material; +import electrosphere.RendererObjects.Mesh; +import electrosphere.RendererObjects.Model; +import electrosphere.RendererObjects.texture.Texture; +import electrosphere.RendererObjects.texture.TextureMap; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; @@ -43,7 +43,7 @@ public class ModelLoader { //this way if we change the underlying structure of the TextureMap it doesn't fuck over this logic static void attempt_add_textures_from_pathname(String path, Model m){ //first we get the default texture map that's global - TextureMap global_map = Globals.texture_map_default; + TextureMap global_map = Globals.textureMapDefault; //then we try to get the path of our model from the map Map> mesh_map = global_map.get_mesh_map(path); //if it exists.. @@ -65,7 +65,7 @@ public class ModelLoader { final_material.set_diffuse(diffuse); System.out.println(diffuse); } else { - final_material.set_diffuse(Globals.texture_diffuse_default); + final_material.set_diffuse(Globals.textureDiffuseDefault); } String specular_path = TextureMap.get_specular_path(texture_path_list); if(specular_path != null){ @@ -73,7 +73,7 @@ public class ModelLoader { final_material.set_specular(specular); System.out.println(specular); } else { - final_material.set_specular(Globals.texture_specular_default); + final_material.set_specular(Globals.textureSpecularDefault); } //once we've either added default textures or actual textures, //set the current mesh's material to this new one diff --git a/src/main/java/util/util.java b/src/main/java/electrosphere/util/util.java similarity index 96% rename from src/main/java/util/util.java rename to src/main/java/electrosphere/util/util.java index 23a19873..e4008353 100644 --- a/src/main/java/util/util.java +++ b/src/main/java/electrosphere/util/util.java @@ -1,11 +1,11 @@ -package util; +package electrosphere.util; -import RendererObjects.Material; -import RendererObjects.Mesh; -import RendererObjects.Model; -import RendererObjects.ShaderProgram; -import RendererObjects.texture.Texture; -import RendererObjects.texture.TextureMap; +import electrosphere.RendererObjects.Material; +import electrosphere.RendererObjects.Mesh; +import electrosphere.RendererObjects.Model; +import electrosphere.RendererObjects.ShaderProgram; +import electrosphere.RendererObjects.texture.Texture; +import electrosphere.RendererObjects.texture.TextureMap; import com.google.gson.Gson; import java.io.File; import java.io.IOException; diff --git a/src/main/java/main/Globals.java b/src/main/java/main/Globals.java deleted file mode 100644 index 1bb106d9..00000000 --- a/src/main/java/main/Globals.java +++ /dev/null @@ -1,93 +0,0 @@ -package main; - -import RendererObjects.Camera; -import RendererObjects.Light.DirectionalLight; -import RendererObjects.Light.PointLight; -import RendererObjects.Light.SpotLight; -import RendererObjects.Material; -import RendererObjects.Model; -import RendererObjects.texture.Texture; -import RendererObjects.texture.TextureMap; -import com.google.gson.Gson; -import entity.Entity; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.util.ArrayList; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.joml.Matrix4f; -import org.joml.Vector3f; -import util.ModelLoader; - -/** - * - * @author amaterasu - */ -public class Globals { - - // - //OpenGL - Other - // - //Array that holds all models that need to be shoved to the gpu - public static Matrix4f viewMatrix = new Matrix4f(); - public static Matrix4f projectionMatrix; - - - - public static Texture texture_diffuse_default; - public static Texture texture_specular_default; - public static Material material_default; - - public static DirectionalLight light_directional_default; - public static ArrayList light_point_list_default; - public static SpotLight light_spot_default; - - public static TextureMap texture_map_default; - - public static ArrayList entity_list; - public static ArrayList drawable_list; - - public static Camera camera_visible; - - // - //Game specific models - // - - //famous fuckin last words, but temporary solution - //global arraylist of values for the skybox colors - public static ArrayList skybox_colors; - - - - public static void init_globals(){ - //create default textures - texture_diffuse_default = new Texture("Textures/default_diffuse.png"); - texture_specular_default = new Texture("Textures/default_specular.png"); - //create default material - material_default = new Material(); - material_default.set_diffuse(texture_diffuse_default); - material_default.set_specular(texture_specular_default); - //create default lights - light_directional_default = new DirectionalLight(new Vector3f(0,-1f,0)); - //load in default texture map - Gson gson = new Gson(); - try { - //deserializes the texture map from its default path using gson - //also done in one line - texture_map_default = gson.fromJson(Files.newBufferedReader(new File(Thread.currentThread().getContextClassLoader().getResource("Textures/default_texture_map.json").getFile()).toPath()), TextureMap.class); //only the best of coding practices :) - } catch (IOException ex) { ex.printStackTrace(); } //TODO: handle better :tm: - //create entity list - entity_list = new ArrayList(); - drawable_list = new ArrayList(); - //create the camera object that generates view matrix - camera_visible = new Camera(); - //init game specific variables - init_game_specifics(); - //temporary hold for skybox colors - skybox_colors = new ArrayList(); - } - - public static void init_game_specifics(){ - } -} diff --git a/src/main/java/main/Main.java b/src/main/java/main/Main.java deleted file mode 100644 index c2b27685..00000000 --- a/src/main/java/main/Main.java +++ /dev/null @@ -1,564 +0,0 @@ -package main; - -import RendererObjects.Camera; -import RendererObjects.Material; -import RendererObjects.Model; -import RendererObjects.RenderUtils; -import RendererObjects.ShaderProgram; -import RendererObjects.texture.Texture; -import entity.Entity; -import entity.EntityUtil; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.Random; -import java.util.concurrent.TimeUnit; -import org.joml.Matrix4f; -import org.joml.Quaternionf; -import org.joml.Vector3f; -import org.lwjgl.glfw.*; -import static org.lwjgl.glfw.GLFW.*; -import org.lwjgl.opengl.*; -import static org.lwjgl.opengl.GL11.*; -import static org.lwjgl.opengl.GL13.*; -import static org.lwjgl.opengl.GL14.*; -import static org.lwjgl.opengl.GL15.*; -import static org.lwjgl.opengl.GL20.*; -import static org.lwjgl.opengl.GL30.*; -import static org.lwjgl.system.MemoryUtil.NULL; -import util.ModelLoader; -import util.util; - - -/** - * - * @author amaterasu - */ -public class Main { - // - //Generic OpenGL Statements - // - //Callback function for opengl errors - private final static GLFWErrorCallback ERROR_CALLBACK = GLFWErrorCallback.createPrint(System.err); - private static long window; - - - - - - - - // - //Visualization Controls - // - //These are used in calculating the time between frames for visualization (camera) control and such - public static float deltaTime = 0.0f; - public static float lastFrame = 0.0f; - //View Controls - public static float view_Range = 2000.0f; - public static Camera camera_Current = new Camera(); - /* - Mouse Controls - */ - static float mouse_lastX = 400; - static float mouse_lastY = 300; - static double xpos = 400; - static double ypos = 300; - static float mouseSensitivity = .1f; - static double mouse_X_Buffer[] = new double[1]; - static double mouse_Y_Buffer[] = new double[1]; - static float cameraSpeed; - static float yaw = 150; - static float pitch = 50; - - - - // - //Player Object Variables - // - public static boolean CAMERA_UNDER_USER_CONTROL = false; - public static boolean CAMERA_UNDER_FREE_CONTROL = false; - public static boolean PLAYER_UNDER_USER_CONTROL = true; - public static boolean CAMERA_IS_ORBIT = true; - public static float camera_Orbit_Length = 1.0f; -// public static Camera cam_Player_Orbit; - //Camera angles using theta-phi system - //Euler angles where theta is applied, then phi - //There is no bank applied to the camera - - public static Model model; - - - - - public static void main(String args[]){ - - // - // - // I N I T I A L I Z A T I O N - // - // - - //run initialization stuff - - //Create opengl - create_opengl_context(); - - //init global variables - Globals.init_globals(); - - - - - initWorld(); - - init_skybox(); - - - - Entity player = new Entity(); - player.getData().put("position", new Vector3f(0f,6f,0f)); - - - - - - /// - /// C A M E R A C R E A T I O N - /// - Camera camera_player_chase = new Camera(); - Camera cam_Player_Orbit = new Camera(); - - - - //main loop - while (!glfwWindowShouldClose(window)) { - - /* - Frame calculation - */ - float currentFrame = (float) glfwGetTime(); - deltaTime = currentFrame - lastFrame; - lastFrame = currentFrame; - - //poll mouse variables and update camera variables - update_mouse_variables(); - - - float cam_Player_Orbit_Magnitude = 1f; - float cam_Player_Orbit_Offset_Height = 1f; - cam_Player_Orbit.pos_Center = new Vector3f(0, 0, 0); - cam_Player_Orbit.pos_Center.x = 0 + (float) Math.cos(yaw / 180.0f * Math.PI) * cam_Player_Orbit_Magnitude; - cam_Player_Orbit.pos_Center.y = 0 + (float) Math.sin(pitch / 180.0f * Math.PI) * cam_Player_Orbit_Magnitude; - cam_Player_Orbit.pos_Center.z = 0 + (float) Math.sin(yaw / 180.0f * Math.PI) * cam_Player_Orbit_Magnitude; - cam_Player_Orbit.pos_Center.normalize(); -// System.out.println(cam_Player_Orbit.pos_Center); - - - - if(CAMERA_IS_ORBIT){ - camera_Current = cam_Player_Orbit; - } - - - - - /// - /// I N P U T C O N T R O L S - /// - cameraSpeed = 2.5f * deltaTime; - if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) { - break; - } - if (glfwGetKey(window, GLFW_KEY_LEFT_SHIFT) == GLFW_PRESS) { - if(CAMERA_UNDER_FREE_CONTROL) { - //cameraSpeed = cameraSpeed * 100; - } else if(PLAYER_UNDER_USER_CONTROL) { - - } - } - if(glfwGetKey(window, GLFW_KEY_W) == GLFW_PRESS){ - EntityUtil.getEntityPosition(player).add(new Vector3f(-camera_Current.pos_Center.x,0,-camera_Current.pos_Center.z)); - } - if(glfwGetKey(window, GLFW_KEY_S) == GLFW_PRESS){ - EntityUtil.getEntityPosition(player).add(new Vector3f(camera_Current.pos_Center.x,0,camera_Current.pos_Center.z)); - } - if(glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS){ - EntityUtil.getEntityPosition(player).add(new Vector3f(-camera_Current.pos_Center.x,0,-camera_Current.pos_Center.z).rotateY((float)(-90 * Math.PI / 180))); - } - if(glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS){ - EntityUtil.getEntityPosition(player).add(new Vector3f(-camera_Current.pos_Center.x,0,-camera_Current.pos_Center.z).rotateY((float)(90 * Math.PI / 180))); - } - if(glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS){ - EntityUtil.getEntityPosition(player).add(new Vector3f(0,0.6f,0)); - } - if(glfwGetKey(window, GLFW_KEY_LEFT_CONTROL) == GLFW_PRESS){ - EntityUtil.getEntityPosition(player).add(new Vector3f(0,-0.6f,0)); - } - - -// camera_player_chase.pos_Center = new Vector3f(EntityUtil.getEntityPosition(player)).sub(EntityUtil.getEntityRotation(player).transform(new Vector3f(-1,1,0))); - - Globals.camera_visible.apply_camera(camera_player_chase); - - Globals.viewMatrix = Globals.camera_visible.get_view_matrix(); - Globals.viewMatrix = new Matrix4f().setLookAt(camera_Current.pos_Center, new Vector3f(0,0,0), new Vector3f(camera_Current.pos_Center).add(new Vector3f(0,1.0f,0))).scale(1.0f, 1.5f, 1.0f); - - //Sets the background color. - glClearColor(0.0f, 0.0f, 0.0f, 1.0f); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - - // - // Draw all entities - // - Iterator entity_iterator = Globals.drawable_list.iterator(); - while(entity_iterator.hasNext()){ - Entity currentEntity = entity_iterator.next(); - Model currentModel = EntityUtil.getEntityModel(currentEntity); - currentModel.modelMatrix = new Matrix4f(); - currentModel.modelMatrix.translate(new Vector3f(EntityUtil.getEntityPosition(currentEntity)).sub(EntityUtil.getEntityPosition(player))); - currentModel.modelMatrix.rotate(EntityUtil.getEntityRotation(currentEntity)); - currentModel.modelMatrix.scale(EntityUtil.getEntityScale(currentEntity)); - currentModel.draw(); - } - - - - //check and call events and swap the buffers - glfwSwapBuffers(window); - glfwPollEvents(); - } - //Terminate the program. - glfwTerminate(); - } - - static void sleep(int i) { - try { - TimeUnit.MILLISECONDS.sleep(i); - } catch (InterruptedException ex) { - System.out.println("Sleep somehow interrupted?!"); - } - } - - - - - - - - - - public static void create_opengl_context(){ - //Sets the variables that control the window sizing - int screenWidth = 1920; - int screenHeight = 1080; - //Initializes opengl - glfwInit(); - //Gives hints to glfw to control how opengl will be used - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); - glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); - //Creates the window reference object - window = glfwCreateWindow(screenWidth, screenHeight, "LearnOpenGL", NULL, NULL); - //Errors for failure to create window (IE: No GUI mode on linux ?) - if (window == NULL) { - System.out.println("Failed to make window."); - glfwTerminate(); - } - //Makes the window that was just created the current OS-level window context - glfwMakeContextCurrent(window); - //Maximize it - glfwMaximizeWindow(window); - //Creates the OpenGL capabilities for the program. - GL.createCapabilities(); - - //This enables Z-buffering so that farther-back polygons are not drawn over nearer ones - glEnable(GL_DEPTH_TEST); - - // Support for transparency - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - //Hide the cursor and capture it - glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED); - - - - - - //Points the texture uniforms in the shader programs at the correct variables - - - - - // - // Projection and View matrix creation - // - Globals.projectionMatrix = new Matrix4f(); - Globals.viewMatrix = new Matrix4f(); - float FOV = (float)(120.0f * Math.PI /180.0f); - Globals.projectionMatrix.setPerspective(FOV, 1.0f, 0.1f, view_Range); - Globals.viewMatrix.translation(new Vector3f(0.0f,0.0f,-3.0f)); - } - - - public static void update_mouse_variables(){ - glfwGetCursorPos(window, mouse_X_Buffer, mouse_Y_Buffer); - xpos = mouse_X_Buffer[0]; - ypos = mouse_Y_Buffer[0]; - float xoffset = (float) (xpos - mouse_lastX) * mouseSensitivity; - float yoffset = (float) (mouse_lastY - ypos) * mouseSensitivity; - mouse_lastX = (float) xpos; - mouse_lastY = (float) ypos; - - yaw = yaw + xoffset; - pitch = pitch - yoffset; - - if (pitch > 100.0f) { - pitch = 100.0f; - } - if (pitch < -99.0f) { - pitch = -99.0f; - } - } - - static void init_skybox(){ - Model skyboxModel = RenderUtils.createSkyboxModel(null); - Entity skyboxEntity = EntityUtil.spawnDrawableEntity(skyboxModel); - EntityUtil.getEntityScale(skyboxEntity).mul(100); - - - Globals.skybox_colors.add(new Vector3f(200,200,160)); - Globals.skybox_colors.add(new Vector3f(200,200,160)); - Globals.skybox_colors.add(new Vector3f(200,100,50)); - Globals.skybox_colors.add(new Vector3f(200,100,50)); - Globals.skybox_colors.add(new Vector3f(50,100,150)); - Globals.skybox_colors.add(new Vector3f(50,100,150)); - Globals.skybox_colors.add(new Vector3f(10,10,10)); - Globals.skybox_colors.add(new Vector3f(10,10,10)); - } - - - //I swear it's a temporary function - /* - for(int angle = 0; angle < 45; angle=angle+2){ - for(int radius = 115; radius < 130; radius=radius+2){ - */ -// static float[] getTreePos(){ -// return new float[]{ -// 115.0f,7.0f,0.0f, -// 110.0f,7.0f,10.0f, -// -// 82.0f,7.0f,82.0f, -// }; -// } - - static void initWorld(){ - Model building_model = ModelLoader.load_Model_From_File("Models/arcdock5deg1Try2.fbx"); - Texture whiteTexture = new Texture("Textures/w1.png"); - Material whiteMaterial = new Material(); - whiteMaterial.set_diffuse(whiteTexture); - whiteMaterial.set_specular(whiteTexture); - building_model.meshes.get(0).set_material(whiteMaterial); - for(int i = 0; i < 36; i++){ - Entity arcCurrent = EntityUtil.spawnDrawableEntity(building_model); - float angleRad = i * 10; - float angleDeg = (float)(angleRad * Math.PI / 180); - float posX = (float)(Math.cos(angleDeg) * 100); - float posY = (float)(Math.sin(angleDeg) * 100); - EntityUtil.getEntityPosition(arcCurrent).set(posX, 0.01f, posY); - EntityUtil.getEntityScale(arcCurrent).set(1f); - EntityUtil.getEntityRotation(arcCurrent) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)((180-angleRad) * Math.PI / 180)) - ; - arcCurrent = EntityUtil.spawnDrawableEntity(building_model); - angleRad = i * 10 + 5; - angleDeg = (float)(angleRad * Math.PI / 180); - posX = (float)(Math.cos(angleDeg) * 100); - posY = (float)(Math.sin(angleDeg) * 100); - EntityUtil.getEntityPosition(arcCurrent).set(posX, 5.01f, posY); - EntityUtil.getEntityScale(arcCurrent).set(1f); - EntityUtil.getEntityRotation(arcCurrent) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)((180-angleRad) * Math.PI / 180)) - ; - } - - - Model dirtPlane = ModelLoader.load_Model_From_File("Models/groundplanemassiveuv.fbx"); - Texture dirtTexture = new Texture("Textures/Ground/Dirt1.png"); - Material dirtMaterial = new Material(); - dirtMaterial.set_diffuse(dirtTexture); - dirtMaterial.set_specular(dirtTexture); - dirtPlane.meshes.get(0).set_material(dirtMaterial); - for(int x = -120; x < 120; x=x+20){ - for(int y = -120; y < 120; y=y+20){ - Entity dirtPlaneEntity = EntityUtil.spawnDrawableEntity(dirtPlane); - EntityUtil.getEntityPosition(dirtPlaneEntity).set(x, -1.0f, y); - EntityUtil.getEntityScale(dirtPlaneEntity).set(10f); - EntityUtil.getEntityRotation(dirtPlaneEntity) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - ; - } - } - - Model tree2 = ModelLoader.load_Model_From_File("Models/tree2.fbx"); - Texture leavesTexture = new Texture("Textures/leaves.png"); - Material leavesMaterial = new Material(); - leavesMaterial.set_diffuse(leavesTexture); - leavesMaterial.set_specular(leavesTexture); - Texture trunkTexture = new Texture("Textures/trunk.png"); - Material trunkMaterial = new Material(); - trunkMaterial.set_diffuse(trunkTexture); - trunkMaterial.set_specular(trunkTexture); - tree2.meshes.get(0).set_material(trunkMaterial); - tree2.meshes.get(1).set_material(leavesMaterial); - tree2.meshes.get(2).set_material(leavesMaterial); - Random treeRand = new Random(); - - ArrayList treeList = new ArrayList(); - for(int angle = -105; angle < 45; angle=angle+2){ - for(int radius = 115; radius < 140; radius=radius+2){ - Entity treeEntity = EntityUtil.spawnDrawableEntity(tree2); - EntityUtil.getEntityPosition(treeEntity).set( - (float)Math.cos(angle * Math.PI / 180) * radius + (treeRand.nextFloat() - 0.5f) * 2, - radius - 113 + treeRand.nextFloat(), - (float)Math.sin(angle * Math.PI / 180) * radius + (treeRand.nextFloat() - 0.5f) * 2 - ); - EntityUtil.getEntityScale(treeEntity).set(1f); - EntityUtil.getEntityRotation(treeEntity) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)((treeRand.nextFloat() * 359) * Math.PI / 180)) - ; - treeList.add(treeEntity); - } - } -// float[] treepos = getTreePos(); -// for(int i = 0; i < treepos.length/3; i++){ -// float posX = treepos[i*3]; -// float posY = treepos[i*3+1]; -// float posZ = treepos[i*3+2]; -// Entity treeEntity = EntityUtil.spawnDrawableEntity(tree2); -// EntityUtil.getEntityPosition(treeEntity).set(posX,posY,posZ); -// EntityUtil.getEntityScale(treeEntity).set(1f); -// EntityUtil.getEntityRotation(treeEntity) -// .identity() -// .rotateLocalX((float)(-Math.PI / 2)) -// .rotateLocalY((float)((treeRand.nextFloat() * 359) * Math.PI / 180)) -// ; -// treeList.add(treeEntity); -// } - - Model arenaSpire = ModelLoader.load_Model_From_File("Models/ArenaSpire1.fbx"); - arenaSpire.meshes.get(0).set_material(whiteMaterial); - Entity spireEntity = EntityUtil.spawnDrawableEntity(arenaSpire); - EntityUtil.getEntityRotation(spireEntity) - .identity() - .rotateLocalZ((float)(-Math.PI / 2)) - .rotateLocalY((float)(-(220) * Math.PI / 180)) - ; - EntityUtil.getEntityPosition(spireEntity).set(-105, 0, 0); - - Model railTrackModel = ModelLoader.load_Model_From_File("Models/RailTrack1Part1.fbx"); - Texture railTrackTexture = new Texture("Textures/RailTrack1Part1.png"); - Material railTrackMaterial = new Material(); - railTrackMaterial.set_diffuse(railTrackTexture); - railTrackMaterial.set_specular(railTrackTexture); - railTrackModel.meshes.get(0).set_material(railTrackMaterial); - Entity railTrackEntity = EntityUtil.spawnDrawableEntity(railTrackModel); - EntityUtil.getEntityRotation(railTrackEntity) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)(-(0) * Math.PI / 180)) - ; - EntityUtil.getEntityPosition(railTrackEntity).set(-15, 10, -20); - - Model railSupportModel = ModelLoader.load_Model_From_File("Models/MonorailSupport.fbx"); - Texture railSupportTexture = new Texture("Textures/MonorailSupport.png"); - Material railSupportMaterial = new Material(); - railSupportMaterial.set_diffuse(railSupportTexture); - railSupportMaterial.set_specular(railSupportTexture); - railSupportModel.meshes.get(0).set_material(railSupportMaterial); - - //support 1 - Entity railSupport1 = EntityUtil.spawnDrawableEntity(railSupportModel); - EntityUtil.getEntityRotation(railSupport1) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)(-(180) * Math.PI / 180)) - ; - EntityUtil.getEntityPosition(railSupport1).set(0, -71.5f, -125); - - //support 2 - Entity railSupport2 = EntityUtil.spawnDrawableEntity(railSupportModel); - EntityUtil.getEntityRotation(railSupport2) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)(-(200) * Math.PI / 180)) - ; - EntityUtil.getEntityPosition(railSupport2).set(30, -69.5f, -115); - - //support 3 - Entity railSupport3 = EntityUtil.spawnDrawableEntity(railSupportModel); - EntityUtil.getEntityRotation(railSupport3) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)(-(217) * Math.PI / 180)) - ; - EntityUtil.getEntityPosition(railSupport3).set(62, -65.5f, -95); - - //support 4 - Entity railSupport4 = EntityUtil.spawnDrawableEntity(railSupportModel); - EntityUtil.getEntityRotation(railSupport4) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)(-(222) * Math.PI / 180)) - ; - EntityUtil.getEntityPosition(railSupport4).set(90, -61f, -70); - - //support 5 - Entity railSupport5 = EntityUtil.spawnDrawableEntity(railSupportModel); - EntityUtil.getEntityRotation(railSupport5) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)(-(235) * Math.PI / 180)) - ; - EntityUtil.getEntityPosition(railSupport5).set(121, -57.5f, -25); - - //support 6 - Entity railSupport6 = EntityUtil.spawnDrawableEntity(railSupportModel); - EntityUtil.getEntityRotation(railSupport6) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)(-(265) * Math.PI / 180)) - ; - EntityUtil.getEntityPosition(railSupport6).set(135, -58.5f, 30); - - - Model tallBuildingModel = ModelLoader.load_Model_From_File("Models/tallbuilding1.fbx"); - tallBuildingModel.meshes.get(0).set_material(whiteMaterial); - Entity tallBuildingEntity1 = EntityUtil.spawnDrawableEntity(tallBuildingModel); - EntityUtil.getEntityRotation(tallBuildingEntity1) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)(-(0) * Math.PI / 180)) - ; - EntityUtil.getEntityPosition(tallBuildingEntity1).set(200, 0.0f, -80); - EntityUtil.getEntityScale(tallBuildingEntity1).set(0.6f, 0.6f, 1f); - - Entity tallBuildingEntity2 = EntityUtil.spawnDrawableEntity(tallBuildingModel); - EntityUtil.getEntityRotation(tallBuildingEntity2) - .identity() - .rotateLocalX((float)(-Math.PI / 2)) - .rotateLocalY((float)(-(35) * Math.PI / 180)) - ; - EntityUtil.getEntityPosition(tallBuildingEntity2).set(190, 10.0f, 10.0f); - EntityUtil.getEntityScale(tallBuildingEntity2).set(0.5f, 0.5f, 1f); - } - -} diff --git a/src/main/resources/Models/ArenaSpire1.fbx b/src/main/resources/Models/ArenaSpire1.fbx deleted file mode 100644 index d2f5894db044adf8a874e89a291842f005710ed8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16060 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 N+gkVM;NS diff --git a/src/main/resources/Models/arcdock5deg1Try2.fbx b/src/main/resources/Models/arcdock5deg1Try2.fbx deleted file mode 100644 index b17f32c147c71b8de0ad51eae30e8ba72726198a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15516 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 G=Kla`7oTqc diff --git a/src/main/resources/Models/plane.fbx b/src/main/resources/Models/plane.fbx deleted file mode 100644 index 7c2ca253735764e6da28d3cc598b48e81f64ca81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11532 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 diff --git a/src/main/resources/Models/tallbuilding1.fbx b/src/main/resources/Models/tallbuilding1.fbx deleted file mode 100644 index 162ce0f5b44fb699f9e4fb9dba471c5699e68084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21628 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 z 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 T_+DmbX;5>MNUbMrx$yr1M7rWO diff --git a/src/main/resources/Shaders/FragmentShader.fs b/src/main/resources/Shaders/FragmentShader.fs index 06a3b4ea..96895063 100644 --- a/src/main/resources/Shaders/FragmentShader.fs +++ b/src/main/resources/Shaders/FragmentShader.fs @@ -1,6 +1,6 @@ -#version 430 core +#version 330 core out vec4 FragColor; struct Material { diff --git a/src/main/resources/Shaders/VertexShader.vs b/src/main/resources/Shaders/VertexShader.vs index be244168..98298a35 100644 --- a/src/main/resources/Shaders/VertexShader.vs +++ b/src/main/resources/Shaders/VertexShader.vs @@ -1,5 +1,5 @@ //Vertex Shader -#version 430 core +#version 330 core diff --git a/src/main/resources/Shaders/VertexShaderNoBones.vs b/src/main/resources/Shaders/VertexShaderNoBones.vs index a7060dd9..98863f18 100644 --- a/src/main/resources/Shaders/VertexShaderNoBones.vs +++ b/src/main/resources/Shaders/VertexShaderNoBones.vs @@ -1,5 +1,5 @@ //Vertex Shader -#version 430 core +#version 330 core diff --git a/src/main/resources/Shaders/skybox/FragmentShaderNoTexture.fs b/src/main/resources/Shaders/skybox/FragmentShaderNoTexture.fs index 37c682b3..738ffe92 100644 --- a/src/main/resources/Shaders/skybox/FragmentShaderNoTexture.fs +++ b/src/main/resources/Shaders/skybox/FragmentShaderNoTexture.fs @@ -1,6 +1,6 @@ -#version 430 core +#version 330 core out vec4 FragColor; diff --git a/src/main/resources/Shaders/skybox/VertexShaderNoTexture.vs b/src/main/resources/Shaders/skybox/VertexShaderNoTexture.vs index a01f7301..021ad22b 100644 --- a/src/main/resources/Shaders/skybox/VertexShaderNoTexture.vs +++ b/src/main/resources/Shaders/skybox/VertexShaderNoTexture.vs @@ -1,5 +1,5 @@ //Vertex Shader -#version 430 core +#version 330 core diff --git a/src/main/resources/Textures/Ground/Road1.png b/src/main/resources/Textures/Ground/Road1.png deleted file mode 100644 index 5c85eea9622dff397752f4482855de0b82a8e1f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1187 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 diff --git a/src/main/resources/Textures/Spaceplane.png b/src/main/resources/Textures/Spaceplane.png deleted file mode 100644 index 90b7626c0cae4667e46b290f697bfd1a04199509..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30275 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

;xjxrD2*^Ebhm5`?j!a6;^jHT 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 diff --git a/src/main/resources/Textures/skyscraper1_diffuse.png b/src/main/resources/Textures/skyscraper1_diffuse.png deleted file mode 100644 index f58d3bc2cf1f2b06b9bb5d3fe86b3727b6093c11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2327 zcmcJQeOyfW9>>4un1?e{7^K2j6RRy{dfF%(Ga5ar^gyMeiIi;86Adb-2wRM&Ty5NR z$*{B;Yb$!1$x}#mR}s=QO{mmNwUIQ_w5Po8-q*hF>;8A|ALn(>`JT`3obSWu{X0K+ zd$~-e&!z*wWH;AUz5obui2z0+P9gDEB8ZyS3IT~G=^^5sf!aiY)?f0f!E-P=HZlke`l_&dk@&om~3g6>v6$uKfQ*2kw z!^D>zOCRh$WB<2DXMcL*V712lO>kgL*d_k9dw%z(t!p$rzj|+>wQN)2=|%1xdA%9! zg;l>iNzA=_c=NQ?3?r^H*(sa9!2Oz6X2#dbnq&>HDD>+y9!2x@;?47QC!g%0s`t0G z2Hk!{voK{&dKJp-+)Toh=*O!a$@9MR8YN*XCI#$i3@t)z&KCrn4SIuhwNltcXLBp4 zAu8Cv=3uyckzT>0xA9W-tQ0>=S2?-td4+7Y+Aalro7O2Pc6KD^!R$)apsN14OuM|X ztB-2m6o35SUdJWGSZJ}X>k|Oj3&sybaEY^v2vQT>Je{a-DEfNVb82Wg?}*T>M5n++ z-j40tx5Oj@FMdl{;+Ak$QdHtrmW!LGcR<<{17aECwrb^C!7F9!a^D3mhIo74&&$(o zP?trW36%NPdcCxVOT_OeRn-rjJ~M=Fw3!WLy}FsVq;^(KY>pXe+s=mM2EVr?9~l}Y z>sC!&m9Tra{X$kjM6NMnQqWV@-?qQ1uaZF@c^~ZU-%=7L845G30J>Tc4E~^JE!-S* zy}A2+yW;-lrJqW(QhQ&~rF38bcie&XcZ~Q8AMDeney-+JnX7NKIrO1ichgI4lCjUf z@BdU5FWiVSVO9AJwJ;ozvv@aj1^bn9tZ>X@DXf3-9LOI$dOO)*S?jMOW<7i z?HAwHmDkVYLV8AZ)eM9|3A=LmtpuJd(p3-%Pq`Z$Cr}Q0602Epf+Ke#Ztfn*F@=T0 zJLQf(Vq3e^v17ou%^0sUIg=-K&p}y`_9M#IA zqDx!EYqSwJX%g~_zE5Ei?XztkixxMS2CR8T21kqPsUh;qLHSEP2j5E;LdMaKoaa3| z%l6z747{itRbH4^{uL#1cI2xx$;YLO=Aw@BVGKydz!=u71XkC5j^`Or{69#eL{Yi!qa7QX zFDZA;89FO@8SOjHj5f^hX{uzZ`r~!~YfYajXM(r$Z&v*7k!SG+N1}^^ZqqNuAQyVd z*cyGQXTEtbh{^fcam>a&m0kf;4J^JYzb)DDVRLhJDaZd$RM-S6?W4fJr4{r3yJ4gW zo{a(#K_q5?N97ixto<*U=n7~4Pknp>F<{=99vFmqAY!s0k`zs2ZH03>IB4_`BOFJ> z3-N~aPmZAtDenAnCWZL8Gru_k3`^klLm-*kKNH8KVKPR+1fHUGQl<#~!l>N*OYhGx z{BV0FCHF6GUtf=a8L;e0g$Ms)_}F-3gii)d!vxesW#fsBzXy-@K#APmjnwdrsQ;cO z7xHmlq~mJY5;}xg^zsZohiI>6gB;}y{QbMf1+I{zbjs^dG283MJ`{T)otugss)@;z zY`?ql^!0o?KFO>A@6H`qPD?C}C>D9zQsTn42&TX$QY~JjkI|)u7^AN-9Q-0)vV}SVi4L<9?4R z*6hlMwRL)OhZba-m@NGfP#j~yfulGBgR}*FTRB5KTLe3!X&2^Br*nxN^s%$t=T}35 zRbd)PPgn)|>XATrr26^=%Th}W&RNnEf)``sLPeqes}j$oq@?ba(j8HyEi@3pv;dv* zR(5SmEe)O|&l%`=Y}EO!Bk&)j4V!c5y8jC<&qQPnb$XjU-ML{~%aYz^jxO)LTBh?4 gmLE=Mqb6@Tb6)Q~jVlfe5`Ro^bMjhM