我使用OpenGL通過一個頂點着色器和一個片段着色器的組合來完成一些GPGPU計算。我需要對不同規模的圖像進行計算。我想使用mipmap,因爲他們的代可以自動和硬件加速。但是我無法設法訪問片段着色器中的mipmap紋理。在GLSL片段着色器中,如何在特定的mipmap級別訪問texel?
我啓用了自動生成mipmap: glTexParameteri(GL_TEXTURE_2D,GL_GENERATE_MIPMAP,GL_TRUE);
我試着在着色器中使用texture2DLod而沒有運氣,它只是保持正常的紋理。我也嘗試在主程序中使用glTextureParameteri(GL_BASE_LEVEL,X),它沒有改變任何東西。
你會怎麼做?
我正在使用Linux。我的顯卡是Nvidia Quadro,相當老舊。 Here是我的glxinfo輸出與所有受支持的擴展。
我上傳了你的問題,因爲它「有用而且清晰」,但你似乎一切正常。 glTextureSize(sampler,lod)說什麼?(在你的片段着色器中) – Calvin1602 2010-09-03 13:21:03
我沒有這樣的功能。我認爲我的卡太舊了(我剛剛檢查過,GLSL的版本是GL_ARB_shading_language_100)。這將解釋很多,但我不明白爲什麼着色器會接受* Lod變體而不抱怨它不被支持... – Jim 2010-09-06 11:20:54
我不明白爲什麼glTextureParameteri(GL_BASE_LEVEL,X)和glTextureParameteri(GL_MAX_LEVEL,X )調用也沒有效果。這不是GLSL相關的...我現在很困惑。 – Jim 2010-09-06 11:24:36