gpt4 book ai didi

c++ - glCullFace无法正常工作,您对此有答案吗?

转载 作者:行者123 更新时间:2023-12-01 14:20:17 25 4
gpt4 key购买 nike

我正在绘制地形,并且由于无法看到底面,尽管脸部剔除会带来不错的性能提升。我查看了一个教程,并进行了以下设置:

glCullFace(GL_FRONT);
glFrontFace(GL_CCW);

问题是,这仅部分起作用。地形是由四边形组成的,每个四边形都由两个直角三角形组成,我只能看到两个三角形中的一个,如果使用顺时针缠绕,则会看到另一个三角形。我正在使用索引进行安全存储,并且在纸上画出了索引应该如何缠绕,但某种程度上不起作用。

我生成这样的索引:
mapIndices[arrayIdx + 0] = i;
mapIndices[arrayIdx + 1] = i + 1;
mapIndices[arrayIdx + 2] = i + CHUNK_SIDE_LENGHT + 1;

mapIndices[arrayIdx + 5] = mapIndices[arrayIdx + 1];
mapIndices[arrayIdx + 4] = mapIndices[arrayIdx + 2];
mapIndices[arrayIdx + 3] = mapIndices[arrayIdx + 2] + 1;

不要对 CHUNK_SIDE_LENGHT + 1感到困惑,我想要 CHUNK_SIDE_LENGHT三角形,所以我需要一排 CHUNK_SIDE_LENGHT + 1顶点。
就像我说的那样,我已经在纸上画出了这个顺序,并且缠绕是正确的,但是OpenGL不喜欢它。这可能与索引呈现有关吗?

最佳答案

我看不到您的代码中的任何问题。

第一个三角形的缠绕顺序相同

0 : i
1 : i + 1
2 : i + CHUNK_SIDE_LENGHT + 1

2
+
| \
| \
| \
+-------+
0 1

作为第二个三角形的缠绕顺序:

3 : i + CHUNK_SIDE_LENGHT + 2
4 : i + CHUNK_SIDE_LENGHT + 1
5 : i + 1

4 3
+-------+
\ |
\ |
\ |
+
5

关于c++ - glCullFace无法正常工作,您对此有答案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61970969/

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