Browse Source

I can't stop changing ultra strip and what the fill. Especially wtf

master
Crystalize 8 months ago
parent
commit
e787201a02
  1. 43
      epolar_strip.xml
  2. 45
      linkB_ultra_strip.xml
  3. 43
      linkX_what_the_fill.xml

43
epolar_strip.xml

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<user_transforms>
<transform_def name="epolar_strip">
<!-- Xform by Crystalize, based on the wonderful work of Tatasz -->
<node name="input_params">
<real name="epolar_strip">1</real>
<real name="epolar_strip_length" minval="0" >1</real>
<real name="epolar_strip_strength" minval="0" >1</real>
</node>
<node name="internal_params">
<real name="weight" />
<real name="t" />
<real name="strength" />
</node>
<int name="num_unit_randoms">3</int>
<string name="winter_init_function">
<![CDATA[
epolar_strip_init_result(epolar_strip, epolar_strip_length, epolar_strip_strength)
]]>
</string>
<string name="winter_eval_function">
<![CDATA[
let
tmp = dot(p_in, p_in) + t
z = complex(p_in.y, p_in.x)
result = halfinvpi() * log((z * tmp) + (z * tmp))
epolar = vec2(result.im, result.re)
cpx = clamp(epolar.x, -0.5, 0.5)
cpy = clamp(epolar.y, 0.0, 0.5)
rpolar = lerp(vec2(cpx, cpy), vec2(-cpx, -cpy), if unit_rnd_0 >= 0.5 then 1.0 else 0.0)
log_out = vec2(rpolar.y, rpolar.x + floor(log(unit_rnd_2) * (if unit_rnd_1 < 0.5
then strength
else -strength) + 0.5)) * (weight * 2.0)
in
log_out
]]>
</string>
</transform_def>
</user_transforms>

45
linkB_ultra_strip.xml

