gpt4 book ai didi

javascript - three.js - 如何设置相机位置?

转载 作者:行者123 更新时间:2023-11-30 08:23:26 25 4
gpt4 key购买 nike

我是 three.js 和 webgl 编程的新手。所以我在 three.js 中创建了一个盒子并且它工作正常但问题是当我在 z 轴上设置相机位置时(例如:camera.position.z = 2;)盒子就消失了。任何人都可以解释为什么会发生这种情况以及如何正确设置相机的位置?

尝试在 fiddle 中取消注释 camera.position.z = 2;

function init() {

var scene = new THREE.Scene();

var box = getBox(1, 1, 1);

scene.add(box);

var camera = new THREE.Camera(45, window.innerWidth/window.innerHeight, 1, 1000 );
//camera.position.z = 2;

var renderer = new THREE.WebGLRenderer();

renderer.setSize(window.innerWidth, window.innerHeight);
document.getElementById("webgl").appendChild(renderer.domElement);

renderer.render(scene, camera);
}

function getBox(w, h, d) {
var geometry = new THREE.BoxGeometry(w, h, d);
var material = new THREE.MeshBasicMaterial({
color : 0x00ff00
});

var mesh = new THREE.Mesh(geometry, material);

return mesh;
}

init();

最佳答案

不确定您是否尝试使用正交相机或透视相机创建此场景,但您通常需要按类型指定相机(即 THREE.PerspectiveCamera(...))。我还添加了一些额外的行以确保相机配置正确,即将“LookAt”点设置为 (0,0,0) ,以及通过 THREE.Vector3.set( ...) 方法。

以下是我对您的代码所做的调整:

function init() {

var scene = new THREE.Scene();

var box = getBox(1, 1, 1);

scene.add(box);

var camera = new THREE.PerspectiveCamera(70,
window.innerWidth/window.innerHeight, 0.1, 1000 ); // Specify camera type like this
camera.position.set(0,2.5,2.5); // Set position like this
camera.lookAt(new THREE.Vector3(0,0,0)); // Set look at coordinate like this

var renderer = new THREE.WebGLRenderer();

renderer.setSize(window.innerWidth, window.innerHeight);
document.getElementById("webgl").appendChild(renderer.domElement);

renderer.render(scene, camera);
}

function getBox(w, h, d) {
var geometry = new THREE.BoxGeometry(w, h, d);
var material = new THREE.MeshBasicMaterial({
color : 0x00ff00
});

var mesh = new THREE.Mesh(geometry, material);

return mesh;
}

init();

关于javascript - three.js - 如何设置相机位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49836546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com