我在 DirectX 项目中使用光线拾取做了一些工作,我只是想知道是否存在实际的“光线”对象类型?(而不仅仅是存储方向/原点变量)
我知道我可以创造类似的东西
struct ray
{
D3DXVECTOR3 direction
D3DXVECTOR3 origin
};
但是有什么东西已经存在了吗?我目前在 DX9 工作,但我愿意接受较新版本的 DirectX 中的答案。
我在 DirectX 项目中使用光线拾取做了一些工作,我只是想知道是否存在实际的“光线”对象类型?(而不仅仅是存储方向/原点变量)
我知道我可以创造类似的东西
struct ray
{
D3DXVECTOR3 direction
D3DXVECTOR3 origin
};
但是有什么东西已经存在了吗?我目前在 DX9 工作,但我愿意接受较新版本的 DirectX 中的答案。
与其使用传统的 D3DXmath,不如考虑DirectXMath,尽管该库也只使用原点位置和方向向量来表示BoundingSphere
、BoundingBox
、BoundingOrientedBox
和BoundingFrustum
类的射线以及TriangleTests
命名空间
bool Intersects( _In_ FXMVECTOR Origin, _In_ FXMVECTOR Direction, _Out_ float& Dist ) const;
请参阅 MSDN 上的DirectXMath 编程指南,尤其是使用 D3DXMath
您还可以使用DirectX Tool Kit中的SimpleMath包装器,它定义了一个类。Ray