gpt4 book ai didi

c++ - OpenGL 三角形邻接索引

转载 作者:可可西里 更新时间:2023-11-01 16:10:14 26 4
gpt4 key购买 nike

我目前正在尝试编写一个程序,它将网格作为输入(由顶点位置和元素数组组成)并输出索引以用于 glDrawElements()GL_TRIANGLES_ADJACENCY模式。

我在尝试编写代码时想到非闭合网格具有可能没有三个邻居的三角形。例如,由单个三角形组成的网格没有相邻的三角形。

Triangle adjacency diagram from OpenGL 4.3 spec.

在这种情况下,索引 2、4 和 6 应该是什么?似乎应该有一种标准的方法来告诉几何着色器一个或多个相邻的三角形不存在。但是,我在 OpenGL 规范 (v4.3) 中找不到这方面的信息。

单个三角形是一个愚蠢的例子,但是有很多网格并不是所有的三角形都连接到其他三个三角形上——例如,一个两端开口的圆柱体。

有没有标准的方法来处理这样的情况?如果我遗漏了规范中的一些明显内容,我深表歉意。

上图复制自 OpenGL 4.3 规范。

最佳答案

在阅读了您对 BЈовић 的评论后,我认为很明显您正在寻找的是原始重启索引。

您可以使用以下 API 调用保留任意索引值来表示原语重启:glPrimitiveRestartIndex (...)。通常使用 -1,就像您原来的问题一样。

看看:OpenGL 4.3 Core Specification - 10.3.5 原始重启 - 第 301 页了解更多详细信息。

我还应该指出,基于索引的原语重启是一个可以启用/禁用的功能,它开始时是禁用的。因此,简单地设置重启索引不足以使其实际执行任何操作。

关于c++ - OpenGL 三角形邻接索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19036533/

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