我有一個非常簡單的OpenGL(3.2)設置,沒有光照,透視投影和簡單的着色器程序(應用投影轉換並使用texture2D從紋理中讀取顏色)。OpenGL透視紋理閃爍
相機正在俯視負Z軸,並在紋理的x-y平面上繪製幾個牆壁和立柱(http://i43.tinypic.com/2ryszlz.png)。
現在我在x-y平面上移動攝像機,它看起來像這樣: http://i.imgur.com/VCrNcly.gif。
我現在的問題是:如何處理壁紋理的閃爍?
由於攝像頭居中在牆壁上,視角在紋理上壓縮了屏幕的紋理,因此屏幕上的一個像素實際上是紋理上的幾個像素,但只有一個被選擇用於顯示。從我在着色器中訪問的信息中,我看不到如何執行插值所需顏色的操作。由於這看起來像幾乎每個3D應用程序都應該有的問題,所以解決方案可能非常簡單(我希望它?)。
你的'#版本'指令在哪裏?爲什麼在GL 3.2代碼中使用不推薦使用的GLSL內置變量? imgur有什麼問題?你的紋理座標在哪裏? – genpfault
我不認爲它的相關性是它的一個普遍問題。我對OpenGL和GLSL相當陌生,這幾乎只是從一些示例中複製出來的,似乎很實用。剛剛發佈它,表明我不在GLSL中執行任何奇特操作。 – VolrathMR
各向異性過濾可以幫助*很多這種情況下,但在極端情況下,你只需要調整紋理。 – Grimmy