我是trijs的新手,如何创造一个天空圆顶

Mod*_*dig 6 three.js

我对three.js很陌生,我花了好几个小时创建了一个天空盒/天空,为我的世界带来了更好的视觉感受(在这种情况下是空间).谷歌搜索,检查教程,在StackOverflow上询问.没有任何效果,或者我在这里得到了一个愚蠢而愚蠢的回答.问题很简单:如何制作天空盒/圆顶?

Mod*_*dig 12

这就是你在threejs做skydome的方法.

var skyGeo = new THREE.SphereGeometry(100000, 25, 25); 
Run Code Online (Sandbox Code Playgroud)

首先是几何.我想要它很大并且做得很大

    var loader  = new THREE.TextureLoader(),
        texture = loader.load( "images/space.jpg" );
Run Code Online (Sandbox Code Playgroud)

加载背景空间的纹理.这里有一点是你需要它来运行服务器才能加载纹理.我使用wamp或括号预览.

在此处为天空盒创建材质

    var material = new THREE.MeshPhongMaterial({ 
        map: texture,
});
Run Code Online (Sandbox Code Playgroud)

将所有内容组合在一起并将其添加到场景中.

    var sky = new THREE.Mesh(skyGeo, material);
    sky.material.side = THREE.BackSide;
    scene.add(sky);
Run Code Online (Sandbox Code Playgroud)

这可能不是最佳解决方案,但对于初学者来说这很容易.易于理解和创造.

  • https://blog.stackexchange.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/阅读本文,你将不知道为什么我做了我做的事,祝你有愉快的一天! (7认同)
  • 我理解,但是当我这样做时,我发现缺乏信息是我做到这一点的原因.只是想要有所帮助,并为一些非常简单的事情节省一些其他人的工作时间.关于three.js的文档并不总是最容易阅读. (6认同)
  • 你不可能在零时间回答你自己的问题.为什么要问它呢? (5认同)
  • 1.为什么`depthWrite`为假?2.什么是`function(){...}?3.为什么这边是'THREE.DoubleSide`? (2认同)
  • 我非常欣赏这一点。下次我会尝试记录我自己解决的问题! (2认同)
  • 这个帖子的守门人很强。谢谢大佬解答。 (2认同)