我有一个非常简单的OpenGL(3.2)设置,没有光照,透视投影和一个简单的着色器程序(应用投影变换并使用texture2D从纹理中读取颜色)。
相机俯视负z轴,我在x-y平面上用纹理(http://i43.tinypic.com/2ryszlz.png)绘制了几个墙和柱子。
现在我正在x-y平面上移动相机,这就是它的样子: http://i.imgur.com/VCrNcly.gif
我现在的问题是:如何处理墙壁纹理的闪烁?
当相机居中于墙壁时,纹理上的视角会压缩屏幕的纹理,因此屏幕上的一个像素实际上是纹理上的几个像素,但只选择一个用于显示。根据我在着色器中访问的信息,我看不到如何执行插入所需颜色的操作。
因为这看起来几乎每个3D应用程序都应该有问题,解决方案可能非常简单(我希望?)。
答案 0 :(得分:1)
我似乎无法理解图像,但从您所描述的内容来看,您似乎正在寻找MIPMAPPING。请谷歌,这是一个非常简单和非常普遍使用的概念。您可以通过在程序中添加一行或两行来使用它。祝好运。 我会更详细,但今天我没时间了。