private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = window.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f viewMatrix = camera.getViewMatrix(); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh) emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix, null); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = window.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f viewMatrix = camera.getViewMatrix(); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh) emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix, null); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = window.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f viewMatrix = camera.getViewMatrix(); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh) emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix, null); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = transformation.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f viewMatrix = transformation.getViewMatrix(); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh)emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix, null); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = window.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f viewMatrix = camera.getViewMatrix(); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh) emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix, null); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = transformation.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f viewMatrix = transformation.getViewMatrix(); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh)emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix, null); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = transformation.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f viewMatrix = camera.getViewMatrix(); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh) emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix, null); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); Matrix4f viewMatrix = camera.getViewMatrix(); particlesShaderProgram.setUniform("viewMatrix", viewMatrix); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = window.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh) emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); Matrix4f viewMatrix = camera.getViewMatrix(); particlesShaderProgram.setUniform("viewMatrix", viewMatrix); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = window.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh) emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = transformation.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f viewMatrix = transformation.getViewMatrix(); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; Mesh mesh = emitter.getBaseParticle().getMesh(); mesh.renderList((emitter.getParticles()), (GameItem gameItem) -> { Matrix4f modelMatrix = transformation.buildModelMatrix(gameItem); viewMatrix.transpose3x3(modelMatrix); Matrix4f modelViewMatrix = transformation.buildModelViewMatrix(modelMatrix, viewMatrix); modelViewMatrix.scale(gameItem.getScale()); particlesShaderProgram.setUniform("modelViewMatrix", modelViewMatrix); } ); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = transformation.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); Matrix4f viewMatrix = transformation.getViewMatrix(); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); Matrix3f aux = new Matrix3f(); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh)emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix, null); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { particlesShaderProgram.bind(); Matrix4f viewMatrix = camera.getViewMatrix(); particlesShaderProgram.setUniform("viewMatrix", viewMatrix); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = window.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh) emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix); } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); particlesShaderProgram.unbind(); }
private void renderParticles(Window window, Camera camera, Scene scene) { // Support for transparencies glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); particlesShaderProgram.bind(); Matrix4f viewMatrix = camera.getViewMatrix(); particlesShaderProgram.setUniform("viewMatrix", viewMatrix); particlesShaderProgram.setUniform("texture_sampler", 0); Matrix4f projectionMatrix = window.getProjectionMatrix(); particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix); IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0; glDepthMask(false); glBlendFunc(GL_SRC_ALPHA, GL_ONE); for (int i = 0; i < numEmitters; i++) { IParticleEmitter emitter = emitters[i]; InstancedMesh mesh = (InstancedMesh) emitter.getBaseParticle().getMesh(); Texture text = mesh.getMaterial().getTexture(); particlesShaderProgram.setUniform("numCols", text.getNumCols()); particlesShaderProgram.setUniform("numRows", text.getNumRows()); mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix); } glDisable(GL_BLEND); glDepthMask(true); particlesShaderProgram.unbind(); }
IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0;
IParticleEmitter[] emitters = scene.getParticleEmitters(); int numEmitters = emitters != null ? emitters.length : 0;