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 d2f5894d..00000000
Binary files a/src/main/resources/Models/ArenaSpire1.fbx and /dev/null differ
diff --git a/src/main/resources/Models/MonorailSupport.fbx b/src/main/resources/Models/MonorailSupport.fbx
deleted file mode 100644
index 26d349f3..00000000
Binary files a/src/main/resources/Models/MonorailSupport.fbx and /dev/null differ
diff --git a/src/main/resources/Models/RailTrack1Part1.fbx b/src/main/resources/Models/RailTrack1Part1.fbx
deleted file mode 100644
index c9877c2d..00000000
Binary files a/src/main/resources/Models/RailTrack1Part1.fbx and /dev/null differ
diff --git a/src/main/resources/Models/arcdock5deg1Try2.fbx b/src/main/resources/Models/arcdock5deg1Try2.fbx
deleted file mode 100644
index b17f32c1..00000000
Binary files a/src/main/resources/Models/arcdock5deg1Try2.fbx and /dev/null differ
diff --git a/src/main/resources/Models/arcdock5deg1notex.fbx b/src/main/resources/Models/arcdock5deg1notex.fbx
deleted file mode 100644
index 95e858d6..00000000
Binary files a/src/main/resources/Models/arcdock5deg1notex.fbx and /dev/null differ
diff --git a/src/main/resources/Models/plane.fbx b/src/main/resources/Models/plane.fbx
deleted file mode 100644
index 7c2ca253..00000000
Binary files a/src/main/resources/Models/plane.fbx and /dev/null differ
diff --git a/src/main/resources/Models/skyscraper1.fbx b/src/main/resources/Models/skyscraper1.fbx
deleted file mode 100644
index 1f6d3437..00000000
Binary files a/src/main/resources/Models/skyscraper1.fbx and /dev/null differ
diff --git a/src/main/resources/Models/tallbuilding1.fbx b/src/main/resources/Models/tallbuilding1.fbx
deleted file mode 100644
index 162ce0f5..00000000
Binary files a/src/main/resources/Models/tallbuilding1.fbx and /dev/null differ
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 5c85eea9..00000000
Binary files a/src/main/resources/Textures/Ground/Road1.png and /dev/null differ
diff --git a/src/main/resources/Textures/Ground/RoadIntersection1.png b/src/main/resources/Textures/Ground/RoadIntersection1.png
deleted file mode 100644
index 3949c97d..00000000
Binary files a/src/main/resources/Textures/Ground/RoadIntersection1.png and /dev/null differ
diff --git a/src/main/resources/Textures/MonorailSupport.png b/src/main/resources/Textures/MonorailSupport.png
deleted file mode 100644
index 94f7b356..00000000
Binary files a/src/main/resources/Textures/MonorailSupport.png and /dev/null differ
diff --git a/src/main/resources/Textures/RailTrack1Part1.png b/src/main/resources/Textures/RailTrack1Part1.png
deleted file mode 100644
index 23fd05e7..00000000
Binary files a/src/main/resources/Textures/RailTrack1Part1.png and /dev/null differ
diff --git a/src/main/resources/Textures/Spaceplane.png b/src/main/resources/Textures/Spaceplane.png
deleted file mode 100644
index 90b7626c..00000000
Binary files a/src/main/resources/Textures/Spaceplane.png and /dev/null differ
diff --git a/src/main/resources/Textures/SpaceplaneSpecular.png b/src/main/resources/Textures/SpaceplaneSpecular.png
deleted file mode 100644
index 801ec85e..00000000
Binary files a/src/main/resources/Textures/SpaceplaneSpecular.png and /dev/null differ
diff --git a/src/main/resources/Textures/skyscraper1_diffuse.png b/src/main/resources/Textures/skyscraper1_diffuse.png
deleted file mode 100644
index f58d3bc2..00000000
Binary files a/src/main/resources/Textures/skyscraper1_diffuse.png and /dev/null differ