gpt4 book ai didi

opengl - 使用 GL_TRIANGLE_STRIP 绘制四边形

转载 作者:行者123 更新时间:2023-12-02 01:13:56 24 4
gpt4 key购买 nike

我正在尝试使用 LWJGL 从包含所有字符的纹理图集中在 OpenGL 中绘制一个字符串。

现在我为每个字符添加三个顶点到网格,这将被渲染

GL11.glDrawArrays(GL11.GL_TRIANGLE_STRIP, 0, text.getModel().getRawModel().getVertexCount());

例如,我正在渲染字符串“Thomas”,结果如下(添加偏移量以更好地查看问题):

Render of Thomas

如您所见,每个字符之间都有一个奇怪的“四边形”,我不知道为什么:-(
我认为我为每个字符添加了许多顶点,但我不知道做得更好......

顶点(2D):
-0.3333333, 0.5875, 
-0.24800003, 0.5875,
-0.3333333, 0.25,
-0.24800003, 0.25,

-0.11466664, 0.5875,
-0.029333353, 0.5875,
-0.11466664, 0.25,
-0.029333353, 0.25,

0.10399997, 0.5875,
0.18933332, 0.5875,
0.10399997, 0.25,
0.18933332, 0.25,

0.32266665, 0.5875,
0.408, 0.5875,
0.32266665, 0.25,
0.408, 0.25,

0.5413333, 0.5875,
0.62666667, 0.5875,
0.5413333, 0.25,
0.62666667, 0.25,

0.76, 0.5875,
0.84533334, 0.5875,
0.76, 0.25,
0.84533334, 0.25,

纹理坐标(2D):
0.23318386, 1.0, 
0.23766816, 1.0,
0.23318386, 0.0,
0.23766816, 0.0,

0.32286996, 1.0,
0.32735425, 1.0,
0.32286996, 0.0,
0.32735425, 0.0,

0.3542601, 1.0,
0.35874438, 1.0,
0.3542601, 0.0,
0.35874438, 0.0,

0.34529147, 1.0,
0.3497758, 1.0,
0.34529147, 0.0,
0.3497758, 0.0,

0.29147983, 1.0,
0.29596412, 1.0,
0.29147983, 0.0,
0.29596412, 0.0,

0.3721973, 1.0,
0.37668163, 1.0,
0.3721973, 0.0,
0.37668163, 0.0

最佳答案

看看你如何布置你的顶点,它看起来像 GL_TRIANGLE_STRIP不会工作。让我们用数字 0 到 24 标记您的顶点。三角形带状拓扑将绘制如下三角形:

draw triangle 0 1 2
draw triangle 1 2 3
draw triangle 2 3 4
...
draw triangle 20 21 22
draw triangle 21 22 23

你可能想要的是:
draw triangle 0 1 2
draw triangle 1 2 3

draw triangle 4 5 6
draw triangle 5 6 7

draw triangle 8 9 10
draw triangle 9 10 11

...
...

draw triangle 20 21 22
draw triangle 21 22 23

这可以通过 GL_TRIANGLES 完成拓扑并使用这样的索引缓冲区:
[ 0 1 2 1 2 3 4 5 6 5 6 7 ... 20 21 22 21 22 23 ]

关于opengl - 使用 GL_TRIANGLE_STRIP 绘制四边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43607883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com