通过在GLSL中着色不同的屏幕区域来识别mip贴图级别

时间:2011-03-11 15:21:51

标签: c++ opengl glsl hlsl mipmaps

我不想用代码轰炸这篇文章。我有一个主文件,片段着色器和顶点着色器文件。

我需要知道根据mipmap级别为屏幕着色应采取的步骤?即循环应该去哪里请求mipmap级别,然后相应地设置颜色。我不知道在哪里实现这个或如何实现,一个简单的例子就足够了。

3 个答案:

答案 0 :(得分:1)

您应该为每个级别创建一个具有不同颜色的纹理,然后在片段程序中检索该颜色。也可以使用dFdx(texcoord.x)dFdy(texcoord.y)来计算它。

答案 1 :(得分:1)

就像tibur所说,一个简单的方法就是使用一个调试纹理,每个级别都有不同的颜色,如here所示。

现在,如果你需要手动计算mipmap级别(通常是一个浮点值),这是另一个故事,因为你需要衍生物,但this应该让你走上正轨。

答案 2 :(得分:1)

http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter28.html

这篇GPU Gems 2文章实现了你想要的东西。