Advertisement
Guest User

MaterialMaker PauloFalcao Raymarching Matcap

a guest
Apr 7th, 2020
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 5.80 KB | None | 0 0
  1. {"connections":[],"nodes":[{"name":"PauloFalcao_Raymarching_With_Matcap","node_position":{"x":0,"y":0},"parameters":{"AmbLight":0.196,"Brightness":1,"CamD":1.774,"CamX":1.073,"CamY":1.365,"CamZ":2.75,"LookAtX":0,"LookAtY":0,"LookAtZ":0.006,"Pow":78.628,"SkyColor":{"interpolation":3,"points":[{"a":1,"b":0.979167,"g":0.864656,"pos":0,"r":0.793357},{"a":1,"b":1,"g":0.6984,"pos":0.118182,"r":0.510612},{"a":1,"b":0.557292,"g":0.329521,"pos":0.411598,"r":0.287342},{"a":1,"b":0.416667,"g":0.209503,"pos":0.945455,"r":0.17114}],"type":"Gradient"},"Specular":1.462,"SunX":0.821,"SunY":1.139,"SunZ":0.4,"Reflection":0.5},"shader_model":{"code":"vec4 $(name_uv)_d = vec4(raymarch_$name($uv)*$Brightness,1.0);\n\n","global":"","inputs":[{"default":"length($uv)-0.4","function":true,"label":"SDF_A","name":"sdf_a","type":"sdf3d"},{"default":"vec3(1.0,0.1,0.1)","function":true,"label":"TEX3D_A","name":"tex3d_a","type":"tex3d"},{"default":"vec3(1.0,0.0,0.0)","function":true,"label":"MatCap_A","name":"matcap_a","type":"rgb"},{"default":"$uv.y+1.0","function":true,"label":"SDF_B","name":"sdf_b","type":"sdf3d"},{"default":"(vec3(mod(floor($uv.x)+floor($uv.z),2.0))*0.25+0.5)","function":true,"label":"TEX3D_B","name":"tex3d_b","type":"tex3d"}],"instance":"vec2 input_$name(vec3 p) {\n    float sdfa=$sdf_a(p);\n\tfloat sdfb=$sdf_b(p);\n\tif (sdfa<sdfb) {\n\t  return vec2(sdfa,0.0);\n\t} else {\n\t  return vec2(sdfb,1.0);\n\t}\n}\n\nvec3 normal_$name(vec3 p) {\n\tfloat d = input_$name(p).x;\n    vec2 e = vec2(.001,0);\n    vec3 n = d - vec3(\n        input_$name(p-vec3(e.xyy)).x,\n        input_$name(p-vec3(e.yxy)).x,\n        input_$name(p-vec3(e.yyx)).x);\n    return normalize(n);\n}\n\nvoid march_$name(out float d,out vec3 p,out vec2 dS, vec3 ro, vec3 rd){\n    for (int i=0; i < 500; i++) {\n    \tp = ro + rd*d;\n        dS = input_$name(p);\n        d += dS.x;\n        if (d > 50.0 || abs(dS.x) < 0.0001) break;\n    }\n}\n\n//from https://www.shadertoy.com/view/lsKcDD\nfloat calcAO_$name( in vec3 pos, in vec3 nor ){\n\tfloat occ = 0.0;\n    float sca = 1.0;\n    for( int i=0; i<5; i++ ){\n        float h = 0.001 + 0.15*float(i)/4.0;\n        float d = input_$name( pos + h*nor ).x;\n        occ += (h-d)*sca;\n        sca *= 0.98;\n    }\n    return clamp( 1.0 - 1.6*occ, 0.0, 1.0 );    \n}\n\n//from https://www.shadertoy.com/view/lsKcDD\nfloat calcSoftshadow_$name( in vec3 ro, in vec3 rd, in float mint, in float tmax){\n\tfloat res = 1.0;\n    float t = mint;\n    float ph = 1e10; // big, such that y = 0 on the first iteration\n    for( int i=0; i<32; i++ ){\n\t\tfloat h = input_$name( ro + rd*t ).x;\n        res = min( res, 10.0*h/t );\n        t += h;\n        if( res<0.0001 || t>tmax ) break;  \n    }\n    return clamp( res, 0.0, 1.0 );\n}\n\n\nvec3 raymarch_$name(vec2 uv) {\n    uv-=0.5;\n    vec3 cam=vec3($CamX,$CamY,$CamZ);\n\tvec3 lookat=vec3($LookAtX,$LookAtY,$LookAtZ);\n\tvec3 ray=normalize(lookat-cam);\n\tvec3 cX=normalize(cross(vec3(0.0,1.0,0.0),ray));\n\tvec3 cY=normalize(cross(cX,ray));\n\tvec3 rd = normalize(ray*$CamD+cX*uv.x+cY*uv.y);\n\tvec3 ro = cam;\n\t\n\tfloat d=0.;\n\tvec3 p=vec3(0);\n\tvec2 dS=vec2(0);\n\tmarch_$name(d,p,dS,ro,rd);\n\t\n    vec3 color=vec3(0.0);\n\tvec3 objColor=(dS.y<0.5)?$tex3d_a(vec4(p,1.0)):$tex3d_b(vec4(p,1.0));\n\tfloat fog=max(1.0-(d/50.0),0.0);\n\tvec3 light=normalize(vec3($SunX,$SunY,$SunZ));\n\tif (d<50.0) {\n\t    vec3 n=normal_$name(p);\n\t\tfloat l=clamp(dot(-light,-n),0.0,1.0);\n\t\tfloat r=clamp(dot(reflect(rd,-n),light),0.0,1.0);\n\t\tfloat cAO=calcAO_$name(p,n);\n\t\tfloat shadow=calcSoftshadow_$name(p,light,0.05,5.0);\n\t\tcolor=min(vec3(max(shadow,$AmbLight)),max(l,$AmbLight))*max(cAO,$AmbLight)*objColor+pow(r,$Pow)*$Specular;\n\t\tif (dS.y<0.5){\n\t\t\tcolor=mix(color,$matcap_a((n*mat3(cX,cY,ray)).xy*0.5+0.5),$Reflection);\n\t\t}\n\t} else {\n\t    color=$SkyColor(rd.y).xyz;\n\t}\n    return color*(fog)+$SkyColor(rd.y).xyz*(1.0-fog);\n}\n\n\n\n","name":"PauloFalcao_Raymarching_Matcap","outputs":[{"rgba":"$(name_uv)_d","type":"rgba"}],"parameters":[{"control":"None","default":0,"label":"CamX","max":5,"min":-5,"name":"CamX","step":0.001,"type":"float"},{"control":"None","default":1,"label":"CamY","max":5,"min":-5,"name":"CamY","step":0.001,"type":"float"},{"control":"None","default":2,"label":"CamZ","max":5,"min":-5,"name":"CamZ","step":0.001,"type":"float"},{"control":"None","default":0,"label":"LookAtX","max":5,"min":-5,"name":"LookAtX","step":0.001,"type":"float"},{"control":"None","default":0,"label":"LookAtY","max":5,"min":-5,"name":"LookAtY","step":0.001,"type":"float"},{"control":"None","default":0,"label":"LookAtZ","max":5,"min":-5,"name":"LookAtZ","step":0.001,"type":"float"},{"control":"None","default":5,"label":"CamDistance","max":5,"min":0,"name":"CamD","step":0.001,"type":"float"},{"control":"None","default":0.4,"label":"Specular","max":1,"min":0,"name":"Specular","step":0.001,"type":"float"},{"control":"None","default":0,"label":"Reflection","max":1,"min":0,"name":"Reflection","step":0.001,"type":"float"},{"control":"None","default":32,"label":"Pow","max":1024,"min":0,"name":"Pow","step":0.001,"type":"float"},{"control":"None","default":0.2,"label":"AmbLight","max":1,"min":0,"name":"AmbLight","step":0.001,"type":"float"},{"control":"None","default":1,"label":"SunX","max":10,"min":-10,"name":"SunX","step":0.001,"type":"float"},{"control":"None","default":1,"label":"SunY","max":10,"min":-10,"name":"SunY","step":0.001,"type":"float"},{"default":1,"label":"SunZ","name":"SunZ","type":"float","control":"None","max":10,"min":-10,"step":0.001},{"default":{"interpolation":3,"points":[{"a":1,"b":1,"g":0.6984,"pos":0.009091,"r":0.510612},{"a":1,"b":0.317708,"g":0.187858,"pos":1,"r":0.163812}],"type":"Gradient"},"label":"SkyColor","name":"SkyColor","type":"gradient"},{"control":"None","default":1,"label":"Brightness","max":1,"min":0,"name":"Brightness","step":0.001,"type":"float"}]},"type":"shader"}]}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement