网格中的三角形更新 - SharpDX
Triangles Update in Mesh - SharpDX
我正在使用适用于 DirectX11 的 SharpDX C# 库。我正在按照 "Direct3D Rendering Cookbook" 加载外部网格。我需要找到该网格和特定光线之间的交点,但问题来了。如果我加载网格然后对世界矩阵 (translation/rotation) 执行一些操作,则我用来计算交点的该网格的三角形列表不会因此更新。
处理光线投射与原始模型相交的方法相当简单。不过,我会假设您有一个用于将模型转换为世界的矩阵。您需要做的是创建该矩阵的逆矩阵,并将开始和结束的光线投射乘以该矩阵。这为您提供了模型局部 space 中的光线(模型的未转换版本)。然后你可以调用你的光线投射函数来获得准确的位置命中。这是那些不成文的技巧之一,不要移动模型,移动射线,这样做更便宜也更快。
我正在使用适用于 DirectX11 的 SharpDX C# 库。我正在按照 "Direct3D Rendering Cookbook" 加载外部网格。我需要找到该网格和特定光线之间的交点,但问题来了。如果我加载网格然后对世界矩阵 (translation/rotation) 执行一些操作,则我用来计算交点的该网格的三角形列表不会因此更新。
处理光线投射与原始模型相交的方法相当简单。不过,我会假设您有一个用于将模型转换为世界的矩阵。您需要做的是创建该矩阵的逆矩阵,并将开始和结束的光线投射乘以该矩阵。这为您提供了模型局部 space 中的光线(模型的未转换版本)。然后你可以调用你的光线投射函数来获得准确的位置命中。这是那些不成文的技巧之一,不要移动模型,移动射线,这样做更便宜也更快。