【问题标题】:TextGeometry to always face user?TextGeometry 总是面对用户?
【发布时间】:2012-10-06 20:16:02
【问题描述】:

我已经使用 THREE.TextGeometry 在我的场景中添加了一些文本,并且文本似乎卡在我放置的任何 xy 平面中。有什么方法可以让它始终与用户可读的屏幕保持一致?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    使文本始终面向屏幕(而不是相机):

    mesh.quaternion.copy(camera.quaternion);

    请注意,这与object.lookAt(camera); 不同,因为这将导致不同的方向取决于对象在屏幕上的位置。 Object3D.onBeforeRender 可用于更新每一帧的方向。使用Object3D.frustumCulled = false; 禁用截锥体剔除以确保始终触发回调可能很有用。

    【讨论】:

    • three.js 是基于四元数的。所以mesh.quaternion.copy( camera.quaternion );更可取。
    • @WestLangley:改为四元数。
    【解决方案2】:

    试试

    mesh.lookAt( camera.position );
    

    然后网格的局部 z 轴应指向相机。

    【讨论】:

    • 很酷,这是调整它,现在我如何在移动相机时让它更新?
    • 如果您有render() 函数,请在更改相机位置后将其放入其中。
    • 嗯,越来越近了,但现在它固定在屏幕上,而不是随着场景的其余部分移动
    • @user1750723 你应该使用 HTML 和 CSS 来处理这类东西。
    • @mrdoob 我知道在 three.js 中的文本一直有点难,但是使用 HTML 和 CSS 仍然只适用于覆盖在不需要的场景之上担心遮挡,或者关心文本是否在 z 深度的某个位置,对吧?
    猜你喜欢
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 2012-01-04
    • 2017-12-19
    相关资源
    最近更新 更多