@Override public void set (BaseShader shader, int inputID, Renderable renderable, Attributes combinedAttributes) { shader.set(inputID, tmpM.set(renderable.worldTransform).inv().transpose()); } };
@Override public void set (BaseShader shader, int inputID, Renderable renderable, Attributes combinedAttributes) { shader.set(inputID, tmpM.set(renderable.worldTransform).inv().transpose()); } };
@Override public void setVertexTransform (Matrix4 transform) { vertexTransformationEnabled = transform != null; if (vertexTransformationEnabled) { positionTransform.set(transform); normalTransform.set(transform).inv().transpose(); } else { positionTransform.idt(); normalTransform.idt(); } }
@Override public void setVertexTransform (Matrix4 transform) { vertexTransformationEnabled = transform != null; if (vertexTransformationEnabled) { positionTransform.set(transform); normalTransform.set(transform).inv().transpose(); } else { positionTransform.idt(); normalTransform.idt(); } }
@Override public void render (Renderable renderable) { Material material = renderable.material; TextureAttribute diffuseTexture = (TextureAttribute)material.get(TextureAttribute.Diffuse); TextureAttribute normalTexture = (TextureAttribute)material.get(TextureAttribute.Normal); TextureAttribute specTexture = (TextureAttribute)material.get(TextureAttribute.Specular); if (diffuseTexture != null) { shaderProgram.setUniformi("u_diffuseTexture", context.textureBinder.bind(diffuseTexture.textureDescription.texture)); } if (normalTexture != null) { shaderProgram.setUniformi("u_normalTexture", context.textureBinder.bind(normalTexture.textureDescription.texture)); } if (specTexture != null) { shaderProgram.setUniformi("u_specularTexture", context.textureBinder.bind(specTexture.textureDescription.texture)); } shaderProgram.setUniformMatrix("u_worldTrans", renderable.worldTransform); shaderProgram.setUniformMatrix("u_normalMatrix", matrix3.set(renderable.worldTransform).inv().transpose()); renderable.meshPart.render(shaderProgram); }
mat1.inv(); afn2.set(afn1).inv(); checkEqual(mat1, afn2);
@Override public void set (BaseShader shader, int inputID, Renderable renderable, Attributes combinedAttributes) { shader.set(inputID, tmpM.set(renderable.worldTransform).inv().transpose()); } };
@Override public void set(BaseShader shader, int inputID, Renderable renderable, Attributes combinedAttributes) { shader.set(inputID, tmpM.set(renderable.worldTransform).inv().transpose()); } };
@Override public void setVertexTransform (Matrix4 transform) { vertexTransformationEnabled = transform != null; if (vertexTransformationEnabled) { positionTransform.set(transform); normalTransform.set(transform).inv().transpose(); } else { positionTransform.idt(); normalTransform.idt(); } }
} else { mtx.set(camPersp.view).mul(m.mtxmodel); nmat.set(mtx).inv().transpose(); shader.setUniformMatrix("nmat", nmat); shader.setUniformMatrix("model", m.mtxmodel); } else { mtx.set(camPersp.view).mul(m.mtxmodel); nmat.set(mtx).inv().transpose(); shader.setUniformMatrix("nmat", nmat); shader.setUniformMatrix("model", m.mtxmodel);
void updateBody() { if (body == null || staticLight) return; final Vector2 vec = body.getPosition(); tmpVec.set(0, 0).sub(bodyPosition); bodyPosition.set(vec); zeroPosition.setToTranslation(tmpVec); restorePosition.setToTranslation(bodyPosition); rotateAroundZero.setToRotationRad(bodyAngle).inv().rotateRad(body.getAngle()); bodyAngle = body.getAngle(); for (int i = 0; i < rayNum; i++) { tmpVec.set(startX[i], startY[i]).mul(zeroPosition).mul(rotateAroundZero) .mul(restorePosition); startX[i] = tmpVec.x; startY[i] = tmpVec.y; tmpVec.set(endX[i], endY[i]).mul(zeroPosition).mul(rotateAroundZero) .mul(restorePosition); endX[i] = tmpVec.x; endY[i] = tmpVec.y; } }
void updateBody() { if (body == null || staticLight) return; final Vector2 vec = body.getPosition(); tmpVec.set(0, 0).sub(bodyPosition); bodyPosition.set(vec); zeroPosition.setToTranslation(tmpVec); restorePosition.setToTranslation(bodyPosition); rotateAroundZero.setToRotationRad(bodyAngle).inv().rotateRad(body.getAngle()); bodyAngle = body.getAngle(); for (int i = 0; i < rayNum; i++) { tmpVec.set(startX[i], startY[i]).mul(zeroPosition).mul(rotateAroundZero) .mul(restorePosition); startX[i] = tmpVec.x; startY[i] = tmpVec.y; tmpVec.set(endX[i], endY[i]).mul(zeroPosition).mul(rotateAroundZero) .mul(restorePosition); endX[i] = tmpVec.x; endY[i] = tmpVec.y; } }
nmat.set(mtx).inv().transpose(); shader.setUniformMatrix("nmat", nmat); shader.setUniformMatrix("model", model.mtxbody); nmat.set(mtx).inv().transpose(); shader.setUniformMatrix("nmat", nmat); shader.setUniformMatrix("model", model.mtxltire); nmat.set(mtx).inv().transpose(); shader.setUniformMatrix("nmat", nmat); shader.setUniformMatrix("model", model.mtxrtire);
} else { mtx2.set(camPersp.view).mul(model); nmat.set(mtx2).inv().transpose(); shader.setUniformMatrix("nmat", nmat); shader.setUniformMatrix("model", model);
private void renderTilemapPlane () { ShaderProgram shader = shNormalDepthNoDiffuse; float meshZ = -(camPersp.far - camPersp.position.z) + (camPersp.far * (1 - (camOrtho.zoom))); float k = OrthographicAlignedStillModel.BlenderToURacer; float scalex = 6, scalez = 4; Matrix4 model = mtx; tmpvec.set(camPersp.position.x, camPersp.position.y, meshZ + 0.5f); model.idt(); model.translate(tmpvec); model.rotate(1, 0, 0, 90); model.scale(scalex * k, 1, scalez * k); mtx2.set(camPersp.view).mul(model); nmat.set(mtx2).inv().transpose(); shader.begin(); shader.setUniformf("inv_depth_scale", DefaultSsaoScale); shader.setUniformf("near", camPersp.near); shader.setUniformf("far", camPersp.far); shader.setUniformMatrix("proj", camPersp.projection); shader.setUniformMatrix("view", camPersp.view); shader.setUniformMatrix("nmat", nmat); shader.setUniformMatrix("model", model); plane.render(shader, GL20.GL_TRIANGLE_FAN); shader.end(); }