【问题标题】:Checking if a Vector3 is being shown on the screen检查 Vector3 是否显示在屏幕上
【发布时间】:2013-08-22 13:13:50
【问题描述】:

我想知道是否有一种方法可以检查相机是否正在查看 3D 空间中的 Vector3 点,或者检查该点是否显示在屏幕上。

【问题讨论】:

  • 20 分钟前,您刚刚问了一个您甚至不打算参与的问题 - 没有答案、评论或“有没有帮助”。你问的问题很简单——但我看不出你已经为寻找答案付出了任何努力。
  • 为了清楚起见,当我看到它时,我已经评论了你对我的第一个问题的回答 - 我只需要等待 20 分钟,直到我能够发布第二个问题。其次,这个问题来自我的想法,即渲染我用于相机的 RenderTarget2D 不是每一帧,而是只有当玩家看到镜子时。正如你所说,我已经想过在我的第一个问题上发布这个简单的问题,但由于这是一个完全不同的问题,我决定将它作为自己的问题发布。
  • 好的,很抱歉。

标签: c# 3d xna camera


【解决方案1】:

是的,只需将您的视图和投影矩阵输入到这样的边界截头体中:

//class scope variables
BoundingFrustum boundingFrustum;

//in the init method
boundingFrustum = new BoundingFrustum();

//In the Update method or wherever you need to run a check check
boundingFrustum.Matrix = view * projection;

bool isPointInView = boundingFrustum.Contains(Vector3ToTest);

【讨论】:

    猜你喜欢
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    相关资源
    最近更新 更多