球体上的拉伸图像



我正在尝试重复此代码上的图像—;我正在使用three.js并用照片覆盖球体。这张照片非常舒展和像素化。我能做什么?

moonSurface = new THREE.Mesh(
new THREE.SphereGeometry(moonRadius -.1, 50, 50), 
new THREE.MeshPhongMaterial({
map: THREE.ImageUtils.loadTexture('https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSfk7ndy7wriATp4pCx3fq4q-5yxc_gHrrT3Wf74PFY7n7VCN3T&usqp=CAU')
})
);
moonSurface.receiveShadow = true;
moon = new THREE.Group();
moon.position.y = -moonRadius;
//floor.add(floorShadow);
moon.add(moonSurface);
scene.add(moon);

你的照片并不是在整个球体上绘制的,因为它只是月球的一小部分。为了在不失真的情况下将图像正确地包裹在球体上,您需要一个具有等矩形投影的图像。

Three.js的examples文件夹中有这个图像,您可能想使用它:

https://github.com/mrdoob/three.js/blob/dev/examples/textures/planets/moon_1024.jpg

最新更新