gpt4 book ai didi

c++ - 顶点可以在凸多边形中重合吗?

转载 作者:行者123 更新时间:2023-11-30 00:59:35 25 4
gpt4 key购买 nike

我是 openGL 的新手,正在阅读红皮书。现在,作为练习,我想手动绘制一个球体。为此,我将球体分成切片和堆叠,因此我得到多个矩形,但在球体的两极附近我得到三角形。 (希望这很清楚我在做什么)。现在我知道,如果您使用 GL_POLYGON 绘制多边形并且它恰好与自身相交,则行为是未定义的。我的问题是:给定不在一条线上的三个点 v1、v2、v3,这样做是否是未定义的行为:

glBegin(GL_POLYGON)
vertex v1
vertex v1
vertex v2
vertex v3
glEnd();

这可能会将两个不相关的问题合二为一,但我也想知道:如果我选择将我的球体例程中的矩形划分为三角形,我如何做是否重要,也就是说,我用哪条对角线划分矩形分成两个三角形?我猜想绘制一个单色球体并不重要,但我不知道纹理、着色器、照明等。

最佳答案

当我在做 openGL 的东西时,我很快就坚持只使用三角形。它们的特殊之处在于三角形在任何方面都不会模棱两可。

虽然你举个例子,但我想这会起作用,尽管可能与人工制品有关。

如何分割矩形并不重要,只要注意三角形的缠绕方式、定义点的方式即可,因为这决定了它们的正面和背面。

但绝对坚持三角形,正方形的这四个点的图像

(0,0,0) (1,0,0) (1,0,1) (0,0,1)

很容易看出它是一个扁平的正方形,但如果我将它们改为

(0,1,0) (1,0,0) (1,1,1) (0,0,1)

你现在有什么?它可以画成山谷或山丘。如果我用三角形定义这个形状,你就知道我在描述什么

(0,1,0) (1,0,0) (1,1,1)(1,1,1) (1,0,1) (0,1,0)

像山一样的形状

好吧...所以我在这里稍作跟踪...我的意思是,我不知道您的代码在实践中会做什么,但我认为您不应该以任何方式使用它。以及如何拆分矩形并不重要,只要以正确的方式描述三角形即可。

关于c++ - 顶点可以在凸多边形中重合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4118301/

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