выбор объекта с помощью щелчка мыши в direct3d (управляемый directx)

#directx #direct3d

#directx #direct3d

Вопрос:

в принципе, я хочу выбрать объект с помощью щелчка мыши в direct3d (управляемый directx) C #. Мне нужно преобразовать 2D-точку в 3D-точку. После поиска в Google я обнаружил, что могу использовать выбор или луч. вот пример использования луча http://msdn.microsoft.com/en-us/library/bb203905.aspx

моя проблема, если я реализую ray, заключается в том, что я не могу найти GraphicsDevice.Окно просмотра.Отменить проектирование в direct3d. Если есть другое решение, пожалуйста, скажите мне.

Обновить:

вот что я сделал:

 protected override void OnMouseClick(MouseEventArgs e)
    {
        base.OnMouseClick(e);
        int x = e.X;
        int y = e.Y;
        Vector3 nearsource = new Vector3((float)x, (float)y, 0f);
        Vector3 farsource = new Vector3((float)x, (float)y, 1f);

        nearsource.Unproject(device.Viewport, device.Transform.Projection, device.Transform.View,device.Transform.World);
        farsource.Unproject(device.Viewport, device.Transform.Projection, device.Transform.View, device.Transform.World);
        Vector3 direction=nearsource-farsource;
        direction.Normalize();
        }
  

Проблема в том, что матрица farsouce имеет значение NaN

Ответ №1:

Управляемый DirectX устарел в течение долгого, долгого времени. Я бы предложил использовать более поддерживаемый API, такой как SlimDX.

Небольшой поиск в Google выявил этот поток, который, похоже, является тем, что вы хотите в SlimDX.