绘制原始3d坐标的简单方法



我试图逆向工程一些opengl调用,我有一些原始顶点数据。为了生成网格,我想将其中一些数据绘制为3D坐标。因为我不知道顶点应该如何组合在一起,所以工具应该假设所有顶点都连接到所有其他顶点,然后显示最终实体的表面。理想情况下,我应该能够旋转视图,这样我就可以从不同的角度看到它的样子。有什么免费且易于使用的工具吗?最好的选择是什么?

你很可能只是使用点云和一些基本的视口/矩阵设置(请查找它)。

点云实际上就是:二维或三维空间中的点的集合。

要在经典的OpenGL中绘制一个,你可以做如下简单的事情(注意,这需要一个较旧的上下文版本和/或兼容性上下文;它不直接支持OpenGL ES):

glBegin(GL_POINTS);
    // Now, for each of your vertices, just submit the coordinates:
    glVertex3f(x, y, z);
glEnd();

工具应该假设所有顶点连接到所有其他顶点

你不会想那样做的。它的复杂度是阶乘,它增长得非常非常快:

 0!      1  
 1!      1
 2!      2
 3!      6
 4!      24
 5!      120
 6!      720
 7!      5040
 8!      40320
 9!      362880
10!      3628800
11!      39916800
12!      479001600
13!      6227020800
14!      87178291200
15!      1307674368000
16!      20922789888000
17!      355687428096000
18!      6402373705728000
19!      121645100408832000
20!      2432902008176640000
21!      51090942171709440000
22!      1124000727777607680000
23!      25852016738884976640000
24!      620448401733239439360000
25!      15511210043330985984000000
26!      403291461126605635584000000
27!      10888869450418352160768000000
28!      304888344611713860501504000000
29!      8841761993739701954543616000000
30!      265252859812191058636308480000000

你最好的选择可能是一个简单的点云。你可以使用一些Delaunay三角剖分来得到一个曲面。

我觉得你是想学习透视投影。您将需要编写一些代码。但是我们的想法是创建一个透视投影矩阵并用这个矩阵来投影你的点。这里解释了整个过程:

http://scratchapixel.com/lessons/3d-advanced-lessons/perspective-and-orthographic-projection-matrix/perspective-projection-matrix/

你甚至会发现一个程序的例子,它只是你想要的。获取3D点列表并将其投影到屏幕上。在透视投影之前,您可能需要转换3D空间中的点(使用世界到相机矩阵)。

然后程序将结果保存到PPM文件(和图像)。

最新更新