在这里,我要完成一项相当简单的工作:我使用THREE.js显示在planeGeometries上映射的相当数量(100+)的JPG。其中一些jpgs是垂直的,另一些是水平的,尺寸往往略有不同。 这里是for循环简化
for (i = 0; i < projectsNb; i++) {
var texture = new THREE.MeshBasicMaterial({
map: THREE.ImageUtils.loadTexture("images/" + xmlProjects[i].getAttribute('img') + ".jpg") });
var geometry = new THREE.PlaneBufferGeometry( 1, 0.75 ); //Width and Height of my plane
geometry.name = xmlProjects[i].getAttribute('nom');
var planProj = new THREE.Mesh( geometry, texture );
planProj.position.x = xmlProjects[i].getAttribute('x');
planProj.position.y = xmlProjects[i].getAttribute('y');
planProj.position.z = xmlProjects[i].getAttribute('z');
scene.add( planProj );
}
因此,我需要能够改变平面几何的尺寸:我想要宽度和高度值。 似乎jQuery需要第二次加载图像, 我不能简单地读取文件的值,如:
var newImg = new Image();
newImg.src = ("images/" + xmlProjects[i].getAttribute('img') + ".jpg");
console.log( newImg.width );
和三个js无法访问图像的像素,例如
var texture = new THREE.MeshBasicMaterial({
map: THREE.ImageUtils.loadTexture("images/" + xmlProjects[i].getAttribute('img') + ".jpg")
});
console.log( texture.map.image.width );
我已经在网上寻找答案了。似乎不可能以合理的方式:(
有什么想法吗? :)