Javascript 如何使用Three.js保存贴花位置?
我正在寻找一种存储和重新加载示例()中生成的贴花的方法,这样当用户“绘制”一个新的飞溅物时——他可以保存它,然后再重新加载它。Javascript 如何使用Three.js保存贴花位置?,javascript,three.js,Javascript,Three.js,我正在寻找一种存储和重新加载示例()中生成的贴花的方法,这样当用户“绘制”一个新的飞溅物时——他可以保存它,然后再重新加载它。 我尝试了很多方法,但不幸的是,它们似乎都不起作用 我的方法是保存位置、旋转和缩放,然后像这样构建它们: function loadLeePerrySmith(callback) { var loader = new THREE.JSONLoader(); loader.load('assets/LeePerrySmith.js', f
我尝试了很多方法,但不幸的是,它们似乎都不起作用 我的方法是保存位置、旋转和缩放,然后像这样构建它们:
function loadLeePerrySmith(callback) {
var loader = new THREE.JSONLoader();
loader.load('assets/LeePerrySmith.js', function (geometry) {
geometry.verticesNeedUpdate = true;
geometry.elementsNeedUpdate = true;
geometry.morphTargetsNeedUpdate = true;
geometry.uvsNeedUpdate = true;
geometry.normalsNeedUpdate = true;
geometry.colorsNeedUpdate = true;
geometry.tangentsNeedUpdate = true;
var material = new THREE.MeshPhongMaterial({
map: THREE.ImageUtils.loadTexture('assets/Map-COL.jpg'),
specularMap: THREE.ImageUtils.loadTexture('assets/Map-SPEC.jpg'),
normalMap: THREE.ImageUtils.loadTexture('assets/Map-NOR.jpg'),
shininess: 10
});
mesh = new THREE.Mesh(geometry, material);
// ALL FOLLOWING VECTORS SHOULD COME FROM D.B
var pos = new THREE.Vector3(0.18564199509178245, 23.11243036463454, 21.79273328636014);
var rot = new THREE.Vector3(-0.24357513937426453, -0.07708039421506024, 4.358263365975027);
var some = new THREE.Vector3(20.694949486021706, 20.694949486021706, 20.694949486021706);
var check = new THREE.Vector3(1, 1, 1);
var m = new THREE.Mesh(new THREE.DecalGeometry(mesh, pos, rot, some, check), decalMaterial);
scene.add(mesh);
decals.push(m);
scene.add(m);
mesh.scale.set(10, 10, 10);
});
}
添加一个简单的超时就成功了
setTimeout(function(){
let m = new THREE.Mesh(new DecalGeometry(mesh, pos, rot,
size), decalMateria2);
decals.push(m);
scene.add(m);
},100)
“我尝试了很多方法,但不幸的是,它们似乎都不起作用。”这无助于我们了解问题所在。请详细说明并解释您遇到的实际问题。