diff --git a/client/res/white.png b/client/res/white.png new file mode 100644 index 0000000..c81624b Binary files /dev/null and b/client/res/white.png differ diff --git a/client/src/main/java/core/engine/Engine.java b/client/src/main/java/core/engine/Engine.java index dadb681..4a4411b 100644 --- a/client/src/main/java/core/engine/Engine.java +++ b/client/src/main/java/core/engine/Engine.java @@ -3,6 +3,7 @@ package core.engine; import core.engine.entity.Camera; import core.engine.entity.Entity; import core.engine.entity.Light; +import core.engine.model.HexagonModel; import core.engine.model.RawModel; import core.engine.model.TexturedModel; import core.engine.renderer.MasterRenderer; @@ -129,13 +130,21 @@ public class Engine { //Generate Simple, Flat Terrain Terrain terrain = new Terrain( loader, new ModelTexture(loader.loadTexture("grass"))); + //Create Hexagon + HexagonModel hexagonModel = new HexagonModel(); + RawModel hexagonRawModel = loader.loadToVAO(hexagonModel.getVertices(), hexagonModel.getTextureCoords(), hexagonModel.getNormals(), hexagonModel.getIndices()); + ModelTexture hexagonTexture = new ModelTexture(loader.loadTexture("white")); + TexturedModel hexagontexturedModel = new TexturedModel(hexagonRawModel, hexagonTexture); + Entity hexagonEntity = new Entity(hexagontexturedModel, new Vector3f(0,1,0), 0,0,0,1); + // Run the rendering loop until the user has attempted to close // the window or has pressed the ESCAPE key. MasterRenderer renderer = new MasterRenderer(); input(camera, renderer); while ( !glfwWindowShouldClose(window) ) { + renderer.processEntity(hexagonEntity); //entity.increaseRotation(0,1,0); - renderer.processTerrain(terrain); + //renderer.processTerrain(terrain); //renderer.processEntity(entity); renderer.render(light, camera); glfwSwapBuffers(window); // swap the color buffers diff --git a/client/src/main/java/core/engine/entity/Camera.java b/client/src/main/java/core/engine/entity/Camera.java index 11b72f2..f853f22 100644 --- a/client/src/main/java/core/engine/entity/Camera.java +++ b/client/src/main/java/core/engine/entity/Camera.java @@ -4,7 +4,7 @@ import utils.vectors.Vector3f; public class Camera { - private Vector3f position = new Vector3f(50,100,50); + private Vector3f position = new Vector3f(0,2,0); private float pitch = 90; private float yaw = 180; private float roll; diff --git a/client/src/main/java/core/engine/model/HexagonModel.java b/client/src/main/java/core/engine/model/HexagonModel.java new file mode 100644 index 0000000..be17c65 --- /dev/null +++ b/client/src/main/java/core/engine/model/HexagonModel.java @@ -0,0 +1,88 @@ +package core.engine.model; + +import utils.vectors.Vector3f; +public class HexagonModel { + + private float[] vertices; + private float[] normals; + private float[] textureCoords; + private int[] indices; + + public HexagonModel() { + // Vertices (including the center) + vertices = new float[]{ + 0.0f, 0.0f, 0.0f, // Center + 0.0f, 0.0f, 1.0f, // Top Vertex + 0.866f, 0.0f, 0.5f, // Upper Right Vertex + 0.866f, 0.0f, -0.5f, // Lower Right Vertex + 0.0f, 0.0f, -1.0f, // Bottom Vertex + -0.866f, 0.0f, -0.5f, // Lower Left Vertex + -0.866f, 0.0f, 0.5f // Upper Left Vertex + }; + +// Normals + normals = new float[]{ + 0, 1, 0, // Center + 0, 1, 0, // Top Vertex + 0, 1, 0, // Upper Right Vertex + 0, 1, 0, // Lower Right Vertex + 0, 1, 0, // Bottom Vertex + 0, 1, 0, // Lower Left Vertex + 0, 1, 0 // Upper Left Vertex + }; + +// Texture Coordinates + textureCoords = new float[]{ + 0.5f, 0.5f, // Center + 0.5f, 0.0f, // Top Vertex + 1.0f, 0.25f, // Upper Right Vertex + 1.0f, 0.75f, // Lower Right Vertex + 0.5f, 1.0f, // Bottom Vertex + 0.0f, 0.75f, // Lower Left Vertex + 0.0f, 0.25f // Upper Left Vertex + }; + +// Indices + indices = new int[]{ + 0, 1, 2, // Center to Top Vertex to Upper Right Vertex + 0, 2, 3, // Center to Upper Right Vertex to Lower Right Vertex + 0, 3, 4, // Center to Lower Right Vertex to Bottom Vertex + 0, 4, 5, // Center to Bottom Vertex to Lower Left Vertex + 0, 5, 6, // Center to Lower Left Vertex to Upper Left Vertex + 0, 6, 1 // Center to Upper Left Vertex to Top Vertex + }; + + } + + public float[] getVertices() { + return vertices; + } + + public void setVertices(float[] vertices) { + this.vertices = vertices; + } + + public float[] getNormals() { + return normals; + } + + public void setNormals(float[] normals) { + this.normals = normals; + } + + public float[] getTextureCoords() { + return textureCoords; + } + + public void setTextureCoords(float[] textureCoords) { + this.textureCoords = textureCoords; + } + + public int[] getIndices() { + return indices; + } + + public void setIndices(int[] indices) { + this.indices = indices; + } +}