<?xml version="1.0" encoding="utf-8"?>
<scenedata>
	<material>
		<name>previewmaterial</name>
		<phong>
			<diffuse_albedo>
				<shader>
						<shader><![CDATA[
def level() real :
	0.5
	
def complexity() int :
	4
	
def woodLocks(real locksDensityU, real locksDensityV) real :
#
#	grain, locks
#
(
	clamp
	(
		fbm(
			texi() * locksDensityU,
			texj() * locksDensityV,
			0.5,
			complexity()),
		level(),
		1.0
	) - level()
) / (1.0 - level())

def dispersion() real :
	abs(fbm(tex() * 10., complexity()) / 7.5 + 0.25)

def veins() real :
	fbm(texi() * 2., texj() * 60., 0.5, complexity())
	
	

def ridules(vec3 col1, vec3 col2, real dispersion, real grain, real count, real veins) vec3 :
#
#	veins, smaller veins
#
#	col1 = vec3(0.32, 0.26, 0.16) - vec3(woodLocks(100., 2400.) / 4.)
#	col2 = vec3(0.56, 0.45, 0.3) - vec3(woodLocks(100., 2400.) / 8.)
#	grain = woodLocks(8.0, 48.0) * 4.
#	count = 40.
#	dispersion = abs(noise(tex() * 10.) / 7.5 + 0.25)
#	veins = (fbm(texi() * 2., texj() * 60., 0.5, 3))
#
(
	lerp(
		col1,
		col2,
		pow(
			fract(
			(
				(	texj()	#	bool v => texi() (inversely)
				+	veins * (1. / count)
				)
			)	* count
			+	grain
			),
			dispersion
		)
	)
)

def eval(vec3 col) vec3 :
(
	ridules(
		vec3(0.32, 0.26, 0.16) - vec3(woodLocks(100., 2400.) / 4.),
		vec3(0.56, 0.43, 0.2) - vec3(woodLocks(100., 2400.) / 8.),
		dispersion(),
		woodLocks(8.0, 48.0) * 4.,
		40.,
		veins()
	)
	-
	vec3(woodLocks(8.0, 48.0) / 6.)
)
+
(	
	ridules(
		vec3(0.32, 0.26, 0.16),
		vec3(0.56, 0.43, 0.2),
		dispersion(),
		woodLocks(8.0, 48.0) * 4.,
		320.,
		veins()
	)
)

# REFERENCE:

#def eval(vec3 col) vec3 :
#	lerp(
#		vec3(0.32, 0.26, 0.16) - vec3(woodLocks(100., 2400.) / 4.),
#		vec3(0.56, 0.45, 0.3) - vec3(woodLocks(100., 2400.) / 8.),
#		pow(
#			fract(
#			(
#				(	texj()
#				+	(fbm(texi() * 2., texj() * 60., 0.5, 3)) / 100.	# formerly 100., not count (test)
#				)
#			)	* 40.
#			+	woodLocks(8.0, 48.0) * 4.
#			),
#			abs(noise(tex() * 10.) / 7.5 + 0.25)
#		)
#	) - vec3(woodLocks(8., 48.) / 8.)]]></shader>
				</shader>
			</diffuse_albedo>
			<exponent>
				<constant>
					60
				</constant>
			</exponent>
			<bump>
				<shader>
						<shader><![CDATA[def luminance(vec3 col) real :
(	e0(col) + e1(col) + e2(col)	) / 3.0

def level() real :
	0.5
	
def complexity() int :
	4
	
def woodLocks(real locksDensityU, real locksDensityV) real :
#
#	grain, locks
#
(
	clamp
	(
		fbm(
			texi() * locksDensityU,
			texj() * locksDensityV,
			0.5,
			complexity()),
		level(),
		1.0
	) - level()
) / (1.0 - level())

def dispersion() real :
	abs(fbm(tex() * 10., complexity()) / 30. + 0.15)

def veins() real :
	fbm(texi() * 2., texj() * 60., 0.5, complexity())
	
	

def ridules(vec3 col1, vec3 col2, real dispersion, real grain, real count, real veins) vec3 :
#
#	veins, smaller veins
#
#	col1 = vec3(0.32, 0.26, 0.16) - vec3(woodLocks(100., 2400.) / 4.)
#	col2 = vec3(0.56, 0.45, 0.3) - vec3(woodLocks(100., 2400.) / 8.)
#	grain = woodLocks(8.0, 48.0) * 4.
#	count = 40.
#	dispersion = abs(noise(tex() * 10.) / 7.5 + 0.25)
#	veins = (fbm(texi() * 2., texj() * 60., 0.5, 3))
#
(
	lerp(
		col1,
		col2,
		pow(
			fract(
			(
				(	texj()	#	bool v => texi() (inversely)
				+	veins * (1. / count)
				)
			)	* count
			+	grain
			),
			dispersion
		)
	)
)

def eval() real :
luminance(
(
	ridules(
		vec3(0.32, 0.26, 0.16) - vec3(woodLocks(100., 2400.) / 4.),
		vec3(0.56, 0.43, 0.2) - vec3(woodLocks(100., 2400.) / 8.),
		dispersion(),
		woodLocks(8.0, 48.0) * 4.,
		40.,
		veins()
	)
)
+
(
	ridules(
		vec3(0.32, 0.26, 0.16),
		vec3(0.56, 0.43, 0.2),
		dispersion(),
		woodLocks(8.0, 48.0) * 4.,
		320.,
		veins()
	)
) * 0.1
) * 0.005 - 0.0025]]></shader>
				</shader>
			</bump>
			<layer>0</layer>
			<fresnel_scale>1</fresnel_scale>
			<ior>1.3</ior>
			<nk_data></nk_data>
		</phong>
	</material>
</scenedata>
