javascript - Three.js:父级旋转的 LookAt
问题描述
我有一些飞机,它们是空 Object3D 的父级。这些飞机总是像精灵一样面向相机。除非我旋转父级,否则它工作正常。Three.js 文档说 . lookAt 不支持转换的父母 所以我想弄清楚如何手动解决它。这是我现在拥有的:
plane.onBeforeRender = function( renderer, scene, camera,
geometry, material, group ){
var worldCamPos = new THREE.Vector3();
camera.getWorldPosition(worldCamPos);
this.worldToLocal(worldCamPos);
this.lookAt(worldCamPos);
// this.quaternion.copy(camera.quaternion);//this one rotates in local space of the container
};
所以我试图将相机的位置转换为飞机所在的空间,并将其用作lookAt
目标。问题是,这架飞机有点像在看相机,但它不断闪烁,好像从默认旋转到所需旋转,来回交换。我没有在这里连接任何东西,所以我不明白为什么会这样。如果有人能指出更优雅的解决方案,我将不胜感激,也许是四元数。
解决方案
推荐阅读
- python-3.x - 如何转换数据框
- java - Json转换java
- sql - MS SQL 新手,必须找出同一列第一行和第二行的小时数差异
- vb.net - 在 Visual Studio 2013 中打开 vb.net 解决方案后字符串的语法变形
- xcode - 在没有 Xcode 项目和其他应用程序的情况下,如何修改已编译 macOS 应用程序的样式?
- axapta - Dynamic AX 2012 R3 写入客户的空财务维度
- django - 无法在 UpdateView (Django) 中的 Queryset 中的对象中显示模板中新添加的属性
- javascript - 如果密码正确,则重定向
- python - 如何组合多个查询?
- javascript - 检查日期列表中是否存在月份和年份的有效方法