为了账号安全,请及时绑定邮箱和手机立即绑定

三.js 初始化与靠近相机的对象

三.js 初始化与靠近相机的对象

达令说 2022-10-21 11:10:21
在我的 three.js 项目中,我像这样设置我的场景和相机:        var container = document.getElementById('container');        renderer = new THREE.WebGLRenderer({ antialias: true });        renderer.setPixelRatio(window.devicePixelRatio);        renderer.setSize(window.innerWidth, window.innerHeight);        renderer.setAnimationLoop(render);        renderer.outputEncoding = THREE.sRGBEncoding;        renderer.toneMapping = THREE.ACESFilmicToneMapping;        renderer.toneMappingExposure = 1.25;        container.appendChild(renderer.domElement);        window.addEventListener('resize', onWindowResize, false);        stats = new Stats();        container.appendChild(stats.dom);        //        camera = new THREE.PerspectiveCamera(40, window.innerWidth / window.innerHeight, 0.1, 100);        camera.position.set(3.5, 2, - 2.5);        controls = new OrbitControls(camera, container);        controls.target.set(0, 0.5, 0);        controls.update();        scene = new THREE.Scene();        scene.background = new THREE.Color(0xeeeeee);        scene.environment = new RoomEnvironment(renderer);        scene.fog = new THREE.Fog(0xeeeeee, 10, 50);        ...好吧,我的场景是这样开始的:我想开始加倍我的对象,像这样:我尝试:camera.zoom.set(2);但什么也没发生所以我尝试定义一个vector3(2,2,2)并缩放我的对象:myobj.scale.set(myVector3);没有什么。有人可以帮助我用更大的对象开始我的场景吗?
查看完整描述

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

如果你这样做:

camera.zoom.set(2);

您必须确保像这样更新项目矩阵:

camera.updateProjectionMatrix();

关于另一个问题,Vector3.set()只接受三个标量作为参数。您不能将该方法与 type 的单个参数一起使用Vector3。所以你可以这样做:

myobj.scale.set(myVector3.x, myVector3.y, myVector3.z);

甚至更好:

myobj.scale.copy(myVector3);


查看完整回答
反对 回复 2022-10-21
  • 1 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信