pmndrs / postprocessing

A post processing library for three.js.
zlib License
2.37k stars 214 forks source link

Sobel Shader as a Effect #393

Open optimus007 opened 2 years ago

optimus007 commented 2 years ago

Is your feature request related to a problem?

Refereing to ths kalidoscope example i managed to get sobel added as a pass. It works great but i have no blend options and cannot add it into the effect pass stack.

Describe the solution you'd like

Convert Sobel operator shader into an internal effect and maybe add controls to tweak the output (color , strength ,etc)

Additional context

three example https://threejs.org/examples/?q=sobel#webgl_postprocessing_sobel three file https://github.com/mrdoob/three.js/blob/master/examples/jsm/shaders/SobelOperatorShader.js

Code I used to add Sobel Shader as a shader pass

    const shaderMaterial = new ShaderMaterial(SobelOperatorShader)
    const shaderPass = new ShaderPass(shaderMaterial, "tDiffuse")
    shaderMaterial.uniforms.resolution.value.x = window.innerWidth
    shaderMaterial.uniforms.resolution.value.y = window.innerHeight
    composer.addPass(shaderPass)

BTW Awesome work with the library !

vanruesc commented 2 years ago

Sorry for the late reply!

I'd like to add Sobel at some point, but I'm currently too busy with other issues.

CodyJasonBennett commented 1 year ago

Shared this in Discord for a question, but this is a straight ahead port -- https://codesandbox.io/s/sobel-effect-postprocessing-meyq7m. This doesn't look optimized at all though. I can try my hand at a pass specifically for postprocessing if there's a need.