繁体   English   中英

three.js - 适合背景图像全景

[英]three.js — fit a background image panorama

我想把这个图像 - https://hdfreefoto.files.wordpress.com/2014/09/bright-milky-way-over-the-lake-at-night.jpg - 作为我的全景背景three.js场景。

我有以下代码:

var sphere = new THREE.SphereGeometry(200, 200, 32);
sphere.applyMatrix(new THREE.Matrix4().makeScale(-1, 1, 1));

var sphereMaterial = new THREE.MeshBasicMaterial();
sphereMaterial.map = THREE.ImageUtils.loadTexture(<path to above image>);

var sphereMesh = new THREE.Mesh(sphere, sphereMaterial);
scene.add(sphereMesh);

然而

  1. 当我通过纸板查看并旋转360度时,我看不到背景旋转360度(但小于那个)。 如何对齐?

  2. 当我在笔记本电脑上查看时,我可以旋转图像,但它似乎不适合屏幕尺寸

是否有关于如何将给定背景图像完美地拟合为three.js全景图的指南?

据我所知,没有指南,但您可以使用three.js示例进行测试:

这里也有立方图 ,但它不是创建全景图的常用或简单方法,这种情况下它适用于CSS,而不是webGL。

正如您在webGL equirectangular全景代码中看到的,正确的代码将是:

var geometry = new THREE.SphereGeometry( 500, 60, 40 );
geometry.scale( - 1, 1, 1 );
var material = new THREE.MeshBasicMaterial( {
  map: new THREE.TextureLoader().load( 'textures/2294472375_24a3b8ef46_o.jpg' )
} );
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM