Fixed MikktSpaceTangentGenerator that was not replacing existing Tangent buffers on the mesh. That could cause crashes when the old tangent buffer did not have the same amount of components

revert-573-cleanup_build_scripts
Nehon 8 years ago
parent 7ecb81c230
commit aae6170cc5
  1. 7
      jme3-core/src/main/java/com/jme3/util/mikktspace/MikkTSpaceImpl.java

@ -21,15 +21,12 @@ public class MikkTSpaceImpl implements MikkTSpaceContext {
public MikkTSpaceImpl(Mesh mesh) { public MikkTSpaceImpl(Mesh mesh) {
this.mesh = mesh; this.mesh = mesh;
VertexBuffer tangentBuffer = mesh.getBuffer(VertexBuffer.Type.Tangent); //replacing any existing tangent buffer, if you came here you want them new.
if(tangentBuffer == null){ mesh.clearBuffer(VertexBuffer.Type.Tangent);
FloatBuffer fb = BufferUtils.createFloatBuffer(mesh.getVertexCount() * 4); FloatBuffer fb = BufferUtils.createFloatBuffer(mesh.getVertexCount() * 4);
mesh.setBuffer(VertexBuffer.Type.Tangent, 4, fb); mesh.setBuffer(VertexBuffer.Type.Tangent, 4, fb);
} }
//TODO ensure the Tangent buffer exists, else create one.
}
@Override @Override
public int getNumFaces() { public int getNumFaces() {
return mesh.getTriangleCount(); return mesh.getTriangleCount();

Loading…
Cancel
Save