Vì vậy, tôi có một hình học (phạm vi của mã này là BA.Geometry.prototype) và tôi đang chỉnh sửa động. newData là một đối tượng của {faces: [mảng của các chỉ mục mặt], các đỉnh: [mảng các chỉ mục đỉnh]}. (các mảng này duy trì độ dài của mặt gốc và chiều dài mảng đỉnh và giữ dạng [null, null, null, "4", "5", null, null ...])Ba JS Không có cập nhật trực quan sau khi chỉnh sửa hình ảnh theo cách thủ công
Sử dụng các mảng này, I dải qua tất cả các khuôn mặt và đỉnh và áp dụng chúng vào 1 trong 2 mảng mới, tách tất cả dữ liệu thành 2 nhóm một cách hiệu quả. Tôi cũng cập nhật các con trỏ trên khuôn mặt!
Cuối cùng tôi biết tôi đã cập nhật hình học và nó là chính xác, nhưng những thay đổi tôi thực hiện không được hiển thị. Tôi đã thử .elementsNeedUpdate là nguyên nhân và lỗi. (không có thuộc tính 'a' không xác định trong InitWebGlObjects ... Tôi đã xem ở đó, không thể thấy tham chiếu đến a)
Tôi đã thử các đỉnh cần cập nhật, không có gì.
Tôi cũng đã thử updateCentroids kết hợp với công cụ trước đó. Nó không làm gì cả.
Tôi đã nghe nói về việc không thể thay đổi kích thước bộ đệm. Bộ đệm và độ dài của bộ đệm là gì? Số lượng các đỉnh tôi đang đưa ra cho một mô hình?
Tôi đã thấy "Bạn có thể mô phỏng thay đổi kích thước bằng cách phân bổ trước bộ đệm lớn hơn và sau đó giữ các đỉnh không cần thiết bị thu gọn/ẩn". Có vẻ như đó là những gì tôi đang làm? Làm thế nào tôi có thể thu gọn/ẩn một đỉnh? Tôi đã không thấy bất kỳ tham chiếu đến điều đó.
Cảm ơn bạn đã dành thời gian!
var oldVertices = this.vertices
var oldFaces = this.faces;
var newVertices = []
var newFaces = [];
var verticeChanges = [];
this.vertices = [];
this.faces = [];
for(var i in oldVertices){
var curAr = ((newData.vertices[i]) ? (newVertices):(this.vertices));
curAr.push(oldVertices[i]);
verticeChanges[i] = curAr.length-1;
}
for(var i in oldFaces){
var curAr = ((newData.faces[i]) ? (newFaces):(this.faces));
oldFaces[i].a = verticeChanges[oldFaces[i].a];
oldFaces[i].b = verticeChanges[oldFaces[i].b];
oldFaces[i].c = verticeChanges[oldFaces[i].c];
}
console.log('Vertices Cut from', oldVertices.length, "to:", newVertices.length, 'and', this.vertices.length);
console.log('Faces Cut from', oldFaces.length, "to:", newFaces.length, 'and', this.faces.length);
Bạn đang sử dụng bản sửa đổi ba.js nào? – Jias
Tôi nghĩ rằng tôi đang sử dụng phiên bản 52, bất cứ điều gì là mới nhất –
Bạn có thể thiết lập một jsfiddle? – gaitat