Я делаю некоторую работу, используя выбор лучей в проекте DirectX, и мне просто интересно, существует ли фактический тип объекта ‘ray’? (а не просто хранение переменных направления / источника)
Я знаю, что мог бы создать что-то вроде
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;
Увидеть Руководство по программированию DirectXMath на MSDN, в частности Работа с D3DXMath
Вы также можете использовать SimpleMath обертка в Набор инструментов DirectX, который имеет Ray
класс определен.