Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何合并一个;“移动”;THREE.js中的背景_Javascript_Three.js - Fatal编程技术网

Javascript 如何合并一个;“移动”;THREE.js中的背景

Javascript 如何合并一个;“移动”;THREE.js中的背景,javascript,three.js,Javascript,Three.js,我在这个网站上看到: 如您所见,移动摄影机时,渐变背景具有不同的360度着色 像这样的东西会是THREE.js的哪一部分 有人能给我指出正确的方向吗?正如@gaitat在上面的评论中所说的——背景是一个包裹在球体中的立方体地图。这只是一个应用了纹理贴图的普通three.js材质。以下是已清理页面以使其可读的代码: var backgroundSphere = new THREE.Mesh( new THREE.SphereGeometry(30,10,10), new THREE

我在这个网站上看到:

如您所见,移动摄影机时,渐变背景具有不同的360度着色

像这样的东西会是THREE.js的哪一部分


有人能给我指出正确的方向吗?

正如@gaitat在上面的评论中所说的——背景是一个包裹在球体中的立方体地图。这只是一个应用了纹理贴图的普通three.js材质。以下是已清理页面以使其可读的代码:

var backgroundSphere = new THREE.Mesh(
    new THREE.SphereGeometry(30,10,10),
    new THREE.MeshBasicMaterial({
        map: (new THREE.TextureLoader).load("assets/images/textures/pano.jpg"),
        side: c.DoubleSide
    })
);
模型上的发光材质是使用相同的环境贴图实现的:

var shinyMaterial = new THREE.MeshStandardMaterial({
    color: 16777215,
    metalness: 1,
    roughness: -1,
    envMap: <A loaded cube texture (the same as the pano image above)>,
    side: c.DoubleSide,
    shading: c.FlatShading
});
var shinymatary=新的三点网格标准材质({
颜色:16777215,
金属度:1,
粗糙度:-1,
环境地图:

页面正在使用:three.js[r79],我可以看到。

以下是流程

  • 创建资源-从某些来源获取360度全景图像。Photoshop使其模糊
  • 在Threejs设置中创建球体。使其比例比主模型比例高10倍
  • MeshLambertMaterial
    涂抹在其上,正面朝后
  • 加载在场景中编辑的360图像
  • 以发射贴图的形式应用图像。确保发射颜色设置为白色
  • 渲染

  • 该对象位于一个带有贴图的大球体内。如果你用它制作了一个可播放的片段,它看起来会很棒。感谢你为我设置了正确的方向。我能够应用立方体贴图,尽管我使用了CubeTexturePass。你是shinyMaterial的示例吗?我共享的站点是如何将立方体纹理显示为非常平滑的渐变的我有点麻烦。我的很有趣,分辨率很低,我想要一个平滑的渐变