1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| public void render(Mesh m) { Matrix3 nm = makeNormalMatrix(model); model.idt(); model.rotate(new Vector3(1.0f,0.0f,0.0f), xrot); model.rotate(new Vector3(0.0f,1.0f,0.0f), yrot); model.translate(new Vector3(x, y, z)); shader.begin(); shader.setUniformMatrix("u_pv", Camera.getInstance().get()); shader.setUniformMatrix("u_m", model); shader.setUniformMatrix("u_nm", nm, true); float l1[],l2[],l3[],l4[]; if(cache == null) { l1 = LightManager.getInstance().updateAndGetLights(0); l2 = LightManager.getInstance().getLights(1); l3 = LightManager.getInstance().getLights(2); l4 = LightManager.getInstance().getLights(3); } else { l1 = cache.asFloat(0); l2 = cache.asFloat(1); l3 = cache.asFloat(2); l4 = cache.asFloat(3); } shader.setUniformf("ulight[0]", l1[0],l1[1],l1[2],l1[3]); shader.setUniformf("ulight[1]", l2[0],l2[1],l2[2],l2[3]); shader.setUniformf("ulight[2]", l3[0],l3[1],l3[2],l3[3]); shader.setUniformf("ulight[3]", l4[0],l4[1],l4[2],l4[3]); m.render(shader,GL10.GL_TRIANGLES); shader.end(); } |