<?xml version="1.0" encoding="utf-8"?>
<scenedata>
	<material>
		<name>sturdyRock</name>
		<phong>
		<shared_shader_info>
				<param>
					<real>
						<name>Disorder</name>
						<description></description>
						<min>0</min>
						<max>2</max>
						<value>1.5</value>
					</real>
				</param>
				<param>
					<real>
						<name>Scale</name>
						<description></description>
						<min>0</min>
						<max>1000</max>
						<value>15</value>
					</real>
				</param>
				<param>
					<real>
						<name>OctavesRatio</name>
						<description></description>
						<min>0</min>
						<max>3</max>
						<value>3</value>
					</real>
				</param>
				<param>
					<real>
						<name>Height</name>
						<description></description>
						<min>0</min>
						<max>1</max>
						<value>0.5</value>
					</real>
				</param>
				<shader><![CDATA[]]></shader>
		</shared_shader_info>
			<diffuse_albedo>
				<shader>
						<param>
							<colour3>
								<name>Col1</name>
								<description></description>
								<value>0.4819522500038147 0.3250369727611542 0.2508402466773987</value>
							</colour3>
						</param>
						<param>
							<colour3>
								<name>Col2</name>
								<description></description>
								<value>0.15105804800987244 0.1332085132598877 0.10615606606006622</value>
							</colour3>
						</param>
						<param>
							<real>
								<name>colourBalance</name>
								<description></description>
								<min>0</min>
								<max>4</max>
								<value>0.88</value>
							</real>
						</param>
						<shader><![CDATA[def distance(vec3 ps, real scl, int oct) real:
let
	octave = toFloat(oct + 1)
	pw = pow(2, octave) / 2.0
	pos = ps * (scl * pw * paramOctavesRatio())
	Vo = voronoi3d(pos, paramDisorder())
in
	dist(pos, Vo) / pw

def eval(vec3 pos) vec3 :
let
	pos = posOS()
	scale = paramScale()
	variance = 1.0-fbm01(pos * 100.0, 6) * 0.4 + 0.2
	compute = distance(pos, scale, 0)
			+ distance(pos, scale, 1)
			+ distance(pos, scale, 2)
			+ distance(pos, scale, 3) #+ paramOffset()
	output = compute * 0.53 # 1.0 + 0.5 + 0.25 + 0.125 = 1.875; 1.0/1.875 = 0.53
	col1 = paramCol1() * variance
	col2 = paramCol2() * variance
	balance = pow(output, paramcolourBalance())

	bip = lerp(	col1, col2,
				balance	)

in

#pow(
		
	#if(output < 0.0, vec3(0, 0.5, 1), if(output > 1.0, vec3(1, 0.5, 0), bip))
	#if(balance>0.3,col1, col2)
	bip	

#, 2.5)


]]></shader>
				</shader>
			</diffuse_albedo>
			<exponent>
				<shader>
						<shader><![CDATA[def distance(vec3 ps, real scl, int oct) real:
let
	octave = toFloat(oct + 1)
	pw = pow(2, octave) / 2.0
	pos = ps * (scl * pw * paramOctavesRatio())
	Vo = voronoi3d(pos, paramDisorder())
in
	dist(pos, Vo) / pw

def eval(vec3 pos) real :
	
let
	pos = posOS()
	scale = paramScale()
	compute = distance(pos, scale, 0)
			+ distance(pos, scale, 1)
			+ distance(pos, scale, 2)
			+ distance(pos, scale, 3) #+ paramOffset()

						#?
	output = compute * 0.53 #+0.25

in
	output * 7.0 + 1.6]]></shader>
				</shader>
			</exponent>
			<bump>
				<shader>
						<shader><![CDATA[def distance(vec3 ps, real scl, int oct) real:
let
	octave = toFloat(oct + 1)
	pw = pow(2, octave) / 2.0
	pos = ps * (scl * pw * paramOctavesRatio())
	Vo = voronoi3d(pos, paramDisorder())
in
	dist(pos, Vo) / pw

def eval() real :
let
	pos = posOS()
	scale = paramScale()
	height = paramHeight()
	variance = fbm(pos * 400.0, 4) * 0.1
	compute = distance(pos, scale, 0)
			+ distance(pos, scale, 1)
			+ distance(pos, scale, 2)
			+ distance(pos, scale, 3) #+ paramOffset()

						#?
	output = compute * 0.53 + variance #+0.25



in
	(output * height - height * 0.5) / (scale * paramOctavesRatio() * 2.0)
]]></shader>
				</shader>
			</bump>
			<displacement>
				<shader>
						<param>
							<real>
								<name>Offset</name>
								<description></description>
								<min>-2</min>
								<max>2</max>
								<value>0.15</value>
							</real>
						</param>
						<shader><![CDATA[def distance(vec3 ps, real scl, int oct) real:
let
	octave = toFloat(oct + 1)
	pw = pow(2, octave) / 2.0
	pos = ps * (scl * pw * paramOctavesRatio())
	Vo = voronoi3d(pos, paramDisorder())
in
	dist(pos, Vo) / pw

def eval() real :
let
	pos = posOS()
	scale = paramScale()
	height = paramHeight()
	compute = distance(pos, scale, 0)
			+ distance(pos, scale, 1)
			+ distance(pos, scale, 2)
			+ distance(pos, scale, 3)
			+ paramOffset()	#	displacement specific

	output = (compute) * 0.53

in
	(output * height - height * 0.5) / (scale * paramOctavesRatio())]]></shader>
				</shader>
			</displacement>
			<fresnel_scale>
					<constant>0.835</constant>
			</fresnel_scale>
			<layer>0</layer>
			<ior>1.05</ior>
			<nk_data></nk_data>
		</phong>
	</material>
</scenedata>
