我有一组点,仅限于二维坐标平面,特别是第一和第四象限(正x值)。我能够通过这些点画一条线。

我也可以在3D空间的另一个窗口中将这些点绘制为一条线。我将如何绕轴(例如Y)扫掠它们,以便获得3D网格?我相信通常的示例是使用点在Maya中创建线,创建高脚杯等。

谷歌搜索“ Sweep Representation”一词似乎找不到很多,这是我的教科书所指的这一过程。我只是在寻找某种思维过程或指导方针,以指导我!

最佳答案

有很多方法可以做到这一点,但是最重要的原则是绕着某个轴旋转原始线,然后从当前线向下一条线发射顶点以生成三角形,并记住通过连接最后一行。

我个人将生成一个顶点缓冲区和一个索引缓冲区。我将绕Y轴将线旋转N次,将每条旋转线的点存储到顶点缓冲区中。

然后,算法的下一部分将为一个或多个线带生成索引(多条线带比较容易,因为否则,您需要创建退化三角形以从一个带到另一个带)

因此,假设您有一个顶点缓冲区V,原始线P中的许多点和线N,您可以简单地进行迭代,通过发出索引I和索引I + P,P * N次来生成三角带。然后,在给定顶点缓冲区和索引缓冲区的情况下,渲染N个三角形条。

如果您想变得聪明一点,可以只在其中存储带单个索引的索引缓冲区,并在每次渲染时将P添加到基本顶点索引中。注意具有很多索引的高度细分的网格。一些卡的最大顶点索引为65535,其他卡的最大顶点索引稍大一些。

我希望这是有道理的!

关于c++ - OpenGL-扫描表示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7870506/

10-12 22:47