场景中的静态对象-Three.js

米格尔·谢尔·加西亚(Miguel Xoel Garcia)

我的场景中有两个物体。我正在使用

 <script src="js/controls/LeapTrackballControls.js"  ></script>

来移动相机,因此感觉就像物体根据我的手的旋转而旋转一样。

问题是另一个对象也在移动,我希望它始终位于我的面前。我的意思是,即使相机移动了,对象也始终位于画布/浏览器内部的同一位置。

抱歉,如果我没有正确解释自己。

任何帮助表示赞赏。

编辑:

var controls = new THREE.LeapTrackballControls( camera , controller );

因此,我在场景中间有一个球体。我使用LeapTrackball库在场景中心附近移动相机。这使用户感到球体围绕其中心旋转。

model = new THREE.Mesh(modelGeo, modelMat);
model.geometry.dynamic = true;
model.position.set(0, 0, 0);
scene.add(model);

我的问题是我有另一种形状:

myMesh = new THREE.Mesh(circleGeometry, material);
myMesh.position.set(0, 0, 10);
scene.add(myMesh);

这也受相机旋转的影响。我想要的是保持球体的“假旋转”,而另一个网格保持在屏幕的中间(0,0,10)。

好的,这是我的相机对象。

var camera = new THREE.PerspectiveCamera(55,window.innerWidth / window.innerHeight,0.1,5000);

还有我的渲染功能,用于更新相机的控制/运动。

   function render() {
        controls.update();
        renderer.render(scene, camera);
        doMouse();
        if(useOrbitControls){
            orbitControls.update();
        }
    }

我使用的是Leap控制器,这是建立它的功能:

function leapMotion() {
                var controllerOptions = {
                    enableGestures: true
                    , background: true
            , frameEventName: 'animationFrame'
                , };

[...]

    controller.on('frame', onFrame);

基本上,这意味着onFrame函数每次接收到一个帧时都会完成(每秒60个aprox)。

    function onFrame(frame){
[...]
        }

仅此而已,所有的魔力都来自库,您可以在这里找到:

https://leapmotion.github.io/Leap-Three-Camera-Controls/

西兰吉

如果要将对象(例如十字准线)固定在相机的前面,可以通过将该对象添加为相机的子对象来实现。使用这样的模式:

scene.add( camera ); // required when the camera has a child
camera.add( object );
object.position.set( 0, 0, - 100 ); // or whatever distance you want

three.js r.71

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

缓慢地从Three.js场景中删除许多对象

来自分类Dev

three.js从场景中删除特定对象

来自分类Dev

在画布中渲染Three.js场景

来自分类Dev

THREE.js静态场景,检测Webgl渲染何时完成

来自分类Dev

如何在three.js中与场景中的对象进行交互?

来自分类Dev

取消在THREE.js中将对象加载到场景中

来自分类Dev

拖动以更改Three.js场景中3D模型对象的位置

来自分类Dev

three.js:按名称或ID访问场景对象

来自分类Dev

Three.js,从Collada导入的相机无法查看对象场景

来自分类Dev

在Three.js场景中添加多个球体

来自分类Dev

Three.js:for场景中每个网格的循环?

来自分类Dev

如何在three.js中访问场景元素

来自分类Dev

如何在three.js中获得整个场景的boundingSphere?

来自分类Dev

场景中的伪像Three.js / editor

来自分类Dev

在three.js中对“子场景”进行光线投射

来自分类Dev

无法从Three.js场景中删除精灵?

来自分类Dev

如何在three.js中访问场景元素

来自分类Dev

如何从内存中擦除场景和网格?Three.js

来自分类Dev

在场景中添加THREE.Geometry时,Three.JS VRAM内存泄漏

来自分类Dev

在three.js中旋转对象

来自分类Dev

如何清除THREE.JS场景

来自分类Dev

无法获得场景以Three.js呈现

来自分类Dev

Three.js获得场景的中心

来自分类Dev

Three.js对象居中

来自分类Dev

Three.JS对象裁剪?

来自分类Dev

Three.js对象居中

来自分类Dev

Three.js:如何为CSS3DRenderer场景获取DOM对象?

来自分类Dev

Three.js 将重复纹理应用于 JSON 场景对象

来自分类Dev

Three.js:使用场景对象子集进行光线投射