From 9b423bd52aedab70531486423697881a9862ba65 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Mon, 20 Apr 2020 00:07:51 +0200 Subject: [PATCH] [DEV] tutorial 13 'optimization' implementation --- res/cube.blend | Bin 0 -> 565816 bytes res/cube.mtl | 12 +++++++ res/cube.obj | 46 +++++++++++++++++++++++++++ src/engineTester/MainGameLoop.java | 44 +++++++++++++++---------- src/entities/Camera.java | 12 +++---- src/renderEngine/DisplayManager.java | 26 +++++++++++++++ src/renderEngine/MasterRenderer.java | 45 ++++++++++++++++++++++++++ src/renderEngine/Renderer.java | 44 +++++++++++++++++++------ src/shaders/fragmentShader.txt | 3 +- 9 files changed, 200 insertions(+), 32 deletions(-) create mode 100644 res/cube.blend create mode 100644 res/cube.mtl create mode 100644 res/cube.obj create mode 100644 src/renderEngine/MasterRenderer.java diff --git a/res/cube.blend b/res/cube.blend new file mode 100644 index 0000000000000000000000000000000000000000..805b355fa7bea9f5008d5db729bb069ebe8b2b8d GIT binary patch literal 565816 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 allCubes = new ArrayList(); + Random random = new Random(); + + for (int iii=0; iii<2000; iii++) { + float x = random.nextFloat() * 300 - 150; + float y = random.nextFloat() * 300 - 150; + float z = random.nextFloat() * -300; + allCubes.add(new Entity(cubeModel, new Vector3f(x,y,z), + new Vector3f(random.nextFloat()*3.14f,random.nextFloat()*3.14f,0), 1)); + } + + MasterRenderer renderer = new MasterRenderer(); manager.setDrawer(new DisplayManagerDraw() { @Override public void draw() { //entity.increasePosition(0.0f, 0, -0.01f); //entity.increaseRotation(0, 0, 0.01f); - entity.increaseRotation(0.01f, 0.02f, 0.0f); + //entity.increaseRotation(0.01f, 0.02f, 0.0f); camera.move(); - renderer.prepare(); - shader.start(); - shader.loadLight(light); - shader.loadViewMatrix(camera); - renderer.render(entity, shader); - shader.stop(); + for (Entity cube : allCubes) { + renderer.processEntity(cube); + } + renderer.render(light, camera); } }); manager.loop(); - shader.cleanUp(); + renderer.cleanUp(); loader.cleanUp(); manager.unInit(); } diff --git a/src/entities/Camera.java b/src/entities/Camera.java index 7d64c63..b4a568f 100644 --- a/src/entities/Camera.java +++ b/src/entities/Camera.java @@ -14,17 +14,17 @@ public class Camera { } public void move() { - if (DisplayManager.isKeyDown('z')) { - position.x -= 0.02f; + if (DisplayManager.isKeyDown('w')) { + position.z -= 0.8f; } if (DisplayManager.isKeyDown('s')) { - position.x += 0.02f; + position.z += 0.8f; } if (DisplayManager.isKeyDown('d')) { - position.y -= 0.02f; + position.x += 0.8f; } - if (DisplayManager.isKeyDown('q')) { - position.y += 0.02f; + if (DisplayManager.isKeyDown('a')) { + position.x -= 0.8f; } } diff --git a/src/renderEngine/DisplayManager.java b/src/renderEngine/DisplayManager.java index b0c3205..a3a9127 100644 --- a/src/renderEngine/DisplayManager.java +++ b/src/renderEngine/DisplayManager.java @@ -104,6 +104,8 @@ public class DisplayManager { private static boolean valueZ = false; private static boolean valueQ = false; private static boolean valueD = false; + private static boolean valueA = false; + private static boolean valueW = false; public static boolean isKeyDown(char value) { if (value == 's') { return valueS; @@ -117,6 +119,12 @@ public class DisplayManager { if (value == 'd') { return valueD; } + if (value == 'w') { + return valueW; + } + if (value == 'a') { + return valueA; + } return false; } @@ -180,6 +188,24 @@ public class DisplayManager { valueD = false; } } + if ( key == GLFW_KEY_A ) { + if (action == GLFW_PRESS ) { + System.out.println("Key A is pressed"); + valueA = true; + } else if (action == GLFW_RELEASE ) { + System.out.println("Key A is release"); + valueA = false; + } + } + if ( key == GLFW_KEY_W ) { + if (action == GLFW_PRESS ) { + System.out.println("Key W is pressed"); + valueW = true; + } else if (action == GLFW_RELEASE ) { + System.out.println("Key W is release"); + valueW = false; + } + } }); // Get the thread stack and push a new frame diff --git a/src/renderEngine/MasterRenderer.java b/src/renderEngine/MasterRenderer.java new file mode 100644 index 0000000..abae0d1 --- /dev/null +++ b/src/renderEngine/MasterRenderer.java @@ -0,0 +1,45 @@ +package renderEngine; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import entities.Camera; +import entities.Entity; +import entities.Light; +import models.TexturedModel; +import shaders.StaticShader; + +public class MasterRenderer { + private StaticShader shader = new StaticShader(); + private Renderer renderer = new Renderer(shader); + + private Map> entities = new HashMap>(); + + public void render(Light sun, Camera camera) { + renderer.prepare(); + shader.start(); + shader.loadLight(sun); + shader.loadViewMatrix(camera); + renderer.render(entities); + shader.stop(); + entities.clear(); + } + + public void processEntity(Entity entity) { + TexturedModel entityModel = entity.getModel(); + List batch = entities.get(entityModel); + if (batch != null) { + batch.add(entity); + } else { + List newBatch = new ArrayList(); + newBatch.add(entity); + entities.put(entityModel, newBatch); + } + } + + public void cleanUp () { + shader.cleanUp(); + } +} diff --git a/src/renderEngine/Renderer.java b/src/renderEngine/Renderer.java index db0b014..02cb074 100644 --- a/src/renderEngine/Renderer.java +++ b/src/renderEngine/Renderer.java @@ -1,5 +1,8 @@ package renderEngine; +import java.util.List; +import java.util.Map; + import javax.vecmath.Matrix4f; import javax.vecmath.Vector2f; @@ -28,8 +31,11 @@ public class Renderer { private static final float NEAR_PLANE = 0.1f; private static final float FAR_PLANE = 10000; - private Matrix4f projectionMatrix; + private Matrix4f projectionMatrix; + private StaticShader shader; + public Renderer(StaticShader shader) { + this.shader = shader; createProjectionMatrix(); shader.start(); shader.loadProjectionMatrix(projectionMatrix); @@ -37,30 +43,50 @@ public class Renderer { } public void prepare() { + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_BACK); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glClearColor(1, 0, 0, 1); GL11.glClear(GL11.GL_COLOR_BUFFER_BIT|GL11.GL_DEPTH_BUFFER_BIT); } - public void render(Entity entity, StaticShader shader) { - TexturedModel texturedModel = entity.getModel(); - RawModel rawModel = texturedModel.getRawModel(); + public void render(Map> entities) { + for (TexturedModel model:entities.keySet()) { + prepareTexturedModel(model); + List batch = entities.get(model); + for (Entity entity:batch) { + prepareInstance(entity); + GL11.glDrawElements(GL11.GL_TRIANGLES, model.getRawModel().getVertexCount(), GL11.GL_UNSIGNED_INT, 0); + } + unbindTexturedModel(); + } + } + + private void prepareTexturedModel(TexturedModel model) { + RawModel rawModel = model.getRawModel(); GL30.glBindVertexArray(rawModel.getVaoID()); GL20.glEnableVertexAttribArray(0); GL20.glEnableVertexAttribArray(1); GL20.glEnableVertexAttribArray(2); - Matrix4f transformationMatrix = Maths.createTransformationMatrix(entity.getPosition(), entity.getRotation(), entity.getScale()); - shader.loadTransformationMatrix(transformationMatrix); - ModelTexture texture = texturedModel.getTexture(); + ModelTexture texture = model.getTexture(); shader.loadShineVariable(texture.getShineDamper(), texture.getReflectivity()); GL13.glActiveTexture(GL13.GL_TEXTURE0); - GL11.glBindTexture(GL11.GL_TEXTURE_2D, texturedModel.getTexture().getTexturedID()); - GL11.glDrawElements(GL11.GL_TRIANGLES, rawModel.getVertexCount(), GL11.GL_UNSIGNED_INT, 0); + GL11.glBindTexture(GL11.GL_TEXTURE_2D, model.getTexture().getTexturedID()); + } + + private void unbindTexturedModel() { GL20.glDisableVertexAttribArray(0); GL20.glDisableVertexAttribArray(1); GL20.glDisableVertexAttribArray(2); GL30.glBindVertexArray(0); + } + + private void prepareInstance(Entity entity) { + Matrix4f transformationMatrix = Maths.createTransformationMatrix(entity.getPosition(), entity.getRotation(), entity.getScale()); + shader.loadTransformationMatrix(transformationMatrix); + } + private void createProjectionMatrix() { //float aspectRatio = (float) Display.getWidth() / (float) Display.getHeight(); diff --git a/src/shaders/fragmentShader.txt b/src/shaders/fragmentShader.txt index 1aa8cf7..325900b 100644 --- a/src/shaders/fragmentShader.txt +++ b/src/shaders/fragmentShader.txt @@ -19,7 +19,8 @@ void main(void) { vec3 unitLightVector = normalize(toLightVector); float nDot1 = dot(unitNormal, unitLightVector); - float brightness = max(nDot1, 0.0); + // the 0.2 represent the anbiant lightning ==> maybe set an uniform for this + float brightness = max(nDot1, 0.2); vec3 diffuse = brightness * lightColour; vec3 unitVectorToCamera = normalize(toCameraVector);