圆形三角形条

Eth*_*one 2 c++ opengl 3d

我一直试图在OpenGL中创建一个圆圈,但我不能使用三角形粉丝,因为我已经读过它们在directx中不再可用,我也将进行直接调用.

我真的不明白三角条是如何工作的.我的所有实现都有漏洞或奇怪的怪癖,任何人都可以帮助我,我怎样才能以最好的方式实现它?

三角形条和单独的三角形之间确实存在任何性能差异,因为我们可以说10个圆圈,每个圆形有1000个三角形.它会有很大的不同吗?

Nic*_*ler 5

指定带有三角形条带的圆的一种方法如下:

for each step
    add next position on circle
    add circle center
Run Code Online (Sandbox Code Playgroud)

这将包括圆圈的中心位置.不包括中心的另一种方式是:

add left most vertex
for each phi in (-PI/2, Pi/2) //ommit the first and last one
    x = r * sin(phi)
    y = r * cos(phi)
    add (x, y)
    add (x, -y)
add right most vertex
Run Code Online (Sandbox Code Playgroud)

您可能需要根据背面剔除设置调整循环

拓扑需要不同数量的顶点.对于三角形列表,10个圆圈1000个三角形需要30,000个顶点.对于三角形条带,每个圆圈需要1002个顶点,因此总共需要10,020个顶点.这几乎要小三倍,转移到CPU时应该快一点.如果这反映在FPS上取决于几件事情.