public void selectGameItem(GameItem[] gameItems, Camera camera) { dir = camera.getViewMatrix().positiveZ(dir).negate(); selectGameItem(gameItems, camera.getPosition(), dir); }
public void selectGameItem(GameItem[] gameItems, Camera camera) { dir = camera.getViewMatrix().positiveZ(dir).negate(); selectGameItem(gameItems, camera.getPosition(), dir); }
public void selectGameItem(GameItem[] gameItems, Camera camera) { dir = camera.getViewMatrix().positiveZ(dir).negate(); selectGameItem(gameItems, camera.getPosition(), dir); }
public void selectGameItem(GameItem[] gameItems, Camera camera) { dir = camera.getViewMatrix().positiveZ(dir).negate(); selectGameItem(gameItems, camera.getPosition(), dir); }
public void selectGameItem(GameItem[] gameItems, Camera camera) { dir = camera.getViewMatrix().positiveZ(dir).negate(); selectGameItem(gameItems, camera.getPosition(), dir); }
public void selectGameItem(GameItem[] gameItems, Camera camera) { dir = camera.getViewMatrix().positiveZ(dir).negate(); selectGameItem(gameItems, camera.getPosition(), dir); }
public void selectGameItem(GameItem[] gameItems, Camera camera) { dir = camera.getViewMatrix().positiveZ(dir).negate(); selectGameItem(gameItems, camera.getPosition(), dir); }
public void selectGameItem(GameItem[] gameItems, Camera camera) { dir = camera.getViewMatrix().positiveZ(dir).negate(); selectGameItem(gameItems, camera.getPosition(), dir); }
public void render(Window window, Scene scene, Camera camera, Transformation transformation, Renderer renderer) { update(window, camera.getViewMatrix(), scene); // Setup view port to match the texture size glBindFramebuffer(GL_FRAMEBUFFER, shadowBuffer.getDepthMapFBO()); glViewport(0, 0, ShadowBuffer.SHADOW_MAP_WIDTH, ShadowBuffer.SHADOW_MAP_HEIGHT); glClear(GL_DEPTH_BUFFER_BIT); depthShaderProgram.bind(); // Render scene for each cascade map for (int i = 0; i < NUM_CASCADES; i++) { ShadowCascade shadowCascade = shadowCascades.get(i); depthShaderProgram.setUniform("orthoProjectionMatrix", shadowCascade.getOrthoProjMatrix()); depthShaderProgram.setUniform("lightViewMatrix", shadowCascade.getLightViewMatrix()); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, shadowBuffer.getDepthMapTexture().getIds()[i], 0); glClear(GL_DEPTH_BUFFER_BIT); renderNonInstancedMeshes(scene, transformation); renderInstancedMeshes(scene, transformation); } // Unbind depthShaderProgram.unbind(); glBindFramebuffer(GL_FRAMEBUFFER, 0); }
public void render(Window window, Scene scene, Camera camera, Transformation transformation, Renderer renderer) { update(window, camera.getViewMatrix(), scene); // Setup view port to match the texture size glBindFramebuffer(GL_FRAMEBUFFER, shadowBuffer.getDepthMapFBO()); glViewport(0, 0, ShadowBuffer.SHADOW_MAP_WIDTH, ShadowBuffer.SHADOW_MAP_HEIGHT); glClear(GL_DEPTH_BUFFER_BIT); depthShaderProgram.bind(); // Render scene for each cascade map for (int i = 0; i < NUM_CASCADES; i++) { ShadowCascade shadowCascade = shadowCascades.get(i); depthShaderProgram.setUniform("orthoProjectionMatrix", shadowCascade.getOrthoProjMatrix()); depthShaderProgram.setUniform("lightViewMatrix", shadowCascade.getLightViewMatrix()); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, shadowBuffer.getDepthMapTexture().getIds()[i], 0); glClear(GL_DEPTH_BUFFER_BIT); renderNonInstancedMeshes(scene, transformation); renderInstancedMeshes(scene, transformation); } // Unbind depthShaderProgram.unbind(); glBindFramebuffer(GL_FRAMEBUFFER, 0); }
public void selectGameItem(GameItem[] gameItems, Window window, Vector2d mousePos, Camera camera) { // Transform mouse coordinates into normalized spaze [-1, 1] int wdwWitdh = window.getWidth(); int wdwHeight = window.getHeight(); float x = (float)(2 * mousePos.x) / (float)wdwWitdh - 1.0f; float y = 1.0f - (float)(2 * mousePos.y) / (float)wdwHeight; float z = -1.0f; invProjectionMatrix.set(window.getProjectionMatrix()); invProjectionMatrix.invert(); tmpVec.set(x, y, z, 1.0f); tmpVec.mul(invProjectionMatrix); tmpVec.z = -1.0f; tmpVec.w = 0.0f; Matrix4f viewMatrix = camera.getViewMatrix(); invViewMatrix.set(viewMatrix); invViewMatrix.invert(); tmpVec.mul(invViewMatrix); mouseDir.set(tmpVec.x, tmpVec.y, tmpVec.z); selectGameItem(gameItems, camera.getPosition(), mouseDir); } }
public void render(Window window, Camera camera, Scene scene) { clear(); frustumFilter.updateFrustum(window.getProjectionMatrix(), camera.getViewMatrix()); frustumFilter.filter(scene.getGameMeshes()); frustumFilter.filter(scene.getGameInstancedMeshes()); // Render depth map before view ports has been set up renderDepthMap(window, camera, scene); glViewport(0, 0, window.getWidth(), window.getHeight()); // Update projection matrix once per render cycle window.updateProjectionMatrix(); renderScene(window, camera, scene); renderSkyBox(window, camera, scene); renderParticles(window, camera, scene); //renderAxes(camera); renderCrossHair(window); }
public void render(Window window, Camera camera, Scene scene, boolean sceneChanged) { clear(); if (window.getOptions().frustumCulling) { frustumFilter.updateFrustum(window.getProjectionMatrix(), camera.getViewMatrix()); frustumFilter.filter(scene.getGameMeshes()); frustumFilter.filter(scene.getGameInstancedMeshes()); } // Render depth map before view ports has been set up if (scene.isRenderShadows() && sceneChanged) { shadowRenderer.render(window, scene, camera, transformation, this); } glViewport(0, 0, window.getWidth(), window.getHeight()); // Update projection matrix once per render cycle window.updateProjectionMatrix(); renderScene(window, camera, scene); renderSkyBox(window, camera, scene); renderParticles(window, camera, scene); //renderAxes(camera); //renderCrossHair(window); }
public void render(Window window, Camera camera, Scene scene) { clear(); if (window.getOptions().frustumCulling) { frustumFilter.updateFrustum(window.getProjectionMatrix(), camera.getViewMatrix()); frustumFilter.filter(scene.getGameMeshes()); frustumFilter.filter(scene.getGameInstancedMeshes()); } // Render depth map before view ports has been set up renderDepthMap(window, camera, scene); glViewport(0, 0, window.getWidth(), window.getHeight()); // Update projection matrix once per render cycle window.updateProjectionMatrix(); renderScene(window, camera, scene); renderSkyBox(window, camera, scene); renderParticles(window, camera, scene); //renderAxes(camera); renderCrossHair(window); }
public void renderScene(Window window, Camera camera, Scene scene) { sceneShaderProgram.bind(); Matrix4f projectionMatrix = transformation.getProjectionMatrix(); sceneShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f orthoProjMatrix = transformation.getOrthoProjectionMatrix(); sceneShaderProgram.setUniform("orthoProjectionMatrix", orthoProjMatrix); Matrix4f lightViewMatrix = transformation.getLightViewMatrix(); Matrix4f viewMatrix = camera.getViewMatrix(); SceneLight sceneLight = scene.getSceneLight(); renderLights(viewMatrix, sceneLight); sceneShaderProgram.setUniform("fog", scene.getFog()); sceneShaderProgram.setUniform("texture_sampler", 0); sceneShaderProgram.setUniform("normalMap", 1); sceneShaderProgram.setUniform("shadowMap", 2); sceneShaderProgram.setUniform("renderShadow", scene.isRenderShadows() ? 1 : 0); renderNonInstancedMeshes(scene, sceneShaderProgram, viewMatrix, lightViewMatrix); renderInstancedMeshes(scene, sceneShaderProgram, viewMatrix, lightViewMatrix); sceneShaderProgram.unbind(); }
public void renderScene(Window window, Camera camera, Scene scene) { sceneShaderProgram.bind(); Matrix4f projectionMatrix = window.getProjectionMatrix(); sceneShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f orthoProjMatrix = transformation.getOrthoProjectionMatrix(); sceneShaderProgram.setUniform("orthoProjectionMatrix", orthoProjMatrix); Matrix4f lightViewMatrix = transformation.getLightViewMatrix(); Matrix4f viewMatrix = camera.getViewMatrix(); SceneLight sceneLight = scene.getSceneLight(); renderLights(viewMatrix, sceneLight); sceneShaderProgram.setUniform("fog", scene.getFog()); sceneShaderProgram.setUniform("texture_sampler", 0); sceneShaderProgram.setUniform("normalMap", 1); sceneShaderProgram.setUniform("shadowMap", 2); sceneShaderProgram.setUniform("renderShadow", scene.isRenderShadows() ? 1 : 0); renderNonInstancedMeshes(scene, sceneShaderProgram, viewMatrix, lightViewMatrix); renderInstancedMeshes(scene, sceneShaderProgram, viewMatrix, lightViewMatrix); sceneShaderProgram.unbind(); }
public void render(Window window, Camera camera, Scene scene, boolean sceneChanged) { clear(); if (window.getOptions().frustumCulling) { frustumFilter.updateFrustum(window.getProjectionMatrix(), camera.getViewMatrix()); frustumFilter.filter(scene.getGameMeshes()); frustumFilter.filter(scene.getGameInstancedMeshes()); } // Render depth map before view ports has been set up if (scene.isRenderShadows() && sceneChanged) { shadowRenderer.render(window, scene, camera, transformation, this); } glViewport(0, 0, window.getWidth(), window.getHeight()); // Update projection matrix once per render cycle window.updateProjectionMatrix(); renderScene(window, camera, scene); renderSkyBox(window, camera, scene); renderParticles(window, camera, scene); //renderAxes(camera); renderCrossHair(window); }
public void renderScene(Window window, Camera camera, Scene scene) { sceneShaderProgram.bind(); Matrix4f projectionMatrix = window.getProjectionMatrix(); sceneShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f orthoProjMatrix = transformation.getOrthoProjectionMatrix(); sceneShaderProgram.setUniform("orthoProjectionMatrix", orthoProjMatrix); Matrix4f lightViewMatrix = transformation.getLightViewMatrix(); Matrix4f viewMatrix = camera.getViewMatrix(); SceneLight sceneLight = scene.getSceneLight(); renderLights(viewMatrix, sceneLight); sceneShaderProgram.setUniform("fog", scene.getFog()); sceneShaderProgram.setUniform("texture_sampler", 0); sceneShaderProgram.setUniform("normalMap", 1); sceneShaderProgram.setUniform("shadowMap", 2); sceneShaderProgram.setUniform("renderShadow", scene.isRenderShadows() ? 1 : 0); renderNonInstancedMeshes(scene, sceneShaderProgram, viewMatrix, lightViewMatrix); renderInstancedMeshes(scene, sceneShaderProgram, viewMatrix, lightViewMatrix); sceneShaderProgram.unbind(); }
public void renderScene(Window window, Camera camera, Scene scene) { sceneShaderProgram.bind(); Matrix4f projectionMatrix = window.getProjectionMatrix(); sceneShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f orthoProjMatrix = transformation.getOrthoProjectionMatrix(); sceneShaderProgram.setUniform("orthoProjectionMatrix", orthoProjMatrix); Matrix4f lightViewMatrix = transformation.getLightViewMatrix(); Matrix4f viewMatrix = camera.getViewMatrix(); SceneLight sceneLight = scene.getSceneLight(); renderLights(viewMatrix, sceneLight); sceneShaderProgram.setUniform("fog", scene.getFog()); sceneShaderProgram.setUniform("texture_sampler", 0); sceneShaderProgram.setUniform("normalMap", 1); sceneShaderProgram.setUniform("shadowMap", 2); sceneShaderProgram.setUniform("renderShadow", scene.isRenderShadows() ? 1 : 0); renderNonInstancedMeshes(scene, sceneShaderProgram, viewMatrix, lightViewMatrix); renderInstancedMeshes(scene, sceneShaderProgram, viewMatrix, lightViewMatrix); sceneShaderProgram.unbind(); }
public void renderScene(Window window, Camera camera, Scene scene) { sceneShaderProgram.bind(); Matrix4f projectionMatrix = window.getProjectionMatrix(); sceneShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f orthoProjMatrix = transformation.getOrthoProjectionMatrix(); sceneShaderProgram.setUniform("orthoProjectionMatrix", orthoProjMatrix); Matrix4f lightViewMatrix = transformation.getLightViewMatrix(); Matrix4f viewMatrix = camera.getViewMatrix(); SceneLight sceneLight = scene.getSceneLight(); renderLights(viewMatrix, sceneLight); sceneShaderProgram.setUniform("fog", scene.getFog()); sceneShaderProgram.setUniform("texture_sampler", 0); sceneShaderProgram.setUniform("normalMap", 1); sceneShaderProgram.setUniform("shadowMap", 2); sceneShaderProgram.setUniform("renderShadow", scene.isRenderShadows() ? 1 : 0); renderNonInstancedMeshes(scene, sceneShaderProgram, viewMatrix, lightViewMatrix); renderInstancedMeshes(scene, sceneShaderProgram, viewMatrix, lightViewMatrix); sceneShaderProgram.unbind(); }