UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

2 lines (1 loc) 925 B
export default "precision highp float;\nprecision highp sampler2D;\n\nuniform float vertex;\nuniform vec3 coordinates;\n\nuniform vec2 tSize;\nuniform float order;\nuniform sampler2D tPosition0;\nuniform sampler2D tPosition1;\nuniform sampler2D tOriginal;\n\n// *** ADD COMMON ***\n\nvec2 getUV( float id ) {\n return getClothSolverUV( id, tSize );\n}\n\nvoid main() {\n\n vec2 uv = gl_FragCoord.xy / tSize.xy;\n\n vec3 position = packPosition( uv );\n vec3 original = texture2D( tOriginal, uv ).xyz;\n\n vec3 ref, diff, proj, offset;\n\n if ( vertex != - 1.0 ){\n\n ref = texture2D( tOriginal, getUV( vertex ) ).xyz;\n offset = coordinates - ref;\n\n if ( distance( original, ref ) <= 0.1 ) {\n\n diff = ref - original;\n\n proj = dot( diff, offset ) / dot( offset, offset ) * original;\n\n position = original + proj + offset;\n\n }\n }\n\n gl_FragColor = vec4( unpackPosition( position, order ), 1.0 );\n\n}\n";