Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 在glsl中构建一种类型的像素排序_Sorting_Opengl_Video_Glsl_Max Msp Jitter - Fatal编程技术网

Sorting 在glsl中构建一种类型的像素排序

Sorting 在glsl中构建一种类型的像素排序,sorting,opengl,video,glsl,max-msp-jitter,Sorting,Opengl,Video,Glsl,Max Msp Jitter,我正致力于在glsl中进行模拟,这是一种我已经看到广泛使用的效果(如图所示)。我是glsl新手,但在最大msp和抖动方面有相当丰富的经验,因此我正试图实现它(虽然语法应该足够相似,但它是glsl 2.1版) 目前,我正在接收一个纹理,然后将输出作为第二个纹理返回。使用luma阈值,我选择要排序的像素,但从这里开始,我不知道如何继续。我认为我需要: 从初始的luma选定像素获取颜色值 沿特定轴将该颜色应用于后续像素 现在我不知道如何继续。我将包含我确实拥有的代码,很明显,在luma阈值之后没有任何

我正致力于在glsl中进行模拟,这是一种我已经看到广泛使用的效果(如图所示)。我是glsl新手,但在最大msp和抖动方面有相当丰富的经验,因此我正试图实现它(虽然语法应该足够相似,但它是glsl 2.1版)

目前,我正在接收一个纹理,然后将输出作为第二个纹理返回。使用luma阈值,我选择要排序的像素,但从这里开始,我不知道如何继续。我认为我需要:

  • 从初始的luma选定像素获取颜色值
  • 沿特定轴将该颜色应用于后续像素
  • 现在我不知道如何继续。我将包含我确实拥有的代码,很明显,在luma阈值之后没有任何内容。任何建议或资源都将不胜感激


    实际上,我制作了你在上面发布的原始图像。在GPU上进行排序可能是一项复杂的任务,因为我们不能像CPU那样轻松地进行比较

    我会在一张纸上看一看这篇nvidia的论文。如果你想看一看,尽管我认为chrome auto play扼杀了它,所以你可能需要尝试FF或Safari

    如果你四处搜索,也有一些例子。我想


    祝你好运

    不确定你想做什么,但我打赌你需要在特定方向投射光线,以整合源纹理中的颜色,直到达到treshold为止。与此非常相似的是,只需使用恒定的光线方向(如某些均匀方向)而不是光源方向(片段鼠标位置),并更改颜色组合方程。。。
            uniform sampler2DRect tex0;
            uniform sampler2DRect tex1;
    
            varying vec2 texcoord0;
            varying vec2 texcoord1;
    
            uniform float thresh;
            const vec4 lumcoeff = vec4(0.299,0.587,0.114,0.0);
    
            void main()
            {
                vec4 input0 = texture2DRect(tex0, texcoord0);
                vec4 input1 = texture2DRect(tex1, texcoord1);
    
                float luma = dot(input0,lumcoeff);
    
                if(luma > thresh){
                    gl_FragColor 
                }else{ 
                    gl_FragColor = input0;
                }
            }