如何在opengl中在墙上打洞

时间:2013-10-22 18:27:18

标签: c opengl

我需要在opengl中设置一个房间。对于墙壁,我正在考虑用四边形制作它们,但我怎样才能在它上面制作一个洞(窗口)?因为我需要一盏灯透过窗户照亮房间。

任何想法的人?

2 个答案:

答案 0 :(得分:4)

你已经自己回答了这个问题!

不是只有一个四边形作为一个整体墙,你可以将它分成多个四边形,在那里创建一个洞/洞。

以下是您如何做到这一点的直观表达:

在左边我们有一个由1个四边形组成的墙,在右边我们有一个由4个四边形组成的墙,中间有一个洞。

image 1

虽然如果你想要一个更深入的墙,你需要更多的四边形而不仅仅是那四个四边形。所以我在这里为你绘制了另一个视觉表现,我在所有可见面上都写了四边形。虽然记住有很多“看不见的”面孔,但我们还需要创建。

制作这样的墙并不难,您可以轻松计算所有顶点并将它们连接起来。

image 2

答案 1 :(得分:1)

只有一个封闭的四边形表面,你不能。

您需要构建(或使用库为您构建它)一个更复杂的形状,看起来像外面的四边形墙,但在中间有一个洞。

例如,一堆矩形条可能会这样做,或者是一堆三角形条(三角形正确变形,形成一个像中间开口一样的洞)。

存在一些可以进行实体转换的库。在这种情况下,您将构建一个矩形墙,一个圆柱体,并从墙中减去圆柱体(留下一个圆形窗口)。但是,很难知道这些库是否对您有所帮助,因为对您的环境知之甚少。