【发布时间】:2011-09-11 18:06:11
【问题描述】:
如何在某个 z-pos 处渲染纹理平面以使其在无穷远处可见?
我可以通过绘制非常大的飞机来实现这一点,但是如果我将相机从地面移到更高的高度,那么我会开始看到飞机的边缘,这是我想避免被看到的。
如果这是可能的,我更喜欢非着色器方法。
编辑:我按照建议尝试了 4d 坐标系,但是:它的效果非常糟糕。即使在相机位置 100 处,我的纹理也会变形,所以无论如何我都必须绘制多个带纹理的四边形。也许我可以这样做,并用 4d 坐标系绘制最远的四边形?有更好的想法吗?
Edit2: 对于那些不知道什么是 opengl 纹理失真的人,这是我用 4d 顶点坐标进行的测试的示例:
(如果图像不可见:http://img828.imageshack.us/img828/469/texturedistort.jpg) 请注意,只有当相机足够远时才会发生这种情况,在这种情况下,它距离中间只有 100.0 个单位! (中间 = (0,0) 我的 4 个三角形开始趋向无穷大)。通常这发生在 100000.0 左右。但是对于 4d 顶点,由于某种原因,它似乎发生得更早。
【问题讨论】:
-
显然,您无法将其渲染为无穷大。确定你的消失点并将其渲染到那里。或许你应该描述你实际上想要完成什么,而不是你认为你应该如何实现它。
-
确实,您还可以设置雾,这样从纹理平面到虚无的过渡不那么突然。
-
@DeadMG:真的不是特别难……你只渲染4个点不是吗?
-
@Tomalak,我有一个模糊的记忆,这可以在 4d 中以某种方式完成,是真的吗?我在尝试什么:我有一个天空盒,但我不希望底部(地面)超出我的范围,所以我想在上面行走,因此,我需要一架可以飞到无穷远的飞机,就像其他 5 架飞机一样在天空盒中。在 DeadMG:没有团队,为什么我更喜欢非着色器,因为我说过:我有一种预感,这可以只使用 4d 顶点来完成。一开始我更喜欢让事情变得简单。
-
众所周知的 4D 环境,我们都生活在其中。