OpenGL四边形重叠

时间:2012-02-28 17:41:21

标签: opengl gpu quad

假设我有两个重叠的四边形,形成一个X.

是否可以禁用此功能?那么GPU会删除(其中一个)这些重叠的四边形吗?

案例是关于广告牌,它通过静态墙闪耀。在一个理想的情况下,我不希望在与墙壁重叠时移除广告牌,而不会花费大量的CPU利用率(我有大约10,000个广告牌和墙壁)。

目前我的广告牌是通过计算物体和相机之间的角度来实现的。

1 个答案:

答案 0 :(得分:3)

  

目前我的广告牌是通过计算物体和相机之间的角度来实现的。

完全错误的做法。通常的OpenGL透视投影是平行平面投影。因此,这意味着您通常希望广告牌与近/远剪裁平面共面。

这最容易通过将世界左上角3×3部分的倒数转换为眼睛空间变换矩阵,并使用其中的任意Y列作为广告牌四边形的基本向量。

碰巧,旋转矩阵逆是转置。因此,只需取相机变换矩阵的第一和第二行向量(每个前三个元素),并将它们用作广告牌的基础。不要在这里弄乱三角测量或角度,然后你就会咆哮错误的树。

重叠通常由深度测试来处理。对于半透明几何体,禁用深度写入并将几何体预先排序为远近。