作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 This Example (归功于@Mugen87)-正如您可以看到贴花被添加到贴花数组中,我添加了一个从贴花创建列表的函数(添加贴花,您将看到它出现在左上角)-我想知道在选择一个时将相机指向指针的确切位置的方法是什么,所以假设我在头后部添加了贴花 - 我想在不手动旋转的情况下返回它 - 所以我可以点击它的名字 - 并获得正确的位置。
我想这种方法还包括保存交叉点,然后设置相机位置……像这样:
click on decal name function :
//intersectionaArr - store intersections
camera.position.set(intersectionaArr[index of the decal].normal);
camera.lookAt(intersectionaArr[index of the decal].point);
camera.updateProjectionMatrix ();
最佳答案
由于您已经有了交点的位置以及相应表面法线的方向,您可以执行以下操作来计算相机的位置:
const normal = new THREE.Vector3( 0, 0, 1 ).applyEuler( orientation );
const camPosition = new THREE.Vector3().copy( position ).add( normal.multiplyScalar( 50 ) );
所以这个想法是通过从交点开始并沿着表面法线移动一定距离来计算新的相机位置。现在是 50 个世界单位。
关于three.js - 如何轨道/缩放相机到贴花/光线转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64799389/
如何在三个 js 中向 3d OBJ 模型添加贴花? var loader = new THREE.OBJMTLLoader(); loader.addEventListene
我正在使用 THREE.js 加载 collada 模型。该模型代表丘陵地带。现在模型有一个重复的纹理(草)。 我想要做的是为模型添加贴花(不确定这是否是正确的命名法)。基本上我有一 block 沙子
我尝试绘制 decals 和 background 两种纹理,但只有 decals 的 alpha 部分变成白色。 我只是尝试了以下方法。 绘制 2 个纹理(背景和贴花) 添加 glBlendFunc
我是一名优秀的程序员,十分优秀!