按顶点数对 3D 对象进行排序 C++

时间:2021-02-09 14:19:40

标签: c++ sorting computer-science unreal-engine4 vertices

“创建一个应用程序,对屏幕上显示的*静态网格物体进行可视化排序,按顶点数量。”

*静态网格只是一个 3D 模型(在虚幻引擎 4 中)

这是与挑战一起发送的视觉“指南”:

https://drive.google.com/file/d/1v0-3zEoDugelGWK-U9t4GEHkA0hAuLfk/view?usp=sharing

我知道我应该使用排序算法,但是例如,顶点数如何适合其中

我不明白的是如何根据静态网格体的顶点数(整数)对对象的位置(3D 向量、XYZ)进行排序,以及两把椅子的平移有何不同(查看视频)如果它们具有相同数量的顶点,因为它们是完全相同的静态网格体。这是否意味着它们的目标位置不是设置而是选择,意味着它们的值是恒定的并且存在于排序之前?

我的做法有错吗?

1 个答案:

答案 0 :(得分:0)

选择靠近相机的起点(例如,我们将其命名为带有坐标 x1、y1、z1 的 cameraPos)。选择朝向相机所注方向的某个点(用坐标 x2、y2、z2 观察)。方向向量(我们称之为 dirVec)是 lookAt - cameraPos(x2-x1, y2 - y1, z2 - z1)。这是一个向量,表示相机的大致方向。您对 3d 对象进行排序,现在对它们进行排名 - 例如,顶点最多的对象排名 1,第二个 - 2 等等。现在像这样计算每个对象的位置:pos = cameraPos + dirVec * rank。在这里,您的对象现在可以直观地排序。如果你不知道如何加减向量或乘以向量或这些操作的含义,你应该先熟悉一下。

相关问题