在我的three.js项目中,我使用高z位置拍摄相机。 当z位置太高时,我的场景变黑。 所以,当我缩小它时会变黑。但我不希望这种情况发生。
这就是camera.position.z = 3000;
的用法
当我缩小时,只需一个缩放,就像这样:
对于我使用OrbitControls的控件,我的相机就像:
var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 3000);
camera.position.z = 3000;
这里是行星和一些行星轨道的代码:
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);
由于某些原因它不起作用,无法提供小提琴。 如果您需要更多代码,请在评论中告诉我,我会添加它。
有什么想法吗? 感谢。
答案 0 :(得分:3)
你的相机的远处飞机是3000,这意味着3000个单位以外的所有物都将被剪掉而不是被画出来。
同时您将相机放在(0,0,3000)处,这样您就可以处于开始消失的位置。