Растянутое изображение на сфере - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь повторить изображение для этого кода - я использую 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);

1 Ответ

0 голосов
/ 04 мая 2020

Ваша фотография не была создана для картирования всей сферы, так как это всего лишь крошечный клочок Луны. Чтобы правильно обернуть изображение над сферой без искажений, вам понадобится изображение с прямой angular проекцией .

Три. js имеет это изображение в папке примеров, вместо этого вы можете использовать:

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

...