gpt4 book ai didi

ios - 绘制连接的三角形条 (ios 6) 时出现倒三角条(缠绕问题)

转载 作者:行者123 更新时间:2023-11-29 13:12:22 24 4
gpt4 key购买 nike

我正在尝试发送一对从输入三角形派生的三角形带进行渲染

strip 由以下顶点索引定义:

strip 1:0 14 16 15 1 23 30 41 8
带 2: 31 7 17 18 16 0

  14______15______23______41            7 ______18______0
/ \ / \ / \ / \ / \ / \ /
/ \ / \ / \ / \ / \ / \ /
0-----16------1 ------30------8 31------17------16

这些 strip 源自以下索引三角形(它们又来自任意网格)。我使用正号表示三角形与输入三角形相比在 strip 中具有相同的缠绕。

剥离 1 个输入三角形
0 14 16 +
14 15 16 -
1 16 15 +
1 15 23 -
1 23 30 +
41 30 23 -
8 30 41 +

剥离 2 个输入三角形
7 17 31 +
7 18 17 -
16 17 18 +
0 16 18 -

如果这些三角形呈现为三角形,我会得到预期的结果 - 一对三角形带,三角形的可见面都在同一侧(在这种情况下,可见面指向观察者)。

如果我将 strip 单独渲染为三角形 strip ,我会得到预期的结果 - 与绘制三角形获得的结果相同。

但是,如果我按照 Apple 指南连接这些 strip (通过复制第一个 strip 的最后一个顶点和第二个 strip 的第一个顶点),则 strip 绘制时 strip 1 正确, strip 2 翻转(即可见侧)反转)。

  14______15______23______41                     7 ______18______0
/ \ / \ / \ / \ / \ / \ /
/ \ / \ / \ / \ / \ / \ /
0-----16------1 ------30------8----8----31----31------17------16

传递给渲染器的 strip 序列:0 14 16 15 1 23 30 41 8 8 31 31 7 17 18 16 0

最后,反转第二个 strip 并将新序列 strip 传递给渲染器的简单实验没有任何区别 - 第二个 strip 仍然翻转。

我错过了什么?

最佳答案

您缺少的是“缠绕命令”。缠绕顺序决定了三角形的朝向。顺时针三角形面向与逆时针三角形相反的方向。

处理三角形带时,opengl 会“翻转”偶数三角形的缠绕顺序。否则,您会使所有其他三角形朝向错误的方向。

你的连接理论在实践中失败了,因为你的第一组 tri's 包含奇数个三角形。

您的情况很容易补救。首先从第二组开始,因为它有偶数个顶点/三角形。

在一般情况下,我认为您需要在第一个 strip 的末尾添加一个额外的冗余三角形,以便在添加第二组之前为其提供偶数个三角形。

关于ios - 绘制连接的三角形条 (ios 6) 时出现倒三角条(缠绕问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16907589/

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