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

时间:2014-06-07 07:10:28

标签: opengl graphics 3d vector-graphics

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

3 个答案:

答案 0 :(得分:1)

您很可能只使用点云以及一些基本的视口/矩阵设置(请查看)。

点云实际上就是这样:2D或3D空间中的点集合。

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

glBegin(GL_POINTS);

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

glEnd();

答案 1 :(得分:1)

  

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

你不想这样做。这种复杂性是因子,它真正地,非常快地增长:

 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三角测量来获得表面。

答案 2 :(得分:0)

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

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

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

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