LibGDX - 为GLSL着色器

时间:2015-04-24 11:44:04

标签: java opengl libgdx glsl shader

我想了解如何使用{{1}获取正确的Model-ViewViewNormal矩阵以及TangentBinormal等额外属性我的着色器?

现在我得到如下所示的参数:

模型 - 视图矩阵:

LibGDX

查看矩阵(EyeView):

modelViewMatrix.set(camera.view);       
modelViewMatrix.mul(renderable.worldTransform);
program.setUniformMatrix(u_matModelView, modelViewMatrix);

普通矩阵:

program.setUniformMatrix(u_matView, camera.view);

据我所知,viewInvTraMatrix.set(camera.view); viewInvTraMatrix.mul(renderable.worldTransform); //multiply to world transformation matrix program.setUniformMatrix(u_matModelView, viewInvTraMatrix); viewInvTraMatrix.inv(); //inverse viewInvTraMatrix.tra(); //transpose program.setUniformMatrix(u_matViewInverseTranspose, viewInvTraMatrix); //IN VERTEX SHADER: mat3 normalMatrix = mat3(u_matViewInverseTranspose); 团队添加了LibGDX属性。所以我从shader得到它:

a_tangent

在我看来它很有效。我不能对attribute vec3 a_tangent; 属性说同样的话。但这不是问题,因为我是从顶点着色器中的公式获得的:

a_binormal

所以我需要知道它是否正确?如果是,为什么简单的 vec3 n = normalize(normalMatrix * a_normal); vec3 t = normalize(normalMatrix * a_tangent); vec3 binormal = cross (n, t); 着色器不起作用(请参阅我的问题:Normal mapping GLSL using LibGDX)?如果没有,如何获得正确的参数?提前谢谢!

0 个答案:

没有答案