hey*_*cam 4 javascript 3d camera matrix three.js
我试图在一个简单的three.js场景中手动设置相机的矩阵.我已经尝试将matrix.set方法与matrixAutoUpdate = false一起调用,但是在场景渲染的同时,它不会像我希望的那样随时间变化.我也尝试用camera.matrix =设置矩阵,结果相同.让我觉得我错过了一些关于如何让对象"接受"手动设置值的东西.我也尝试过applyMatrix,但这似乎完全做了别的事情.
任何建议非常感谢 - 谢谢!
这是代码中的一支代码:
http://codepen.io/heyscam/pen/phflL
这里只是JS:
var WIDTH = 640;
var HEIGHT = 360;
var VIEW_ANGLE = 31.417;
var ASPECT = WIDTH / HEIGHT;
var NEAR = 0.1;
var FAR = 10000;
var $container = $('#container');
console.log($container);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(WIDTH, HEIGHT);
$container.append(renderer.domElement);
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(
VIEW_ANGLE,
ASPECT,
NEAR,
FAR
);
scene.add(camera);
var cube = new THREE.Mesh(
new THREE.CubeGeometry(200, 200, 200)
);
scene.add(cube);
var frame = 0;
animate();
function animate() {
camera.matrixAutoUpdate = false;
camera.matrix.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 500 + (frame * 10), 0, 0, 0, 1);
render();
frame++;
requestAnimationFrame(animate);
}
function render() {
renderer.render(scene, camera);
}
Run Code Online (Sandbox Code Playgroud)
设置相机矩阵后,您需要拨打电话
camera.updateMatrixWorld( true );
Run Code Online (Sandbox Code Playgroud)
你在做什么是不可取的.
three.js不是这样设计的.最好不要直接弄乱对象矩阵 - 除非你真的知道自己在做什么,并理解库的内部工作原理.
而只是设置相机的quaternion(或rotation)position,,和scale,让库更新矩阵.
three.js r.60
| 归档时间: |
|
| 查看次数: |
5078 次 |
| 最近记录: |