Ist es möglich, Meshes oder Geometrie zwischen Szenen zu teilen?
Ich habe mehrere Szenen, die die gleichen, großen, Meshes sollten, aber wenn ich versuche, Meshes zwischen ihnen zu teilen, bekomme ich WebGL-Kontextfehler. Ich vermute, dass einige Variablen auf die Meshes oder Geometrie gesetzt werden, wenn sie zu einer Szene hinzugefügt werden, so dass sie nicht in einer anderen Szene wiederverwendet werden können.
EDITAR:
Genauer gesagt, versuche ich, Geometrie, die mit dem JSONLoader geladen wurde, zwischen verschiedenen Szenen zu teilen. D.h. in diesem Beispiel ist "apps" ein Array von Apps mit Szenen:
var loader = new THREE.JSONLoader();
loader.load('obj/tree/tree.js', function(geometry) {
apps.map(function(app) {
var material = new THREE.MeshBasicMaterial({color: 0xff0000, opacity: 1.0});
var mesh = new THREE.Mesh(geometry, geometry.materials[0]);
app.scene.add(mesh);
});
});
Vollständige Quelle hier: https://github.com/bjnortier/three.js/blob/multiple_canvasses_with_json_loader/examples/webgl_multiple_canvases_grid.html
Dieses Beispiel erzeugt WebGL-Fehler:
WebGL: INVALID_OPERATION: useProgram: Objekt nicht aus diesem Kontext
WebGL: INVALID_OPERATION: uniformMatrix4fv: Ort ist nicht vom aktuellen Programm
WebGL: INVALID_OPERATION: uniform3f: Standort nicht für das aktuelle Programm
WebGL: INVALID_OPERATION: uniform1f: Standort nicht für das aktuelle Programm
usw...