我有兩個2D紋理。第一個是MSAA紋理,使用GL_TEXTURE_2D_MULTISAMPLE
的目標。第二個非MSAA紋理使用GL_TEXTURE_2D
的目標。線性過濾可以用於MSAA紋理到非MSAA紋理的FBO blit?
根據OpenGL的spec on ARB_texture_multisample,當繪製MSAA紋理時,只有GL_NEAREST
是有效的過濾選項。
在這種情況下,這兩種紋理的通過它們的單獨的幀緩衝器的對象附加到GL_COLOR_ATTACHMENT0
。他們的決議也是相同的大小(據我所知,這是必要的,當一個MSAA非MSAA)。因此,考慮到目前的限制,如果我將MSAA持有的FBO閃爍到非MSAA持有的FBO,是否仍然需要使用GL_NEAREST
作爲過濾選項,或者是GL_LINEAR
有效,因爲兩個紋理都已經呈現至?
我認爲,因爲你可以採樣多重採樣紋理的唯一方法是使用'texelFetch(...)',這或多或少地暗示大多數採樣器狀態是無意義的(例如,換行模式,濾波器,LOD偏差)。就像你說的那樣,根據規範,這不是一個錯誤。設置這些狀態,但是如果您必須使用過濾器來描述行爲,那麼點/最近將是唯一的候選者。 –
@ AndonM.Coleman是的,我認爲這正是第一個規範引用描述的內容,其中我突出顯示了「不執行過濾」。 –
是的,我只是想指出你可以設置這些採樣器狀態,他們只是不做任何事情:p Sampler對象將這些狀態從紋理對象狀態中分離出來,並且很可能會使這個問題不成問題。但由於GL的傳統設計,多重採樣紋理對象具有與它們相關的採樣器狀態,因此它們不會執行任何操作(因爲它們未被採樣)。 –