DirectX 边界框绘制

问题描述

这个想法是在我的 DiretXTK 模型显示后将边界框绘制为屏幕上的 2D 角。

我在 std::vector<DirectX::SimpleMath::Vector3> 中得到了 DirectXKT 的边界框角,所以

auto mf = m_world * m_view * m_proj;
D3D11_VIEWPORT vp;
UINT j = 1;
ctx->RSGetViewports(&j,&vp);
for (auto& c : corners)
{
    DirectX::SimpleMath::Vector3 ft = DirectX::XMVector3Transform(c,mf);

    float scalex = vp.Width / 2;
    float scaley = vp.Height / 2;

    float screenx = ft.x * scalex;
    float screeny = ft.y * scaley;

}

这些坐标无效,我在将每个角的 XYZ 转换为屏幕投影时做错了。

非常感谢您的帮助。

解决方法

DirectX Tool Kit wiki 中,我有一个 DebugDraw 助手,它专门设计用于使用 DirectX 工具包的 PrimitiveBatch 绘制 DirectXMath 边界体积。

this topic page

您可能还想查看 Collision 示例。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...