List of usage examples for com.badlogic.gdx.graphics.glutils ShaderProgram setUniformMatrix
public void setUniformMatrix(int location, Matrix3 matrix)
From source file:airfoil.Main.java
License:Open Source License
protected final void renderMeshTriangles(Mesh mesh) { final ShaderProgram bodyShader = this.bodyShader; if (null != bodyShader) { if (null != mesh) { final Matrix4 camera = this.getCamera(); bodyShader.begin();//from w w w . j a va 2 s .c o m bodyShader.setUniformMatrix("u_camera", camera); bodyShader.setUniformf("u_color", Color.YELLOW); bodyShader.setUniformf("u_light", LightNormal); bodyShader.setUniformf("u_mat", Material); mesh.render(bodyShader, GL20.GL_TRIANGLES); bodyShader.end(); } } }
From source file:airfoil.Main.java
License:Open Source License
protected final void renderMeshLines(Mesh mesh) { final ShaderProgram axesShader = this.axesShader; if (null != axesShader) { if (null != mesh) { final Matrix4 camera = this.getCamera(); axesShader.begin();//w ww .j a v a 2 s .c o m axesShader.setUniformMatrix("u_camera", camera); axesShader.setUniformf("u_color", Color.YELLOW); axesShader.setUniformf("u_light", LightNormal); axesShader.setUniformf("u_mat", Material); mesh.render(axesShader, GL20.GL_LINES); axesShader.end(); } } }
From source file:ve.ucv.ciens.ccg.nxtar.graphics.shaders.DirectionalLightPerPixelShader.java
License:Apache License
@Override public void render(Renderable renderable) { ShaderProgram program; int index;//from w w w . j ava 2 s.c o m boolean bonesEnabled; Vector3 lightPosition; Color diffuseLightColor; Color diffuseColor; Color specularColor; Color ambientColor; float shininess; // Get material colors. if (renderable.environment != null && renderable.environment.directionalLights != null && renderable.environment.directionalLights.size >= 1) { lightPosition = renderable.environment.directionalLights.get(0).direction; diffuseLightColor = renderable.environment.directionalLights.get(0).color; } else { lightPosition = DEFAULT_LIGHT; diffuseLightColor = Color.WHITE; } if (renderable.material.has(ColorAttribute.Diffuse)) diffuseColor = ((ColorAttribute) renderable.material.get(ColorAttribute.Diffuse)).color; else diffuseColor = Color.WHITE; if (renderable.material.has(ColorAttribute.Specular)) specularColor = ((ColorAttribute) renderable.material.get(ColorAttribute.Specular)).color; else specularColor = Color.BLACK; if (renderable.environment != null && renderable.environment.has(ColorAttribute.AmbientLight)) ambientColor = ((ColorAttribute) renderable.environment.get(ColorAttribute.AmbientLight)).color; else ambientColor = Color.BLACK; if (renderable.material.has(FloatAttribute.Shininess)) shininess = ((FloatAttribute) renderable.material.get(FloatAttribute.Shininess)).value; else shininess = DEFAULT_SHININESS; if (renderable.mesh.getVertexAttribute(VertexAttributes.Usage.BoneWeight) != null) { program = skinningProgram; index = 0; bonesEnabled = true; } else { program = baseProgram; index = 1; bonesEnabled = false; } program.begin(); // Set camera dependant uniforms. program.setUniformMatrix(u_projTrans[index], this.camera.combined); program.setUniformf(u_cameraPos[index], this.camera.position); // Set model dependant uniforms. program.setUniformMatrix(u_geomTrans[index], renderable.worldTransform); program.setUniformMatrix(u_normalMatrix[index], normalMatrix.set(renderable.worldTransform).toNormalMatrix()); program.setUniformf(u_lightPos[index], lightPosition); program.setUniformf(u_lightDiffuse[index], diffuseLightColor); program.setUniformf(u_materialDiffuse[index], diffuseColor); program.setUniformf(u_specular[index], specularColor); program.setUniformf(u_ambient[index], ambientColor); program.setUniformf(u_shiny[index], shininess); // Set the bones uniforms. if (bonesEnabled) { for (int i = 0; i < MAX_NUM_BONES; i++) { if (renderable.bones != null && i < renderable.bones.length && renderable.bones[i] != null) skinningProgram.setUniformMatrix(u_bones[i], renderable.bones[i]); else skinningProgram.setUniformMatrix(u_bones[i], IDENTITY); } } renderable.mesh.render(program, renderable.primitiveType, renderable.meshPartOffset, renderable.meshPartSize); program.end(); }