代码之家  ›  专栏  ›  技术社区  ›  Alessandro Rossi

三角形在网格中更新-SharpDX

  •  0
  • Alessandro Rossi  · 技术社区  · 6 年前

    我正在为DirectX11使用SharpDX C#库。我正在按照“Direct3D渲染食谱”加载外部网格。我需要找到网格和特定光线之间的交点,但问题来了。如果加载网格,然后对世界矩阵执行一些操作(平移/旋转),则用于计算交点的该网格的三角形列表不会随之更新。

    1 回复  |  直到 6 年前
        1
  •  0
  •   ErnieDingo    6 年前

    处理光线投射与原始模型相交的方法相当简单。不过,我会假设你有一个矩阵,用于将模型转换为世界。您需要做的是创建该矩阵的逆矩阵,并将光线投射开始和结束乘以该矩阵。这将为您提供模型局部空间中的光线(模型的未转换版本)。然后你可以调用你的射线投射函数来获得准确的命中位置。这是一个不成文的技巧,不要移动模型,移动光线,这样做既便宜又快。