2012-02-28 130 views
0

说我有两个重叠的四边形,形成一个X.OpenGL四边形重叠

是否有可能禁用此发生?为了让GPU去除(其中一个)这些重叠的四边形?

案例是关于广告牌,其中闪耀通过静态墙壁。在理想情况下,我不会在与墙壁重叠时拆除广告牌,也不会花费太多的CPU利用率(我有大约10,000个广告牌和墙壁)。

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

回答

3

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

完全错误的方法。通常的OpenGL透视投影是一个平行的平面投影。所以这意味着您通常希望您的广告牌与您的近/远裁剪平面共面。

这很容易做到,将世界到景观转换矩阵的左上角3×3部分的反转,并将这个X的任意Y列用作广告牌四边形的基向量。

碰巧,旋转矩阵反转是转置。因此,只需拍摄相机变换矩阵的第一和第二行向量(每个只有前3个元素),并将它们用作广告牌的基础。不要在这里混淆三角法或角度,那么你就会吠叫错误的树。

重叠通常由深度测试照顾。对于半透明几何体,禁用深度写入并将几何图形预先分类为远至近。

+0

我需要真正的圆柱广告牌为我的情况(3D精灵),因为我认为你的情况并不意味着。 http://www.lighthouse3d.com/opengl/billboarding/index.php3?billCyl – RobotRock 2012-03-02 14:00:56

+0

但是,如果你知道如何让3d精灵很好地与裁剪平面共面工作,我很乐意听到它。 – RobotRock 2012-03-02 14:03:13

+0

@KajToet:你可以发表你的情况截图吗? – datenwolf 2012-03-02 18:50:05