小编dud*_*saw的帖子

OpenGl 模糊

我正在使用 libgdx,想要制作一个常见的高斯模糊后处理效果。按照指南,我遇到了纹理过滤的一些问题。这里是图像:

实际图像:

实际图像

半径 = 1 时模糊:

半径 = 1 时模糊

半径 = 5 进行模糊处理:

半径 = 5 时模糊

在最简单的情况下,我只有一个透明的帧缓冲区对象,其中渲染了一些对象。然后我需要对此应用一些着色器效果,基本上只是模糊,然后将结果渲染到屏幕上。我还想调整模糊半径,但如果我将半径设置为大于 1,它就会看起来非常粗糙。我猜它应该与一些线性过滤一起使用,但它不在这里。所以我只需要应用相同的效果与软模糊和可配置的半径,也许还有一些其他着色器侧选项。我还尝试将线性过滤显式分配给 FBO 纹理,这不会改变任何内容。

片段着色器:

//"in" attributes from our vertex shader
varying vec4 vColor;
varying vec2 vTexCoord;

//declare uniforms
uniform sampler2D u_texture;
uniform float resolution;
uniform float radius;
uniform vec2 dir;

void main() {
    //this will be our RGBA sum
    vec4 sum = vec4(0.0);
    
    //our original texcoord for this fragment
    vec2 tc = vTexCoord;
    
    //the amount to blur, i.e. how far off center to sample from 
    //1.0 …
Run Code Online (Sandbox Code Playgroud)

opengl shader glsl

10
推荐指数
2
解决办法
2万
查看次数

标签 统计

glsl ×1

opengl ×1

shader ×1