我只是为three.js建立了一个非常基本的“ hello world”…… 但显然我的3d立方体显示为2d正方形...
js文件的代码是here
const t = THREE;
const scene = new t.Scene();
const camera = new t.PerspectiveCamera(75, window.innerWidth, window.innerHeight, 0.1, 1000);
const renderer = new t.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// create a shape
const geometry = new t.BoxGeometry(1, 1, 1);
// create a material
const material = new t.MeshBasicMaterial({color: 0xFFFFFF, wireframe: true});
const cube = new t.Mesh(geometry, material);
// cube.position.y = 1;
scene.add(cube);
// camera.position.x = 300;
camera.position.z = 5;
// logic
const update = function () {
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
};
// draw scene
const render = function () {
renderer.render(scene, camera);
};
// run render loop (update-render-repeat)
const RenderLoop = function () {
window.requestAnimationFrame(RenderLoop);
update();
render();
};
RenderLoop();
代码的结果为here
感谢您的帮助!
编辑: 很抱歉不包含代码
答案 0 :(得分:1)
您错误地建立了PerspectiveCamera
:
您的方式:
PerspectiveCamera(75, window.innerWidth, window.innerHeight, 0.1, 1000);
正确的方法:
PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
您需要传递比率w/h
,而不是两个单独的w, h
参数。