@ -25,8 +25,8 @@
<real name="iw2" />
</node>
<int name="num_unit_randoms">7</int>
<int name="num_gauss_randoms">1</int>
<int name="num_unit_randoms">9</int>
<int name="num_gauss_randoms">2</int>
<string name="winter_init_function">
<![CDATA[
@ -43,19 +43,42 @@
rotm = mat2x2(
cos(atr), -sin(atr),
sin(atr), cos(atr))
atin = rotm * p_in
z = complex(atin.x * size, atin.y * size)
atin = rotm * p_in * size
tmp = dot(atin, atin) + size
z = complex(atin.x, atin.y)
z1 = 1.0 / z
resulta = halfinvpi() * log((z + 1.0) / (-z + 1.0))
resultb = invpi() * log(z + sqrt(z * z + 1.0))
resultc = halfinvpi() * log(z1 + sqrt(z1 + 1.0) * sqrt(z1 - 1.0))
result = if iswitch == 0.0 then resulta else resultb
at_out = if iswitch == 1.0 then lerp(vec2(resultc.im, resultc.re), vec2(-resultc.im, -resultc.re), if unit_rnd_6 <= 0.5 then 0.0 else 1.0) else vec2(result.im, result.re)
catx = clamp(at_out.x, -0.5, 0.5)
caty = clamp(at_out.y, -0.5, 0.5)
log_out = vec2(caty, catx + floor(log(unit_rnd_0) * (if unit_rnd_1 < 0.5
then strength
else -strength) + 0.5)) * (weight * (1.8 - (cw * 2)))
resultd = halfinvpi() * log((z * tmp) + (z * tmp))
epolar = vec2(resultd.im, resultd.re)
cpx = clamp(epolar.x, -0.5, 0.5)
cpy = clamp(epolar.y, 0.0, 0.5)
a1 = unit_rnd_8 * twopi()
s1 = gauss_rnd_1 * size
gauss = vec2(cos(a1), sin(a1)) * s1 + (atin / size)
arctanh = vec2(resulta.im, resulta.re)
arcsinh = vec2(resultb.im, resultb.re)
arcsech = lerp(vec2(resultc.im, resultc.re), vec2(-resultc.im, -resultc.re), if unit_rnd_6 <= 0.5
then 0.0
else 1.0)
rpolar = lerp(vec2(cpx, cpy), vec2(-cpx, -cpy), if unit_rnd_7 >= 0.5 then 1.0 else 0.0)
cylinder = vec2(gauss.x / sqrt(gauss.x * gauss.x + 1.0), gauss.y * strength) * 0.5
inside = if iswitch <= 0.0
then arctanh
else if iswitch <= 0.25
then arcsinh
else if iswitch <= 0.5
then arcsech
else if iswitch <= 0.75
then rpolar
else cylinder
cinx = clamp(inside.x, -0.5, 0.5)
ciny = clamp(inside.y, -0.5, 0.5)
log_out = (if iswitch > 0.75 then cylinder else vec2(ciny, cinx + floor(log(unit_rnd_0) * (if unit_rnd_1 < 0.5
then strength
else -strength) + 0.5))) * (weight * (1.8 - (cw * 2)))
a = unit_rnd_2 * twopi()
s = sqrt(abs(gauss_rnd_0)) * clbs

43
linkX_what_the_fill.xml

@ -29,8 +29,8 @@
<real name="iw2" />
</node>
<int name="num_unit_randoms">7</int>
<int name="num_gauss_randoms">1</int>
<int name="num_unit_randoms">9</int>
<int name="num_gauss_randoms">2</int>
<string name="winter_init_function">
<![CDATA[
@ -48,19 +48,42 @@
rotm = mat2x2(
cos(atr), -sin(atr),
sin(atr), cos(atr))
atin = rotm * p_in
z = complex(atin.x * size, atin.y * size)
atin = rotm * p_in * size
tmp = dot(atin, atin) + size
z = complex(atin.x, atin.y)
z1 = 1.0 / z
resulta = halfinvpi() * log((z + 1.0) / (-z + 1.0))
resultb = invpi() * log(z + sqrt(z * z + 1.0))
resultc = halfinvpi() * log(z1 + sqrt(z1 + 1.0) * sqrt(z1 - 1.0))
result = if iswitch == 0.0 then resulta else resultb
at_out = if iswitch == 1.0 then lerp(vec2(resultc.im, resultc.re), vec2(-resultc.im, -resultc.re), if unit_rnd_6 <= 0.5 then 0.0 else 1.0) else vec2(result.im, result.re)
catx = clamp(at_out.x, -0.5, 0.5)
caty = clamp(at_out.y, -0.5, 0.5)
log_out = vec2(caty, catx + floor(log(unit_rnd_0) * (if unit_rnd_1 < 0.5
resultd = halfinvpi() * log((z * tmp) + (z * tmp))
epolar = vec2(resultd.im, resultd.re)
cpx = clamp(epolar.x, -0.5, 0.5)
cpy = clamp(epolar.y, 0.0, 0.5)
a1 = unit_rnd_8 * twopi()
s1 = gauss_rnd_1 * size
gauss = vec2(cos(a1), sin(a1)) * s1 + (atin / size)
arctanh = vec2(resulta.im, resulta.re)
arcsinh = vec2(resultb.im, resultb.re)
arcsech = lerp(vec2(resultc.im, resultc.re), vec2(-resultc.im, -resultc.re), if unit_rnd_6 <= 0.5
then 0.0
else 1.0)
rpolar = lerp(vec2(cpx, cpy), vec2(-cpx, -cpy), if unit_rnd_7 >= 0.5 then 1.0 else 0.0)
cylinder = vec2(gauss.x / sqrt(gauss.x * gauss.x + 1.0), gauss.y * strength) * 0.5
inside = if iswitch <= 0.0
then arctanh
else if iswitch <= 0.25
then arcsinh
else if iswitch <= 0.5
then arcsech
else if iswitch <= 0.75
then rpolar
else cylinder
cinx = clamp(inside.x, -0.5, 0.5)
ciny = clamp(inside.y, -0.5, 0.5)
log_out = (if iswitch > 0.75 then cylinder else vec2(ciny, cinx + floor(log(unit_rnd_0) * (if unit_rnd_1 < 0.5
then strength
else -strength) + 0.5)) * (weight * (1.8 - (cw * 2)))
else -strength) + 0.5))) * (weight * (1.8 - (cw * 2)))
scale = weight / (dot(p_in, p_in))
x_off = if p_in.x >= 0 then (1.0 + cw) else (-1.0 - cw)

Loading…
Cancel
Save