Home > Materials > Ceramic > White Ceramic - Procedural/Bump > View Source
<?xml version="1.0" encoding="utf-8"?> <scenedata> <material> <name>base-ceramic</name> <phong> <diffuse_albedo> <constant> <rgb> <rgb> 0.9062 0.9453 0.9141 </rgb> <gamma>2.2</gamma> </rgb> </constant> </diffuse_albedo> <exponent> <constant> 300000 </constant> </exponent> <bump> <shader> <shader><![CDATA[def coords ( ) vec2 : getTexCoords ( 0 ) def get_tilevec( vec2 pos ) vec2 : vec2 ( floor ( doti ( pos ) ) , floor ( dotj ( pos ) ) ) def random_place(vec2 tilevec) vec3 : vec3 ( noise ( tilevec * 1.414213562373095 ) * 0.01 , noise ( tilevec * 3.141592653589793 ) * 0.01, noise ( tilevec * 2.64575131106 ) * 0.015 ) def placement ( vec3 place ) vec2 : mat2x2 ( cos( dotk ( place) ) , 0. - sin( dotk ( place ) ) , sin ( dotk ( place) ) , cos ( dotk ( place ) ) ) * vec2 ( fract( doti (coords ( ) ) ) - 0.5 , fract( dotj (coords ( ) ) ) - 0.5 ) + vec2 ( 0.5 , 0.5 ) + vec2 ( doti(place), dotj(place) ) def crn ( real a, real b ) real : 0.5 * ( a + b - sqrt ( (a - b) * (a - b) + 0.0001 ) ) def pyra ( vec2 xy ) real : crn ( crn ( fract( doti( xy ) ) , 1. - fract(doti ( xy ) ) ) , crn ( fract(dotj ( xy ) ) , 1. - fract(dotj ( xy ) ) ) ) def shape( real x ) real : sqrt( x* ( 2. - x ) ) def profile () real : shape( clamp ( ( pyra ( placement ( random_place(get_tilevec( coords () ) ) ) ) - 0.007 ) * 20. , 0. , 1. ) ) * 0.002 def eval() real : profile () + noise ( getTexCoords(0) * 10. ) * 0.00001]]></shader> </shader> </bump> <displacement> <shader> <shader><![CDATA[def coords ( ) vec2 : getTexCoords ( 0 ) def get_tilevec( vec2 pos ) vec2 : vec2 ( floor ( doti ( pos ) ) , floor ( dotj ( pos ) ) ) def random_place(vec2 tilevec) vec3 : vec3 ( noise ( tilevec * 1.414213562373095 ) * 0.01 , noise ( tilevec * 3.141592653589793 ) * 0.01, noise ( tilevec * 2.64575131106 ) * 0.015 ) def placement ( vec3 place ) vec2 : mat2x2 ( cos( dotk ( place) ) , 0. - sin( dotk ( place ) ) , sin ( dotk ( place) ) , cos ( dotk ( place ) ) ) * vec2 ( fract( doti (coords ( ) ) ) - 0.5 , fract( dotj (coords ( ) ) ) - 0.5 ) + vec2 ( 0.5 , 0.5 ) + vec2 ( doti(place), dotj(place) ) def crn ( real a, real b ) real : 0.5 * ( a + b - sqrt ( (a - b) * (a - b) + 0.0001 ) ) def pyra ( vec2 xy ) real : crn ( crn ( fract( doti( xy ) ) , 1. - fract(doti ( xy ) ) ) , crn ( fract(dotj ( xy ) ) , 1. - fract(dotj ( xy ) ) ) ) def shape( real x ) real : sqrt( x* ( 2. - x ) ) def profile () real : shape( clamp ( ( pyra ( placement ( random_place(get_tilevec( coords () ) ) ) ) - 0.007 ) * 20. , 0. , 1. ) ) * 0.002 def eval() real : 0.0 #profile()]]></shader> </shader> </displacement> <layer>0</layer> <fresnel_scale>1</fresnel_scale> <ior>1.35</ior> <nk_data></nk_data> </phong> </material> <material> <name>base-joint-clean</name> <diffuse> <albedo> <constant> <rgb> <rgb> 0.668 0.668 0.668 </rgb> <gamma>2.2</gamma> </rgb> </constant> </albedo> <bump> <shader> <shader><![CDATA[def joint_height() real : noise( getTexCoords(0) *2.25 )* 0.0006 + 0.0006 def eval() real : joint_height() ]]></shader> </shader> </bump> <displacement> <shader> <shader><![CDATA[def joint_height() real : noise( getTexCoords(0) *2.25 )* 0.0006 + 0.0006 def eval() real : 0.0 #joint_height()]]></shader> </shader> </displacement> <random_triangle_colours>false</random_triangle_colours> <layer>0</layer> </diffuse> </material> <material> <name>base-joint-dirty</name> <diffuse> <albedo> <constant> <rgb> <rgb> 0.4766 0.4648 0.4531 </rgb> <gamma>2.2</gamma> </rgb> </constant> </albedo> <bump> <shader> <shader><![CDATA[def joint_height() real : noise( getTexCoords(0) *2.25 )* 0.0006 + 0.0006 def eval() real : joint_height() ]]></shader> </shader> </bump> <displacement> <shader> <shader><![CDATA[def joint_height() real : noise( getTexCoords(0) *2.25 )* 0.0006 + 0.0006 def eval() real : 0.0 #joint_height()]]></shader> </shader> </displacement> <random_triangle_colours>false</random_triangle_colours> <layer>0</layer> </diffuse> </material> <material> <name>base-joint</name> <blend> <a_name>base-joint-clean</a_name> <b_name>base-joint-dirty</b_name> <blend> <shader> <shader><![CDATA[def eval() real : noise(getTexCoords(0)*0.5)]]></shader> </shader> </blend> <step_blend>false</step_blend> </blend> </material> <material> <name>ceramic-procedural-bump</name> <blend> <a_name>base-ceramic</a_name> <b_name>base-joint</b_name> <blend> <shader> <shader><![CDATA[def coords ( ) vec2 : getTexCoords ( 0 ) def get_tilevec( vec2 pos ) vec2 : vec2 ( floor ( doti ( pos ) ) , floor ( dotj ( pos ) ) ) def random_place(vec2 tilevec) vec3 : vec3 ( noise ( tilevec * 1.414213562373095 ) * 0.01 , noise ( tilevec * 3.141592653589793 ) * 0.01, noise ( tilevec * 2.64575131106 ) * 0.015 ) def placement ( vec3 place ) vec2 : mat2x2 ( cos( dotk ( place) ) , 0. - sin( dotk ( place ) ) , sin ( dotk ( place) ) , cos ( dotk ( place ) ) ) * vec2 ( fract( doti (coords ( ) ) ) - 0.5 , fract( dotj (coords ( ) ) ) - 0.5 ) + vec2 ( 0.5 , 0.5 ) + vec2 ( doti(place), dotj(place) ) def crn ( real a, real b ) real : 0.5 * ( a + b - sqrt ( (a - b) * (a - b) + 0.0001 ) ) def pyra ( vec2 xy ) real : crn ( crn ( fract( doti( xy ) ) , 1. - fract(doti ( xy ) ) ) , crn ( fract(dotj ( xy ) ) , 1. - fract(dotj ( xy ) ) ) ) def shape( real x ) real : sqrt( x* ( 2. - x ) ) def profile () real : shape( clamp ( ( pyra ( placement ( random_place(get_tilevec( coords () ) ) ) ) - 0.007 ) * 20. , 0. , 1. ) ) * 0.002 def joint_height() real : noise( getTexCoords(0) *9. )* 0.0006 + 0.0006 def eval() real : if( gt( joint_height() , profile() ) , 1.0 , 0.0 ) ]]></shader> </shader> </blend> <step_blend>true</step_blend> </blend> </material> </scenedata>