我正在製作WebGL圖形庫,並無法從OBJ Wavefront創建正確的陣列(這絕對正確)。看起來像一個簡單的錯誤修復,但無法找到它。想知道是否有人可能會識別這種類型的錯誤。Wavefront文件轉換爲WebGL陣列出錯了某處
你可以看看現場樣品在這裏: http://robjte.de/webgl/8-3d.html
這裏是我懷疑導致問題的功能。
function objectify (str) {
var vertexRegex = /^v(?:\s(-?\d+.?(?:\d+)?))\s(-?\d+.?(?:\d+)?)\s(-?\d+.?(?:\d+)?)$/gim;
var faceRegex = /^f\s(\d+)\s(\d+)\s(\d+)$/gim;
var commentRegex = /^\s*\#.*$/gim;
var emptyLineRegex = /^$/gim;
var vertices = [];
var faces = [];
var m, i = 0;
while (m = faceRegex.exec(str)) {
faces.push([m[1], m[2], m[3]]);
i++;
}
var m, i = 0;
while (m = vertexRegex.exec(str)) {
vertices.push([m[1], m[2], m[3]]);
i++;
}
return {vertices: vertices, faces: faces};
}
function facesVerticesToWebGL (obj) {
var f = obj.faces;
var v = obj.vertices;
var arr = [];
f.forEach(function (val) {
var vArr = v[parseInt(val) - 1];
vArr.forEach(function (val2) {
arr.push(parseFloat(val2));
});
});
return arr;
}