Three.js - 缩小时事物消失了

aal*_*dim 7 html javascript three.js

在我的three.js项目中,我使用高z位置拍摄相机.当z位置太高时,我的场景变黑.所以,当我缩小它时会变黑.但我不希望这种情况发生.

这就是它的用途 camera.position.z = 3000; http://qs.lc/uui7g

当我缩小时,只需一个缩放,就像这样: 在此输入图像描述

对于我使用OrbitControls的控件,我的相机就像:

var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 3000);
camera.position.z = 3000;
Run Code Online (Sandbox Code Playgroud)

这里是行星和一些行星轨道的代码:

var scene = new THREE.Scene();

var material = new THREE.MeshLambertMaterial({
    map: THREE.ImageUtils.loadTexture("assets/img/sun.jpg")
});

var sun = new THREE.Mesh(new THREE.SphereGeometry(200, 50, 50), material);
scene.add(sun);

var orbitLine = function(radius,y)
{
    var segments = 64,
        line_material = new THREE.LineBasicMaterial( { color: 0xffffff } ),
        geometry = new THREE.CircleGeometry( radius, segments );

    geometry.vertices.shift();

    var orbit = new THREE.Line( geometry, line_material );
    if(y)
        orbit.position.y=y;
    else if(!y)
        orbit.position.y=0;

    scene.add(orbit);
};
var Mercury_orbit = orbitLine(400,-70);
var Venus_orbit = orbitLine(700,70);
var Earth_orbit = orbitLine(900,70);
var Mars_orbit = orbitLine(1250,70);
var Jupiter_orbit = orbitLine(3000,70);
Run Code Online (Sandbox Code Playgroud)

无法提供一个小提琴因为某些原因它不起作用.如果您需要更多代码,请在评论中告诉我,我会添加它.

有任何想法吗?谢谢.

gai*_*tat 5

相机的远平面为3000,这意味着将剪切并绘制3000个单位以外的所有内容。

同时,您已将相机放置在(0,0,3000),因此您正处在事物开始消失的位置。