2

在 OpenGL 中,如何从正方形中切出三角形的孔?使孔透明。

我也在使用 SDL,也许它可以通过 SDL 表面来实现?

4

2 回答 2

1

您可以使用纹理和 alpha 混合:纹理将包含一个透明三角形。请参阅有关混合的本教程

编辑:当然阿尔法混合不会改变几何。为此,您需要进行更复杂的治疗。请参阅有关实时 CSG 的本教程

参考:构造实体几何

于 2009-12-20T18:41:05.427 回答
1

虽然在纹理上执行此操作确实是更简单的方法,但如果您需要它是一个真实的形状,您可以尝试使用 GLU 工具包中的 GLUtesselator。在这里查看它的教程。

一般用法是您创建一个 tesselator 对象,创建两个轮廓(反向的外部和内部),然后 tesselator 将其转换为纯 OpenGL 命令。当然,如果您正在寻求效率,您应该实现或找到一些在顶点缓冲区上运行的更高阶系统。

于 2009-12-20T18:49:54.483 回答