- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最佳答案
Plane.setFromNormalAndCoplanarPoint
可以用来实现这一点。
举一个简单的例子,我们假设您的相机绕原点运行。在这种情况下,您可以轻松地将飞机设置为面向相机:
// assume plane is a THREE.Plane
plane.setFromNormalAndCoplanarPoint( camera.position.clone().normalize(), scene.position )
这使用相机的(标准化)位置作为平面的法线,这在本例中有效。
如果你的相机位于自由空间中的某个地方,朝任意方向看,这会有点困难,但主要是可视化。
请记住,相机位于其自己的“空间”中,即位于原点,并向下看 -Z
轴。现在想象一下您的飞机需要在该空间内的何处创建。假设它可以放置在 ( 10, 10, -10 )
处。我们可以再次使用一些简单的操作来计算法线。 “困难”的部分是将所有内容移动到世界空间中,但 Three.js 也为此提供了便利的功能。
// in camera space...
let planePosition = new THREE.Vector3( 10, 10, -10 )
let normal = planePosition.clone().inverse().normalize()
// convert to world space...
camera.localToWorld( planePosition )
camera.localToWorld( normal )
normal.sub( camera.position ) // fix the normal based on the camera position
plane.setFromNormalAndCoplanarPoint( normal, planePosition )
关于上面代码的一个注释,planePosition.clone().inverse().normalize()
获取平面位置的副本,将其反转到原点,然后对其进行标准化。这具有创建指向相机的法线的效果,因为相机位于其自己空间的原点。这就是为什么在将所有内容转换为世界坐标后需要通过相机位置调整法线的原因。
关于javascript - 如何使 THREE.Plane 始终面向相机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52858125/
我刚开始使用 PyPNG。但是在元数据中有一项我不明白:飞机。所以两个文件的两个例子: 文件 1 'bitdepth': 8, 'interlace': 0, 'planes': 1, 'greysc
我正致力于确定两个 3D 对象(三角形面)之间的关系(边界/内部交叉点)并偶然发现了 Shapely ,我有兴趣使用它而不是实现我自己的点/线段/射线/三角形相交函数。 但是,我遇到了以下问题: >>
我有一个比例为 (64,1,36) 且旋转为 (90,-180,0) 的平面,并且需要 2d 坐标格式的光线转换的局部坐标: (0,0)-------(64,0) | |
Plane没有 lookAt 方法,所以我不能只执行 lookAt(camera.position)。相反,它是用 normal 定义的。 ,表示为 Vector3。如何让这架飞机始终面向相机? 最佳
使用scatterplot3d在 R 中,我试图从观察到回归平面绘制红线: wh 0 s3d$points3d(x[wh], z[wh], y[wh], pch = 19) 残差 # scatter
我已经加载了纹理,但它似乎显示纹理的单一颜色。我首先定位了纹理坐标,但似乎无法使纹理正确显示。预期的纹理如下: 256x256 纹理正在显示,但看起来是纯色。也许放大到纹理的一个像素,或者纹理坐标的扭
嗨,有人可以看看这个程序吗?我不明白为什么输出是 _c。书上的回答是“一旦s3()抛出异常给s2(),s2()抛给s1(),s2()的代码就不会再执行了”。为什么不呢? public class Pl
我有一个由模拟生成的数据点组成的大网格,与 xy 平面中的每个点相关联的是一个 z 值(模拟的结果)。 我将 x、y、z 值转储到一个纯文本文件中,我想做的是测量 xy 平面(即 z=0)和由数据点。
我尝试为内存使用拍摄图像,但 imageProxy.planes[0].remaining() 始终为 0。因此我无法从结果中获取位图。这是错误还是我做错了什么? 这是我绑定(bind)相机的方法:
我目前正在研究 1.6 版的服务网格 Istio。数据平面(Envoy 代理)由控制平面配置。尤其是 Pilot( istiod 的一部分)负责将路由规则和配置传播给特使。我想知道通信是如何工作的?
有谁知道如何在 THREEJS 中的平面图元(planemesh?/mesh)上发光?我用谷歌搜索并找到了立方体和球体的发光,但这些更像是将对象/网格封装在另一个具有透明 Material 的对象中,
我正在开发一款纸牌游戏,其中纸牌以透视方式显示在 table 上。 table 和卡片都有相同的 x 旋转 (45°)。 随着卡片离玩家越来越远(在 table 上“向上”移动),我希望它们变小。我认
在 x265 编码器 ( https://x265.readthedocs.org/en/default/api.html ) 的编码过程中,我想在新图像编码后将图像像素值(特别是 Y channel
在 openGles 中,减少平截头体近平面(如您所见 here )会使物体看起来更近。我来自 3d,例如在 Vray 中,更改近裁剪平面不会修改距离,只会裁剪一些几何体。 为什么改变平截头体的近平面
我正在尝试开发一个应用程序来渲染我手腕上 watch 的 3D 模型。但是 Sceneform SDK 只检测到一个平面。 我尝试通过增强手腕的图片来增强图像,但由于特征点太少而没有检测到我的手腕。
使用 SpriteKit,是否可以让两个节点相互碰撞,但是当引入另一个节点时,物理原理会发生变化吗? 例如,考虑以下 3 个节点: - 对象 - Object_Hole - 播放器 因此,包含一个 P
有没有办法轻松地动态改变平面的宽度和高度?下面的代码无效。 plane.geometry.parameters.width = width; plane.geometry.parameters.hei
我正在学习 ARKit 并尝试将对象放置在检测到的平面上。但它不能正常工作,并且平面和 3D 对象之间存在空间。 这是我的平面检测代码: func renderer(_ renderer: SCNSc
我对 C++ 的 GLM 库还很陌生,所以我遇到了一些问题。我有一个由一个位置和两个跨 vector 组成的平面,以及一条包含它的位置和方向的线 - 所有值都是 glm::vec3。 struct P
我可以使用 normal 和常量 w 定义一个 CSG.Plane,如下所示: CSG.Plane = function(normal, w) { this.normal = normal;
我是一名优秀的程序员,十分优秀!