【问题标题】:Found particular intensity points of texture - OpenTK发现纹理的特定强度点 - OpenTK
【发布时间】:2019-12-26 07:51:39
【问题描述】:

link 的帮助下,我可以改变整个纹理的强度。现在我想检测纹理上所有强度大于 0.7 的点。我怎样才能做到这一点?

private void CreateShaders()
{
    /***********Vert Shader********************/
    vertShader = GL.CreateShader(ShaderType.VertexShader);
    GL.ShaderSource(vertShader, @"
        attribute vec3 a_position;
        varying vec2 vTexCoord;
        void main() {
            vTexCoord = (a_position.xy + 1) / 2;
            gl_Position = vec4(a_position,1);
        }");
    GL.CompileShader(vertShader);

    /***********Frag Shader ****************/
    fragShader = GL.CreateShader(ShaderType.FragmentShader);
    GL.ShaderSource(fragShader, @"
        precision highp float;
        uniform sampler2D sTexture;
        varying vec2 vTexCoord;
        const float Epsilon = 1e-10;

        //RGBtoHSV
        //HSVtoRGB

        void main ()
        {
            vec4  color = texture2D (sTexture, vTexCoord);
            float u_saturate=0.7;
            vec3 col_hsv = RGBtoHSV(color.rgb);
            col_hsv.z *= (u_saturate * 2.0);
            vec3 col_rgb = HSVtoRGB(col_hsv.rgb);
            gl_FragColor = vec4(col_rgb.rgb, color.a);
        }");
    GL.CompileShader(fragShader);
}

【问题讨论】:

  • “检测所有点”是什么意思。您将如何处理这些点,分别处理其他点?
  • 现在我想用黑色突出显示这些点。稍后我想将此点与另一个纹理的相同点进行比较。

标签: c# glsl shader fragment-shader opentk


【解决方案1】:

将强度与阈值进行比较,并根据强度使用不同的颜色:

gl_FragColor = intensity > 0.7 ? colorH : vec4(col_rgb.rgb, color.a);  

片段着色器main 可能如下所示:

void main ()
{
    vec4  color = texture2D (sTexture, vTexCoord);
    float u_saturate=0.7;

    vec3  col_hsv = RGBtoHSV(color.rgb);
    float intensity = col_hsv.z;

    col_hsv.z *= (u_saturate * 2.0);
    vec3 col_rgb = HSVtoRGB(col_hsv.rgb);   

    vec4 colorH = vec4(0.0, 0.0, 0.0, 1.0);
    gl_FragColor = intensity > 0.7 ? colorH : vec4(col_rgb.rgb, color.a);
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-01
  • 2021-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多