tsl-textures 2.1.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/tsl-textures.js +801 -537
- package/dist/cjs/tsl-textures.min.js +2 -2
- package/dist/tsl-textures.js +801 -538
- package/dist/tsl-textures.min.js +2 -2
- package/package.json +1 -1
- package/src/camouflage.js +20 -20
- package/src/cave-art.js +21 -20
- package/src/circles.js +20 -20
- package/src/clouds.js +26 -23
- package/src/concrete.js +17 -17
- package/src/cork.js +19 -19
- package/src/dalmatian-spots.js +21 -19
- package/src/dyson-sphere.js +20 -20
- package/src/entangled.js +19 -19
- package/src/fordite.js +14 -14
- package/src/gas-giant.js +21 -20
- package/src/grid.js +21 -21
- package/src/isolines.js +21 -20
- package/src/karst-rock.js +18 -18
- package/src/marble.js +20 -20
- package/src/neon-lights.js +22 -22
- package/src/photosphere.js +18 -18
- package/src/planet.js +31 -31
- package/src/polka-dots.js +20 -20
- package/src/processed-wood.js +22 -21
- package/src/protozoa.js +20 -19
- package/src/rotator.js +23 -23
- package/src/rough-clay.js +19 -17
- package/src/runny-eggs.js +27 -26
- package/src/rust.js +25 -24
- package/src/satin.js +18 -5
- package/src/scaler.js +23 -23
- package/src/scepter-head.js +19 -19
- package/src/scream.js +19 -5
- package/src/simplex-noise.js +20 -5
- package/src/stars.js +19 -19
- package/src/supersphere.js +17 -17
- package/src/tiger-fur.js +22 -5
- package/src/translator.js +22 -22
- package/src/tsl-utils.js +194 -3
- package/src/voronoi-cells.js +19 -19
- package/src/water-drops.js +18 -17
- package/src/watermelon.js +23 -23
- package/src/wood.js +20 -20
- package/src/zebra-lines.js +22 -22
package/dist/cjs/tsl-textures.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// TSL Textures v2.1.
|
|
1
|
+
// TSL Textures v2.1.2
|
|
2
2
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
@@ -538,9 +538,30 @@ function hideFallbackWarning( ) {
|
|
|
538
538
|
|
|
539
539
|
|
|
540
540
|
// converts all numeric, color and vector properties to nodes
|
|
541
|
-
function prepare(
|
|
541
|
+
function prepare( userParams, defaults ) {
|
|
542
542
|
|
|
543
|
-
|
|
543
|
+
var propertyNames = [];
|
|
544
|
+
for ( var item of userParams ) {
|
|
545
|
+
|
|
546
|
+
if ( item && typeof item === 'object' ) {
|
|
547
|
+
|
|
548
|
+
propertyNames = Object.keys( item );
|
|
549
|
+
break;
|
|
550
|
+
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
var params = { ...defaults };
|
|
556
|
+
|
|
557
|
+
for ( var key of propertyNames ) {
|
|
558
|
+
|
|
559
|
+
if ( typeof userParams[ key ] !== 'undefined' )
|
|
560
|
+
params[ key ] = userParams[ key ];
|
|
561
|
+
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
for ( var name of Object.keys( params ) ) {
|
|
544
565
|
|
|
545
566
|
if ( typeof params[ name ] === 'number' )
|
|
546
567
|
params[ name ] = tsl.float( params[ name ]);
|
|
@@ -564,11 +585,196 @@ function noised( pos, scale=1, octave=1, seed=0 ) {
|
|
|
564
585
|
|
|
565
586
|
return tsl.mx_noise_float( pos.mul( scale, octave ).add( seed ) );
|
|
566
587
|
|
|
567
|
-
}
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
|
|
592
|
+
// a shim (proposed by Grok) to recover from a change of how Fn
|
|
593
|
+
// is proxied since Three.js v0.180.0
|
|
594
|
+
|
|
595
|
+
// explanation from Grok:
|
|
596
|
+
/*
|
|
597
|
+
In 0.179.0, TSL.Fn likely returned a plain function, allowing a.defaults
|
|
598
|
+
to work without Proxy interference. In 0.180.0, the Proxy wrapping an FnNode
|
|
599
|
+
instance blocks defaults access (returns undefined) and requires specific FnNode
|
|
600
|
+
behavior, making the wrapper incompatible.
|
|
601
|
+
|
|
602
|
+
Solutions to Fix the Error and Access a.defaultsWe need a solution that:
|
|
603
|
+
|
|
604
|
+
* Makes a.defaults directly accessible.
|
|
605
|
+
* Preserves TSL compatibility by ensuring the object passed to TSL behaves
|
|
606
|
+
like a TSL.Fn Proxy.
|
|
607
|
+
* Avoids separate defaults variables.
|
|
608
|
+
* Mimics the 0.179.0 API where a.defaults worked.
|
|
609
|
+
|
|
610
|
+
Given the error, direct property access on the TSL.Fn Proxy (e.g., Object.defineProperty(a, 'defaults', {...})) fails because the get trap
|
|
611
|
+
returns undefined for unknown properties on FnNode. The non-Proxy wrapper
|
|
612
|
+
breaks TSL, so let’s try a refined approach that balances compatibility and
|
|
613
|
+
accessibility.1. Proxy Wrapper with FnNode PrototypeInstead of a non-Proxy
|
|
614
|
+
wrapper, create a Proxy that mimics TSL.Fn but stores defaults separately to
|
|
615
|
+
bypass FnNode’s get behavior. To avoid breaking TSL, ensure the Proxy’s target
|
|
616
|
+
has the FnNode prototype.
|
|
617
|
+
|
|
618
|
+
Why This Might Work:
|
|
619
|
+
|
|
620
|
+
* The Proxy’s target inherits the FnNode prototype (via fn.call), making it
|
|
621
|
+
appear more like the original TSL.Fn Proxy to TSL’s checks.
|
|
622
|
+
* defaults is stored in a Map, bypassing FnNode’s get trap that returns
|
|
623
|
+
undefined.
|
|
624
|
+
* a.fn exposes the original TSL.Fn Proxy for TSL operations.
|
|
625
|
+
* Function calls (a(...)) are forwarded to the original Proxy.
|
|
626
|
+
* Matches Object.getOwnPropertyDescriptor behavior.
|
|
627
|
+
|
|
628
|
+
*/
|
|
629
|
+
|
|
630
|
+
function TSLFn( jsFunc, defaults, layout = null ) {
|
|
631
|
+
|
|
632
|
+
var opacity = null;
|
|
633
|
+
var roughness = null;
|
|
634
|
+
var normal = null;
|
|
635
|
+
|
|
636
|
+
const fn = tsl.Fn( jsFunc, layout );
|
|
637
|
+
const customProps = new Map();
|
|
638
|
+
customProps.set( 'defaults', defaults );
|
|
639
|
+
customProps.set( 'opacity', opacity );
|
|
640
|
+
customProps.set( 'roughness', roughness );
|
|
641
|
+
customProps.set( 'normal', normal );
|
|
642
|
+
|
|
643
|
+
// Create a target with FnNode prototype to mimic TSL.Fn
|
|
644
|
+
const target = function () {};
|
|
645
|
+
|
|
646
|
+
Object.setPrototypeOf( target, Object.getPrototypeOf( fn.call ) ); // Inherit FnNode prototype
|
|
647
|
+
|
|
648
|
+
return new Proxy( target, {
|
|
649
|
+
get( target, prop, receiver ) {
|
|
650
|
+
|
|
651
|
+
if ( prop === 'defaults' ) {
|
|
652
|
+
|
|
653
|
+
return customProps.get( 'defaults' );
|
|
654
|
+
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
if ( prop === 'opacity' ) {
|
|
658
|
+
|
|
659
|
+
return customProps.get( 'opacity' );
|
|
660
|
+
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
if ( prop === 'roughness' ) {
|
|
664
|
+
|
|
665
|
+
return customProps.get( 'roughness' );
|
|
666
|
+
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
if ( prop === 'normal' ) {
|
|
670
|
+
|
|
671
|
+
return customProps.get( 'normal' );
|
|
672
|
+
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
if ( prop === 'fn' ) {
|
|
676
|
+
|
|
677
|
+
return fn; // Expose original TSL.Fn Proxy
|
|
678
|
+
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
return Reflect.get( fn, prop, receiver ); // Forward to original Proxy
|
|
568
682
|
|
|
569
|
-
|
|
683
|
+
},
|
|
684
|
+
set( target, prop, value, receiver ) {
|
|
685
|
+
|
|
686
|
+
if ( prop === 'defaults' ) {
|
|
687
|
+
|
|
688
|
+
customProps.set( 'defaults', value );
|
|
689
|
+
return true;
|
|
690
|
+
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
if ( prop === 'opacity' ) {
|
|
694
|
+
|
|
695
|
+
customProps.set( 'opacity', value );
|
|
696
|
+
return true;
|
|
697
|
+
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
if ( prop === 'roughness' ) {
|
|
701
|
+
|
|
702
|
+
customProps.set( 'roughness', value );
|
|
703
|
+
return true;
|
|
704
|
+
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
if ( prop === 'normal' ) {
|
|
708
|
+
|
|
709
|
+
customProps.set( 'normal', value );
|
|
710
|
+
return true;
|
|
711
|
+
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
return Reflect.set( fn, prop, value, receiver );
|
|
715
|
+
|
|
716
|
+
},
|
|
717
|
+
apply( target, thisArg, args ) {
|
|
718
|
+
|
|
719
|
+
return Reflect.apply( fn, thisArg, args ); // Delegate calls to original Proxy
|
|
720
|
+
|
|
721
|
+
},
|
|
722
|
+
getOwnPropertyDescriptor( target, prop ) {
|
|
723
|
+
|
|
724
|
+
if ( prop === 'defaults' ) {
|
|
725
|
+
|
|
726
|
+
return {
|
|
727
|
+
value: customProps.get( 'defaults' ),
|
|
728
|
+
writable: true,
|
|
729
|
+
enumerable: true,
|
|
730
|
+
configurable: true,
|
|
731
|
+
};
|
|
732
|
+
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
if ( prop === 'opacity' ) {
|
|
736
|
+
|
|
737
|
+
Reflect.getOwnPropertyDescriptor( opacity, prop );
|
|
738
|
+
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
if ( prop === 'roughness' ) {
|
|
742
|
+
|
|
743
|
+
Reflect.getOwnPropertyDescriptor( roughness, prop );
|
|
744
|
+
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
if ( prop === 'normal' ) {
|
|
748
|
+
|
|
749
|
+
Reflect.getOwnPropertyDescriptor( normal, prop );
|
|
750
|
+
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
return Reflect.getOwnPropertyDescriptor( fn, prop );
|
|
754
|
+
|
|
755
|
+
}
|
|
756
|
+
} );
|
|
757
|
+
|
|
758
|
+
} // TSLFn
|
|
759
|
+
|
|
760
|
+
var defaults$C = {
|
|
761
|
+
$name: 'Camouflage',
|
|
762
|
+
|
|
763
|
+
scale: 2,
|
|
764
|
+
|
|
765
|
+
colorA: new three.Color( 0xc2bea8 ),
|
|
766
|
+
colorB: new three.Color( 0x9c895e ),
|
|
767
|
+
colorC: new three.Color( 0x92a375 ),
|
|
768
|
+
colorD: new three.Color( 0x717561 ),
|
|
769
|
+
|
|
770
|
+
seed: 0,
|
|
771
|
+
};
|
|
772
|
+
|
|
570
773
|
|
|
571
|
-
|
|
774
|
+
|
|
775
|
+
var camouflage = TSLFn( ( params )=>{
|
|
776
|
+
|
|
777
|
+
params = prepare( params, defaults$C );
|
|
572
778
|
|
|
573
779
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
|
|
574
780
|
|
|
@@ -601,26 +807,26 @@ var camouflage = tsl.Fn( ( params )=>{
|
|
|
601
807
|
|
|
602
808
|
return color;
|
|
603
809
|
|
|
604
|
-
} );
|
|
810
|
+
}, defaults$C );
|
|
811
|
+
|
|
812
|
+
var defaults$B = {
|
|
813
|
+
$name: 'Cave art',
|
|
605
814
|
|
|
815
|
+
scale: 2,
|
|
816
|
+
thinness: 2,
|
|
817
|
+
noise: 0.3,
|
|
606
818
|
|
|
819
|
+
color: new three.Color( 0xD34545 ),
|
|
820
|
+
background: new three.Color( 0xFFF8F0 ),
|
|
607
821
|
|
|
608
|
-
|
|
609
|
-
|
|
822
|
+
seed: 0,
|
|
823
|
+
};
|
|
610
824
|
|
|
611
|
-
scale: 2,
|
|
612
825
|
|
|
613
|
-
colorA: new three.Color( 0xc2bea8 ),
|
|
614
|
-
colorB: new three.Color( 0x9c895e ),
|
|
615
|
-
colorC: new three.Color( 0x92a375 ),
|
|
616
|
-
colorD: new three.Color( 0x717561 ),
|
|
617
826
|
|
|
618
|
-
|
|
619
|
-
};
|
|
620
|
-
|
|
621
|
-
var caveArt = tsl.Fn( ( params ) => {
|
|
827
|
+
var caveArt = TSLFn( ( params ) => {
|
|
622
828
|
|
|
623
|
-
params = prepare(
|
|
829
|
+
params = prepare( params, defaults$B );
|
|
624
830
|
|
|
625
831
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
|
|
626
832
|
|
|
@@ -644,26 +850,26 @@ var caveArt = tsl.Fn( ( params ) => {
|
|
|
644
850
|
|
|
645
851
|
return tsl.mix( params.background, params.color, k );
|
|
646
852
|
|
|
647
|
-
} );
|
|
853
|
+
}, defaults$B );
|
|
854
|
+
|
|
855
|
+
var defaults$A = {
|
|
856
|
+
$name: 'Circles',
|
|
648
857
|
|
|
858
|
+
scale: 2,
|
|
859
|
+
variety: 1,
|
|
649
860
|
|
|
861
|
+
color: new three.Color( 0xF0E0D0 ),
|
|
650
862
|
|
|
651
|
-
|
|
652
|
-
$name: 'Cave art',
|
|
863
|
+
flat: 0,
|
|
653
864
|
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
noise: 0.3,
|
|
865
|
+
seed: 0,
|
|
866
|
+
};
|
|
657
867
|
|
|
658
|
-
color: new three.Color( 0xD34545 ),
|
|
659
|
-
background: new three.Color( 0xFFF8F0 ),
|
|
660
868
|
|
|
661
|
-
seed: 0,
|
|
662
|
-
};
|
|
663
|
-
|
|
664
|
-
var circles = tsl.Fn( ( params ) => {
|
|
665
869
|
|
|
666
|
-
|
|
870
|
+
var circles = TSLFn( ( params ) => {
|
|
871
|
+
|
|
872
|
+
params = prepare( params, defaults$A );
|
|
667
873
|
|
|
668
874
|
var pos = tsl.select( params.flat, tsl.positionGeometry, tsl.positionGeometry.normalize() );
|
|
669
875
|
|
|
@@ -693,28 +899,25 @@ var circles = tsl.Fn( ( params ) => {
|
|
|
693
899
|
|
|
694
900
|
return hsl( huei.add( huef ).div( 10 ), HSL.y, HSL.z );
|
|
695
901
|
|
|
696
|
-
} );
|
|
697
|
-
|
|
902
|
+
}, defaults$A );
|
|
903
|
+
|
|
904
|
+
var defaults$z = {
|
|
905
|
+
$name: 'Clouds',
|
|
698
906
|
|
|
907
|
+
scale: 2,
|
|
908
|
+
density: 0.5,
|
|
909
|
+
opacity: 1,
|
|
699
910
|
|
|
700
|
-
|
|
701
|
-
|
|
911
|
+
color: new three.Color( 0xFFFFFF ),
|
|
912
|
+
subcolor: new three.Color( 0xA0A0B0 ),
|
|
702
913
|
|
|
703
|
-
|
|
704
|
-
|
|
914
|
+
seed: 0,
|
|
915
|
+
};
|
|
705
916
|
|
|
706
|
-
color: new three.Color( 0xF0E0D0 ),
|
|
707
917
|
|
|
708
|
-
flat: 0,
|
|
709
918
|
|
|
710
|
-
seed: 0,
|
|
711
|
-
};
|
|
712
|
-
|
|
713
919
|
var _clouds = tsl.Fn( ( params ) => {
|
|
714
920
|
|
|
715
|
-
// prepare parameters
|
|
716
|
-
params = prepare( { ...clouds.defaults, ...params } );
|
|
717
|
-
|
|
718
921
|
const pos = tsl.positionGeometry;
|
|
719
922
|
const scale = tsl.exp( params.scale.div( 1.5 ).sub( 0.5 ) );
|
|
720
923
|
|
|
@@ -737,35 +940,39 @@ var _clouds = tsl.Fn( ( params ) => {
|
|
|
737
940
|
|
|
738
941
|
|
|
739
942
|
|
|
740
|
-
var clouds =
|
|
741
|
-
|
|
742
|
-
return _clouds( params ).rgb;
|
|
943
|
+
var clouds = TSLFn( ( params ) => {
|
|
743
944
|
|
|
744
|
-
|
|
945
|
+
// prepare parameters
|
|
946
|
+
params = prepare( params, defaults$z );
|
|
745
947
|
|
|
948
|
+
return _clouds( params ).rgb;
|
|
746
949
|
|
|
950
|
+
}, defaults$z );
|
|
747
951
|
|
|
748
|
-
clouds.opacity = tsl.Fn( ( params ) => {
|
|
749
952
|
|
|
750
|
-
return _clouds( params ).a;
|
|
751
953
|
|
|
752
|
-
|
|
954
|
+
clouds.opacity = TSLFn( ( params ) => {
|
|
753
955
|
|
|
956
|
+
// prepare parameters
|
|
957
|
+
params = prepare( params, defaults$z );
|
|
754
958
|
|
|
959
|
+
return _clouds( params ).a;
|
|
755
960
|
|
|
756
|
-
|
|
757
|
-
|
|
961
|
+
}, defaults$z );
|
|
962
|
+
|
|
963
|
+
var defaults$y = {
|
|
964
|
+
$name: 'Concrete',
|
|
965
|
+
$normalNode: true,
|
|
758
966
|
|
|
759
967
|
scale: 2,
|
|
760
968
|
density: 0.5,
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
color: new three.Color( 0xFFFFFF ),
|
|
764
|
-
subcolor: new three.Color( 0xA0A0B0 ),
|
|
969
|
+
bump: 0.5,
|
|
765
970
|
|
|
766
971
|
seed: 0,
|
|
767
|
-
};
|
|
768
|
-
|
|
972
|
+
};
|
|
973
|
+
|
|
974
|
+
|
|
975
|
+
|
|
769
976
|
var surfacePos$7 = tsl.Fn( ([ pos, normal, bump, density, seed ]) => {
|
|
770
977
|
|
|
771
978
|
var k = tsl.mx_noise_float( pos.add( seed ) ).mul( 0.5 ).add( 0.5 );
|
|
@@ -776,9 +983,9 @@ var surfacePos$7 = tsl.Fn( ([ pos, normal, bump, density, seed ]) => {
|
|
|
776
983
|
} );
|
|
777
984
|
|
|
778
985
|
|
|
779
|
-
var concrete =
|
|
986
|
+
var concrete = TSLFn( ( params ) => {
|
|
780
987
|
|
|
781
|
-
params = prepare(
|
|
988
|
+
params = prepare( params, defaults$y );
|
|
782
989
|
|
|
783
990
|
var eps = 0.001;
|
|
784
991
|
|
|
@@ -799,21 +1006,23 @@ var concrete = tsl.Fn( ( params ) => {
|
|
|
799
1006
|
|
|
800
1007
|
return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
|
|
801
1008
|
|
|
802
|
-
} );
|
|
1009
|
+
}, defaults$y );
|
|
1010
|
+
|
|
1011
|
+
var defaults$x = {
|
|
1012
|
+
$name: 'Cork',
|
|
803
1013
|
|
|
1014
|
+
scale: 1,
|
|
1015
|
+
straight: 1,
|
|
1016
|
+
noise: 0.3,
|
|
1017
|
+
|
|
1018
|
+
color: new three.Color( 0xfff0c0 ),
|
|
1019
|
+
background: new three.Color( 0xd08060 ),
|
|
804
1020
|
|
|
1021
|
+
seed: 0,
|
|
1022
|
+
};
|
|
805
1023
|
|
|
806
|
-
concrete.defaults = {
|
|
807
|
-
$name: 'Concrete',
|
|
808
|
-
$normalNode: true,
|
|
809
1024
|
|
|
810
|
-
scale: 2,
|
|
811
|
-
density: 0.5,
|
|
812
|
-
bump: 0.5,
|
|
813
1025
|
|
|
814
|
-
seed: 0,
|
|
815
|
-
};
|
|
816
|
-
|
|
817
1026
|
var cellCenter$1 = tsl.Fn( ([ cell ])=>{
|
|
818
1027
|
|
|
819
1028
|
return cell.add( vnoise( cell ) );
|
|
@@ -821,9 +1030,9 @@ var cellCenter$1 = tsl.Fn( ([ cell ])=>{
|
|
|
821
1030
|
} );
|
|
822
1031
|
|
|
823
1032
|
|
|
824
|
-
var cork =
|
|
1033
|
+
var cork = TSLFn( ( params )=>{
|
|
825
1034
|
|
|
826
|
-
params = prepare(
|
|
1035
|
+
params = prepare( params, defaults$x );
|
|
827
1036
|
|
|
828
1037
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 1.5 ).add( 1 ) ) ).add( params.seed ).toVar( );
|
|
829
1038
|
|
|
@@ -868,26 +1077,26 @@ var cork = tsl.Fn( ( params )=>{
|
|
|
868
1077
|
|
|
869
1078
|
return color;
|
|
870
1079
|
|
|
871
|
-
} );
|
|
1080
|
+
}, defaults$x );
|
|
1081
|
+
|
|
1082
|
+
var defaults$w = {
|
|
1083
|
+
$name: 'Dalmatian spots',
|
|
1084
|
+
$width: 260,
|
|
872
1085
|
|
|
1086
|
+
scale: 2,
|
|
1087
|
+
density: 0.6,
|
|
873
1088
|
|
|
1089
|
+
color: new three.Color( 0xFFFFFF ),
|
|
1090
|
+
background: new three.Color( 0x000000 ),
|
|
874
1091
|
|
|
875
|
-
|
|
876
|
-
|
|
1092
|
+
seed: 0,
|
|
1093
|
+
};
|
|
877
1094
|
|
|
878
|
-
scale: 1,
|
|
879
|
-
straight: 1,
|
|
880
|
-
noise: 0.3,
|
|
881
1095
|
|
|
882
|
-
color: new three.Color( 0xfff0c0 ),
|
|
883
|
-
background: new three.Color( 0xd08060 ),
|
|
884
1096
|
|
|
885
|
-
|
|
886
|
-
};
|
|
887
|
-
|
|
888
|
-
var dalmatianSpots = tsl.Fn( ( params )=>{
|
|
1097
|
+
var dalmatianSpots = TSLFn( ( params )=>{
|
|
889
1098
|
|
|
890
|
-
params = prepare(
|
|
1099
|
+
params = prepare( params, defaults$w );
|
|
891
1100
|
|
|
892
1101
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).sub( 1000 ).toVar( );
|
|
893
1102
|
|
|
@@ -909,22 +1118,24 @@ var dalmatianSpots = tsl.Fn( ( params )=>{
|
|
|
909
1118
|
|
|
910
1119
|
return tsl.mix( params.background, params.color, k.clamp( 0, 1 ) );
|
|
911
1120
|
|
|
912
|
-
} );
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
$name: 'Dalmatian spots',
|
|
917
|
-
$width: 260,
|
|
1121
|
+
}, defaults$w );
|
|
1122
|
+
|
|
1123
|
+
var defaults$v = {
|
|
1124
|
+
$name: 'Dyson sphere',
|
|
918
1125
|
|
|
919
1126
|
scale: 2,
|
|
920
|
-
|
|
1127
|
+
complexity: 2,
|
|
921
1128
|
|
|
922
|
-
|
|
923
|
-
|
|
1129
|
+
variation: 0,
|
|
1130
|
+
|
|
1131
|
+
color: new three.Color( 0xc0d0ff ),
|
|
1132
|
+
background: new three.Color( 0 ),
|
|
924
1133
|
|
|
925
1134
|
seed: 0,
|
|
926
|
-
};
|
|
927
|
-
|
|
1135
|
+
};
|
|
1136
|
+
|
|
1137
|
+
|
|
1138
|
+
|
|
928
1139
|
var noisea = tsl.Fn( ([ pos ])=>{
|
|
929
1140
|
|
|
930
1141
|
var p = pos.mul( 5**0.5 ).fract().toVar();
|
|
@@ -976,9 +1187,9 @@ var noiseg = tsl.Fn( ([ pos ])=>{
|
|
|
976
1187
|
|
|
977
1188
|
|
|
978
1189
|
|
|
979
|
-
var dysonSphere =
|
|
1190
|
+
var dysonSphere = TSLFn( ( params )=>{
|
|
980
1191
|
|
|
981
|
-
params = prepare(
|
|
1192
|
+
params = prepare( params, defaults$v );
|
|
982
1193
|
|
|
983
1194
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 2 ).add( 0.5 ) ) ).add( params.seed ).toVar( );
|
|
984
1195
|
|
|
@@ -994,27 +1205,25 @@ var dysonSphere = tsl.Fn( ( params )=>{
|
|
|
994
1205
|
|
|
995
1206
|
return tsl.mix( params.background, params.color, res.x.add( 1 ).div( 5 ) );
|
|
996
1207
|
|
|
997
|
-
} );
|
|
998
|
-
|
|
1208
|
+
}, defaults$v );
|
|
1209
|
+
|
|
1210
|
+
var defaults$u = {
|
|
1211
|
+
$name: 'Entangled',
|
|
999
1212
|
|
|
1213
|
+
scale: 2,
|
|
1214
|
+
density: 10,
|
|
1000
1215
|
|
|
1001
|
-
|
|
1002
|
-
|
|
1216
|
+
color: new three.Color( 0x002040 ),
|
|
1217
|
+
background: new three.Color( 0xFFFFFF ),
|
|
1003
1218
|
|
|
1004
|
-
|
|
1005
|
-
|
|
1219
|
+
seed: 0,
|
|
1220
|
+
};
|
|
1006
1221
|
|
|
1007
|
-
variation: 0,
|
|
1008
1222
|
|
|
1009
|
-
color: new three.Color( 0xc0d0ff ),
|
|
1010
|
-
background: new three.Color( 0 ),
|
|
1011
1223
|
|
|
1012
|
-
|
|
1013
|
-
};
|
|
1014
|
-
|
|
1015
|
-
var entangled = tsl.Fn( ( params ) => {
|
|
1224
|
+
var entangled = TSLFn( ( params ) => {
|
|
1016
1225
|
|
|
1017
|
-
params = prepare(
|
|
1226
|
+
params = prepare( params, defaults$u );
|
|
1018
1227
|
|
|
1019
1228
|
var scale = tsl.exp( params.scale.div( 2 ) ).toVar( );
|
|
1020
1229
|
var pos = tsl.positionGeometry.add( params.seed ).toVar( );
|
|
@@ -1033,25 +1242,20 @@ var entangled = tsl.Fn( ( params ) => {
|
|
|
1033
1242
|
|
|
1034
1243
|
return tsl.mix( params.color, params.background, k );
|
|
1035
1244
|
|
|
1036
|
-
} );
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
entangled.defaults = {
|
|
1041
|
-
$name: 'Entangled',
|
|
1042
|
-
|
|
1245
|
+
}, defaults$u );
|
|
1246
|
+
|
|
1247
|
+
var defaults$t = {
|
|
1248
|
+
$name: 'Fordite',
|
|
1043
1249
|
scale: 2,
|
|
1044
|
-
|
|
1250
|
+
color: new three.Color( 0, 0, 0 ),
|
|
1251
|
+
seed: 0,
|
|
1252
|
+
};
|
|
1045
1253
|
|
|
1046
|
-
color: new three.Color( 0x002040 ),
|
|
1047
|
-
background: new three.Color( 0xFFFFFF ),
|
|
1048
1254
|
|
|
1049
|
-
seed: 0,
|
|
1050
|
-
};
|
|
1051
|
-
|
|
1052
|
-
var fordite = tsl.Fn( ( params ) => {
|
|
1053
1255
|
|
|
1054
|
-
|
|
1256
|
+
var fordite = TSLFn( ( params ) => {
|
|
1257
|
+
|
|
1258
|
+
params = prepare( params, defaults$t );
|
|
1055
1259
|
|
|
1056
1260
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
|
|
1057
1261
|
|
|
@@ -1069,20 +1273,27 @@ var fordite = tsl.Fn( ( params ) => {
|
|
|
1069
1273
|
tsl.sin( tsl.mul( k, Math.PI, 4 ) ).mul( 0.5 ).add( 0.5 )
|
|
1070
1274
|
).add( params.color );
|
|
1071
1275
|
|
|
1072
|
-
} );
|
|
1276
|
+
}, defaults$t );
|
|
1277
|
+
|
|
1278
|
+
var defaults$s = {
|
|
1279
|
+
$name: 'Gas giant',
|
|
1073
1280
|
|
|
1281
|
+
scale: 2,
|
|
1282
|
+
turbulence: 0.3,
|
|
1283
|
+
blur: 0.6,
|
|
1074
1284
|
|
|
1285
|
+
colorA: new three.Color( 0xFFF8F0 ),
|
|
1286
|
+
colorB: new three.Color( 0xF0E8B0 ),
|
|
1287
|
+
colorC: new three.Color( 0xAFA0D0 ),
|
|
1075
1288
|
|
|
1076
|
-
fordite.defaults = {
|
|
1077
|
-
$name: 'Fordite',
|
|
1078
|
-
scale: 2,
|
|
1079
|
-
color: new three.Color( 0, 0, 0 ),
|
|
1080
1289
|
seed: 0,
|
|
1081
|
-
};
|
|
1082
|
-
|
|
1083
|
-
|
|
1290
|
+
};
|
|
1291
|
+
|
|
1292
|
+
|
|
1084
1293
|
|
|
1085
|
-
|
|
1294
|
+
var gasGiant = TSLFn( ( params )=>{
|
|
1295
|
+
|
|
1296
|
+
params = prepare( params, defaults$s );
|
|
1086
1297
|
|
|
1087
1298
|
var scale = params.scale.div( 2 ).add( 1 ).toVar();
|
|
1088
1299
|
var pos = tsl.positionGeometry.mul( tsl.exp( scale ) ).add( params.seed ).toVar( );
|
|
@@ -1116,26 +1327,27 @@ var gasGiant = tsl.Fn( ( params )=>{
|
|
|
1116
1327
|
|
|
1117
1328
|
return color.mul( k );
|
|
1118
1329
|
|
|
1119
|
-
} );
|
|
1330
|
+
}, defaults$s );
|
|
1331
|
+
|
|
1332
|
+
var defaults$r = {
|
|
1333
|
+
$name: 'Grid',
|
|
1120
1334
|
|
|
1335
|
+
countU: 32,
|
|
1336
|
+
countV: 16,
|
|
1121
1337
|
|
|
1122
|
-
|
|
1123
|
-
$name: 'Gas giant',
|
|
1338
|
+
thinness: 0.8,
|
|
1124
1339
|
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
blur: 0.6,
|
|
1340
|
+
color: new three.Color( 0x000000 ),
|
|
1341
|
+
background: new three.Color( 0xFFFFFF ),
|
|
1128
1342
|
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
colorC: new three.Color( 0xAFA0D0 ),
|
|
1343
|
+
flat: 0,
|
|
1344
|
+
};
|
|
1132
1345
|
|
|
1133
|
-
seed: 0,
|
|
1134
|
-
};
|
|
1135
|
-
|
|
1136
|
-
var grid = tsl.Fn( ( params ) => {
|
|
1137
1346
|
|
|
1138
|
-
|
|
1347
|
+
|
|
1348
|
+
var grid = TSLFn( ( params ) => {
|
|
1349
|
+
|
|
1350
|
+
params = prepare( params, defaults$r );
|
|
1139
1351
|
|
|
1140
1352
|
var aspect = tsl.select( params.flat, tsl.screenSize.x.div( tsl.screenSize.y ), 2 );
|
|
1141
1353
|
|
|
@@ -1157,27 +1369,27 @@ var grid = tsl.Fn( ( params ) => {
|
|
|
1157
1369
|
|
|
1158
1370
|
return tsl.mix( params.background, params.color, k );
|
|
1159
1371
|
|
|
1160
|
-
} );
|
|
1372
|
+
}, defaults$r );
|
|
1373
|
+
|
|
1374
|
+
var defaults$q = {
|
|
1375
|
+
$name: 'Isolines',
|
|
1161
1376
|
|
|
1377
|
+
scale: 2,
|
|
1378
|
+
density: 40,
|
|
1379
|
+
blur: 0.3,
|
|
1380
|
+
thinness: 0.6,
|
|
1162
1381
|
|
|
1382
|
+
color: new three.Color( 0xFFFFFF ),
|
|
1383
|
+
background: new three.Color( 0x000000 ),
|
|
1163
1384
|
|
|
1164
|
-
|
|
1165
|
-
|
|
1385
|
+
seed: 0,
|
|
1386
|
+
};
|
|
1166
1387
|
|
|
1167
|
-
countU: 32,
|
|
1168
|
-
countV: 16,
|
|
1169
1388
|
|
|
1170
|
-
thinness: 0.8,
|
|
1171
1389
|
|
|
1172
|
-
|
|
1173
|
-
background: new three.Color( 0xFFFFFF ),
|
|
1174
|
-
|
|
1175
|
-
flat: 0,
|
|
1176
|
-
};
|
|
1177
|
-
|
|
1178
|
-
var isolines = tsl.Fn( ( params )=>{
|
|
1390
|
+
var isolines = TSLFn( ( params )=>{
|
|
1179
1391
|
|
|
1180
|
-
params = prepare(
|
|
1392
|
+
params = prepare( params, defaults$q );
|
|
1181
1393
|
|
|
1182
1394
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
|
|
1183
1395
|
|
|
@@ -1189,26 +1401,24 @@ var isolines = tsl.Fn( ( params )=>{
|
|
|
1189
1401
|
|
|
1190
1402
|
return tsl.mix( params.color, params.background, k );
|
|
1191
1403
|
|
|
1192
|
-
} );
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
$name: 'Isolines',
|
|
1404
|
+
}, defaults$q );
|
|
1405
|
+
|
|
1406
|
+
var defaults$p = {
|
|
1407
|
+
$name: 'Karst rock',
|
|
1197
1408
|
|
|
1198
1409
|
scale: 2,
|
|
1199
|
-
density: 40,
|
|
1200
|
-
blur: 0.3,
|
|
1201
|
-
thinness: 0.6,
|
|
1202
1410
|
|
|
1203
|
-
color: new three.Color(
|
|
1204
|
-
background: new three.Color(
|
|
1411
|
+
color: new three.Color( 0xFFF4F0 ),
|
|
1412
|
+
background: new three.Color( 0xD0D0D0 ),
|
|
1205
1413
|
|
|
1206
1414
|
seed: 0,
|
|
1207
|
-
};
|
|
1208
|
-
|
|
1209
|
-
var karstRock = tsl.Fn( ( params )=>{
|
|
1415
|
+
};
|
|
1416
|
+
|
|
1210
1417
|
|
|
1211
|
-
|
|
1418
|
+
|
|
1419
|
+
var karstRock = TSLFn( ( params )=>{
|
|
1420
|
+
|
|
1421
|
+
params = prepare( params, defaults$p );
|
|
1212
1422
|
|
|
1213
1423
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed.sin().mul( 5 ) ).toVar( );
|
|
1214
1424
|
|
|
@@ -1221,24 +1431,26 @@ var karstRock = tsl.Fn( ( params )=>{
|
|
|
1221
1431
|
|
|
1222
1432
|
return tsl.mix( params.background, params.color, k ).mul( k.pow( 0.1 ) );
|
|
1223
1433
|
|
|
1224
|
-
} );
|
|
1434
|
+
}, defaults$p );
|
|
1435
|
+
|
|
1436
|
+
var defaults$o = {
|
|
1437
|
+
$name: 'Marble',
|
|
1225
1438
|
|
|
1439
|
+
scale: 1.2,
|
|
1440
|
+
thinness: 5,
|
|
1441
|
+
noise: 0.3,
|
|
1226
1442
|
|
|
1443
|
+
color: new three.Color( 0x4545D3 ),
|
|
1444
|
+
background: new three.Color( 0xF0F8FF ),
|
|
1227
1445
|
|
|
1228
|
-
|
|
1229
|
-
|
|
1446
|
+
seed: 0,
|
|
1447
|
+
};
|
|
1230
1448
|
|
|
1231
|
-
scale: 2,
|
|
1232
1449
|
|
|
1233
|
-
color: new three.Color( 0xFFF4F0 ),
|
|
1234
|
-
background: new three.Color( 0xD0D0D0 ),
|
|
1235
1450
|
|
|
1236
|
-
|
|
1237
|
-
};
|
|
1238
|
-
|
|
1239
|
-
var marble = tsl.Fn( ( params ) => {
|
|
1451
|
+
var marble = TSLFn( ( params ) => {
|
|
1240
1452
|
|
|
1241
|
-
params = prepare(
|
|
1453
|
+
params = prepare( params, defaults$o );
|
|
1242
1454
|
|
|
1243
1455
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
|
|
1244
1456
|
|
|
@@ -1276,26 +1488,28 @@ var marble = tsl.Fn( ( params ) => {
|
|
|
1276
1488
|
|
|
1277
1489
|
return tsl.mix( params.background, params.color, k );
|
|
1278
1490
|
|
|
1279
|
-
} );
|
|
1491
|
+
}, defaults$o );
|
|
1492
|
+
|
|
1493
|
+
var defaults$n = {
|
|
1494
|
+
$name: 'Neon Lights',
|
|
1280
1495
|
|
|
1496
|
+
scale: 1.5,
|
|
1497
|
+
thinness: 0.8,
|
|
1498
|
+
mode: 0, // 0=additive, 1=subtractive
|
|
1281
1499
|
|
|
1500
|
+
colorA: new three.Color( 0xFF0000 ),
|
|
1501
|
+
colorB: new three.Color( 0x00FF00 ),
|
|
1502
|
+
colorC: new three.Color( 0x0000FF ),
|
|
1503
|
+
background: new three.Color( 0x000000 ),
|
|
1282
1504
|
|
|
1283
|
-
|
|
1284
|
-
|
|
1505
|
+
seed: 0,
|
|
1506
|
+
};
|
|
1285
1507
|
|
|
1286
|
-
scale: 1.2,
|
|
1287
|
-
thinness: 5,
|
|
1288
|
-
noise: 0.3,
|
|
1289
1508
|
|
|
1290
|
-
color: new three.Color( 0x4545D3 ),
|
|
1291
|
-
background: new three.Color( 0xF0F8FF ),
|
|
1292
1509
|
|
|
1293
|
-
|
|
1294
|
-
};
|
|
1295
|
-
|
|
1296
|
-
var neonLights = tsl.Fn( ( params ) => {
|
|
1510
|
+
var neonLights = TSLFn( ( params ) => {
|
|
1297
1511
|
|
|
1298
|
-
params = prepare(
|
|
1512
|
+
params = prepare( params, defaults$n );
|
|
1299
1513
|
|
|
1300
1514
|
var pos = tsl.positionGeometry;//.mul( exp( params.scale ) ).add( params.seed ).toVar( );
|
|
1301
1515
|
|
|
@@ -1339,28 +1553,24 @@ var neonLights = tsl.Fn( ( params ) => {
|
|
|
1339
1553
|
|
|
1340
1554
|
return color;
|
|
1341
1555
|
|
|
1342
|
-
} );
|
|
1556
|
+
}, defaults$n );
|
|
1557
|
+
|
|
1558
|
+
var defaults$m = {
|
|
1559
|
+
$name: 'Photosphere',
|
|
1343
1560
|
|
|
1561
|
+
scale: 2,
|
|
1344
1562
|
|
|
1563
|
+
color: new three.Color( 0xFFFF00 ),
|
|
1564
|
+
background: new three.Color( 0xFF0000 ),
|
|
1345
1565
|
|
|
1346
|
-
|
|
1347
|
-
|
|
1566
|
+
seed: 0,
|
|
1567
|
+
};
|
|
1348
1568
|
|
|
1349
|
-
scale: 1.5,
|
|
1350
|
-
thinness: 0.8,
|
|
1351
|
-
mode: 0, // 0=additive, 1=subtractive
|
|
1352
1569
|
|
|
1353
|
-
colorA: new three.Color( 0xFF0000 ),
|
|
1354
|
-
colorB: new three.Color( 0x00FF00 ),
|
|
1355
|
-
colorC: new three.Color( 0x0000FF ),
|
|
1356
|
-
background: new three.Color( 0x000000 ),
|
|
1357
1570
|
|
|
1358
|
-
|
|
1359
|
-
};
|
|
1360
|
-
|
|
1361
|
-
var photosphere = tsl.Fn( ( params ) => {
|
|
1571
|
+
var photosphere = TSLFn( ( params ) => {
|
|
1362
1572
|
|
|
1363
|
-
params = prepare(
|
|
1573
|
+
params = prepare( params, defaults$m );
|
|
1364
1574
|
|
|
1365
1575
|
var scale = tsl.exp( params.scale.add( 1 ) ).toVar( );
|
|
1366
1576
|
var pos = tsl.positionGeometry.toVar( );
|
|
@@ -1379,24 +1589,37 @@ var photosphere = tsl.Fn( ( params ) => {
|
|
|
1379
1589
|
|
|
1380
1590
|
return tsl.mix( params.background, params.color, k );
|
|
1381
1591
|
|
|
1382
|
-
} );
|
|
1592
|
+
}, defaults$m );
|
|
1593
|
+
|
|
1594
|
+
var defaults$l = {
|
|
1595
|
+
$name: 'Planet',
|
|
1383
1596
|
|
|
1597
|
+
scale: 2,
|
|
1384
1598
|
|
|
1599
|
+
iterations: 5,
|
|
1385
1600
|
|
|
1386
|
-
|
|
1387
|
-
|
|
1601
|
+
levelSea: 0.3,
|
|
1602
|
+
levelMountain: 0.7,
|
|
1388
1603
|
|
|
1389
|
-
|
|
1604
|
+
balanceWater: 0.3,
|
|
1605
|
+
balanceSand: 0.2,
|
|
1606
|
+
balanceSnow: 0.8,
|
|
1390
1607
|
|
|
1391
|
-
|
|
1392
|
-
|
|
1608
|
+
colorDeep: new three.Color( 0x123a59 ).convertLinearToSRGB(), // SteelBlue
|
|
1609
|
+
colorShallow: new three.Color( 0x87CEEB ).convertLinearToSRGB(), // SkyBlue
|
|
1610
|
+
colorBeach: new three.Color( 0xFFFACD ).convertLinearToSRGB(), // LemonChiffon
|
|
1611
|
+
colorGrass: new three.Color( 0x3CB371 ).convertLinearToSRGB(), // MediumSeaGreen
|
|
1612
|
+
colorForest: new three.Color( 0x003000 ).convertLinearToSRGB(), // Dark green
|
|
1613
|
+
colorSnow: new three.Color( 0xF0FFFF ).convertLinearToSRGB(), // Azure
|
|
1393
1614
|
|
|
1394
1615
|
seed: 0,
|
|
1395
|
-
};
|
|
1396
|
-
|
|
1397
|
-
var planet = tsl.Fn( ( params )=>{
|
|
1616
|
+
};
|
|
1398
1617
|
|
|
1399
|
-
|
|
1618
|
+
|
|
1619
|
+
|
|
1620
|
+
var planet = TSLFn( ( params )=>{
|
|
1621
|
+
|
|
1622
|
+
params = prepare( params, defaults$l );
|
|
1400
1623
|
|
|
1401
1624
|
var k = tsl.float( 0 ).toVar(),
|
|
1402
1625
|
sum = tsl.float( 0 ).toVar(),
|
|
@@ -1483,41 +1706,30 @@ var planet = tsl.Fn( ( params )=>{
|
|
|
1483
1706
|
|
|
1484
1707
|
return color;
|
|
1485
1708
|
|
|
1486
|
-
} );
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
planet.defaults = {
|
|
1491
|
-
$name: 'Planet',
|
|
1709
|
+
}, defaults$l );
|
|
1710
|
+
|
|
1711
|
+
var defaults$k = {
|
|
1712
|
+
$name: 'Polka dots',
|
|
1492
1713
|
|
|
1493
|
-
|
|
1714
|
+
count: 2,
|
|
1715
|
+
size: 0.5,
|
|
1716
|
+
blur: 0.25,
|
|
1494
1717
|
|
|
1495
|
-
|
|
1718
|
+
color: new three.Color( 0x000000 ),
|
|
1719
|
+
background: new three.Color( 0xFFFFFF ),
|
|
1496
1720
|
|
|
1497
|
-
|
|
1498
|
-
|
|
1721
|
+
flat: 0,
|
|
1722
|
+
};
|
|
1499
1723
|
|
|
1500
|
-
balanceWater: 0.3,
|
|
1501
|
-
balanceSand: 0.2,
|
|
1502
|
-
balanceSnow: 0.8,
|
|
1503
1724
|
|
|
1504
|
-
colorDeep: new three.Color( 0x123a59 ).convertLinearToSRGB(), // SteelBlue
|
|
1505
|
-
colorShallow: new three.Color( 0x87CEEB ).convertLinearToSRGB(), // SkyBlue
|
|
1506
|
-
colorBeach: new three.Color( 0xFFFACD ).convertLinearToSRGB(), // LemonChiffon
|
|
1507
|
-
colorGrass: new three.Color( 0x3CB371 ).convertLinearToSRGB(), // MediumSeaGreen
|
|
1508
|
-
colorForest: new three.Color( 0x003000 ).convertLinearToSRGB(), // Dark green
|
|
1509
|
-
colorSnow: new three.Color( 0xF0FFFF ).convertLinearToSRGB(), // Azure
|
|
1510
1725
|
|
|
1511
|
-
seed: 0,
|
|
1512
|
-
};
|
|
1513
|
-
|
|
1514
1726
|
var goldenRatio = ( 1+5**0.5 )/2;
|
|
1515
1727
|
|
|
1516
1728
|
|
|
1517
1729
|
|
|
1518
|
-
var polkaDots =
|
|
1730
|
+
var polkaDots = TSLFn( ( params ) => {
|
|
1519
1731
|
|
|
1520
|
-
params = prepare(
|
|
1732
|
+
params = prepare( params, defaults$k );
|
|
1521
1733
|
|
|
1522
1734
|
var dist = tsl.float( 1 ).toVar();
|
|
1523
1735
|
|
|
@@ -1561,26 +1773,28 @@ var polkaDots = tsl.Fn( ( params ) => {
|
|
|
1561
1773
|
|
|
1562
1774
|
return tsl.mix( params.color, params.background, k );
|
|
1563
1775
|
|
|
1564
|
-
} );
|
|
1776
|
+
}, defaults$k );
|
|
1777
|
+
|
|
1778
|
+
var defaults$j = {
|
|
1779
|
+
$name: 'Processed wood',
|
|
1780
|
+
$width: 260,
|
|
1565
1781
|
|
|
1782
|
+
scale: 2,
|
|
1783
|
+
length: 4,
|
|
1784
|
+
strength: 0.3,
|
|
1785
|
+
angle: 0,
|
|
1566
1786
|
|
|
1787
|
+
color: new three.Color( 0x702020 ),
|
|
1788
|
+
background: new three.Color( 0xF0D0A0 ),
|
|
1567
1789
|
|
|
1568
|
-
|
|
1569
|
-
|
|
1790
|
+
seed: 0,
|
|
1791
|
+
};
|
|
1570
1792
|
|
|
1571
|
-
count: 2,
|
|
1572
|
-
size: 0.5,
|
|
1573
|
-
blur: 0.25,
|
|
1574
1793
|
|
|
1575
|
-
color: new three.Color( 0x000000 ),
|
|
1576
|
-
background: new three.Color( 0xFFFFFF ),
|
|
1577
1794
|
|
|
1578
|
-
|
|
1579
|
-
};
|
|
1580
|
-
|
|
1581
|
-
var processedWood = tsl.Fn( ( params )=>{
|
|
1795
|
+
var processedWood = TSLFn( ( params )=>{
|
|
1582
1796
|
|
|
1583
|
-
params = prepare(
|
|
1797
|
+
params = prepare( params, defaults$j );
|
|
1584
1798
|
|
|
1585
1799
|
var angle = tsl.radians( params.angle ).toVar();
|
|
1586
1800
|
var posLocal = tsl.vec3(
|
|
@@ -1599,24 +1813,24 @@ var processedWood = tsl.Fn( ( params )=>{
|
|
|
1599
1813
|
|
|
1600
1814
|
return tsl.mix( params.color, params.background, k );
|
|
1601
1815
|
|
|
1602
|
-
} );
|
|
1816
|
+
}, defaults$j );
|
|
1817
|
+
|
|
1818
|
+
var defaults$i = {
|
|
1819
|
+
$name: 'Protozoa',
|
|
1603
1820
|
|
|
1821
|
+
scale: 1.5,
|
|
1822
|
+
fat: 0.7,
|
|
1823
|
+
amount: 0.4,
|
|
1604
1824
|
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1825
|
+
color: new three.Color( 0xA0A0A0 ),
|
|
1826
|
+
subcolor: new three.Color( 0xE0E8FF ),
|
|
1827
|
+
background: new three.Color( 0xF0F8FF ),
|
|
1828
|
+
|
|
1829
|
+
seed: 0,
|
|
1830
|
+
};
|
|
1608
1831
|
|
|
1609
|
-
scale: 2,
|
|
1610
|
-
length: 4,
|
|
1611
|
-
strength: 0.3,
|
|
1612
|
-
angle: 0,
|
|
1613
1832
|
|
|
1614
|
-
color: new three.Color( 0x702020 ),
|
|
1615
|
-
background: new three.Color( 0xF0D0A0 ),
|
|
1616
1833
|
|
|
1617
|
-
seed: 0,
|
|
1618
|
-
};
|
|
1619
|
-
|
|
1620
1834
|
var pnoise = tsl.Fn( ([ pos, fat ])=>{
|
|
1621
1835
|
|
|
1622
1836
|
return tsl.mx_noise_float( pos ).mul( fat ).clamp( -3.14, 3.14 ).cos().add( 1 ).div( 2 );
|
|
@@ -1625,9 +1839,9 @@ var pnoise = tsl.Fn( ([ pos, fat ])=>{
|
|
|
1625
1839
|
|
|
1626
1840
|
|
|
1627
1841
|
|
|
1628
|
-
var protozoa =
|
|
1842
|
+
var protozoa = TSLFn( ( params )=>{
|
|
1629
1843
|
|
|
1630
|
-
params = prepare(
|
|
1844
|
+
params = prepare( params, defaults$i );
|
|
1631
1845
|
|
|
1632
1846
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.sub( 1 ) ) ).add( params.seed ).toVar( );
|
|
1633
1847
|
|
|
@@ -1660,23 +1874,24 @@ var protozoa = tsl.Fn( ( params )=>{
|
|
|
1660
1874
|
|
|
1661
1875
|
return tsl.mix( params.background, tsl.mix( params.color, params.subcolor, n2.mul( 0.1 ) ), n1 );
|
|
1662
1876
|
|
|
1663
|
-
} );
|
|
1877
|
+
}, defaults$i );
|
|
1878
|
+
|
|
1879
|
+
var defaults$h = {
|
|
1880
|
+
$name: 'Rotator',
|
|
1881
|
+
$positionNode: true,
|
|
1882
|
+
$selectorPlanar: true,
|
|
1664
1883
|
|
|
1884
|
+
angles: new three.Vector3( 0.4, -0.6, 0 ),
|
|
1885
|
+
center: new three.Vector3( 0, 0, 0 ),
|
|
1665
1886
|
|
|
1666
|
-
|
|
1667
|
-
|
|
1887
|
+
selectorCenter: new three.Vector3( 0, 0, 0 ),
|
|
1888
|
+
selectorAngles: new three.Vector2( 0, 0 ),
|
|
1889
|
+
selectorWidth: 2,
|
|
1890
|
+
|
|
1891
|
+
};
|
|
1668
1892
|
|
|
1669
|
-
scale: 1.5,
|
|
1670
|
-
fat: 0.7,
|
|
1671
|
-
amount: 0.4,
|
|
1672
1893
|
|
|
1673
|
-
color: new three.Color( 0xA0A0A0 ),
|
|
1674
|
-
subcolor: new three.Color( 0xE0E8FF ),
|
|
1675
|
-
background: new three.Color( 0xF0F8FF ),
|
|
1676
1894
|
|
|
1677
|
-
seed: 0,
|
|
1678
|
-
};
|
|
1679
|
-
|
|
1680
1895
|
var surfacePos$6 = tsl.Fn( ([ pos, params ])=>{
|
|
1681
1896
|
|
|
1682
1897
|
var zone = selectPlanar( pos, params.selectorAngles, params.selectorCenter, params.selectorWidth );
|
|
@@ -1691,19 +1906,19 @@ var surfacePos$6 = tsl.Fn( ([ pos, params ])=>{
|
|
|
1691
1906
|
|
|
1692
1907
|
|
|
1693
1908
|
|
|
1694
|
-
var rotator =
|
|
1909
|
+
var rotator = TSLFn( ( params )=>{
|
|
1695
1910
|
|
|
1696
|
-
params = prepare(
|
|
1911
|
+
params = prepare( params, defaults$h );
|
|
1697
1912
|
|
|
1698
1913
|
return surfacePos$6( tsl.positionGeometry, params );
|
|
1699
1914
|
|
|
1700
|
-
} );
|
|
1915
|
+
}, defaults$h );
|
|
1701
1916
|
|
|
1702
1917
|
|
|
1703
1918
|
|
|
1704
|
-
rotator.normal =
|
|
1919
|
+
rotator.normal = TSLFn( ( params ) => {
|
|
1705
1920
|
|
|
1706
|
-
params = prepare(
|
|
1921
|
+
params = prepare( params, defaults$h );
|
|
1707
1922
|
|
|
1708
1923
|
var eps = 0.01;
|
|
1709
1924
|
|
|
@@ -1721,24 +1936,21 @@ rotator.normal = tsl.Fn( ( params ) => {
|
|
|
1721
1936
|
|
|
1722
1937
|
return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
|
|
1723
1938
|
|
|
1724
|
-
} );
|
|
1725
|
-
|
|
1939
|
+
}, defaults$h );
|
|
1940
|
+
|
|
1941
|
+
var defaults$g = {
|
|
1942
|
+
$name: 'Rough clay',
|
|
1943
|
+
$normalNode: true,
|
|
1726
1944
|
|
|
1945
|
+
scale: 2,
|
|
1946
|
+
bump: 0.5,
|
|
1947
|
+
curvature: 0.2,
|
|
1727
1948
|
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
$positionNode: true,
|
|
1731
|
-
$selectorPlanar: true,
|
|
1949
|
+
seed: 0,
|
|
1950
|
+
};
|
|
1732
1951
|
|
|
1733
|
-
angles: new three.Vector3( 0.4, -0.6, 0 ),
|
|
1734
|
-
center: new three.Vector3( 0, 0, 0 ),
|
|
1735
1952
|
|
|
1736
|
-
selectorCenter: new three.Vector3( 0, 0, 0 ),
|
|
1737
|
-
selectorAngles: new three.Vector2( 0, 0 ),
|
|
1738
|
-
selectorWidth: 2,
|
|
1739
1953
|
|
|
1740
|
-
};
|
|
1741
|
-
|
|
1742
1954
|
var surfacePos$5 = tsl.Fn( ([ pos, normal, bump, curvature ]) => {
|
|
1743
1955
|
|
|
1744
1956
|
var k1 = tsl.mx_worley_noise_float( pos.add( tsl.mx_noise_float( pos ).mul( curvature ) ) ).add( 0.8 ).pow( 5 ).toVar();
|
|
@@ -1748,9 +1960,11 @@ var surfacePos$5 = tsl.Fn( ([ pos, normal, bump, curvature ]) => {
|
|
|
1748
1960
|
|
|
1749
1961
|
} );
|
|
1750
1962
|
|
|
1751
|
-
var roughClay = tsl.Fn( ( params ) => {
|
|
1752
1963
|
|
|
1753
|
-
|
|
1964
|
+
|
|
1965
|
+
var roughClay = TSLFn( ( params ) => {
|
|
1966
|
+
|
|
1967
|
+
params = prepare( params, defaults$g );
|
|
1754
1968
|
|
|
1755
1969
|
var eps = 0.001;
|
|
1756
1970
|
|
|
@@ -1771,24 +1985,28 @@ var roughClay = tsl.Fn( ( params ) => {
|
|
|
1771
1985
|
return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
|
|
1772
1986
|
|
|
1773
1987
|
|
|
1774
|
-
} );
|
|
1775
|
-
|
|
1988
|
+
}, defaults$g );
|
|
1989
|
+
|
|
1990
|
+
var defaults$f = {
|
|
1991
|
+
$name: 'Runny eggs',
|
|
1776
1992
|
|
|
1993
|
+
scale: 1,
|
|
1777
1994
|
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
$normalNode: true,
|
|
1995
|
+
sizeYolk: 0.2,
|
|
1996
|
+
sizeWhite: 0.7,
|
|
1781
1997
|
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1998
|
+
colorYolk: new three.Color( 'orange' ),
|
|
1999
|
+
colorWhite: new three.Color( 'white' ),
|
|
2000
|
+
colorBackground: new three.Color( 'lightgray' ),
|
|
1785
2001
|
|
|
1786
2002
|
seed: 0,
|
|
1787
|
-
};
|
|
1788
|
-
|
|
1789
|
-
|
|
2003
|
+
};
|
|
2004
|
+
|
|
2005
|
+
|
|
1790
2006
|
|
|
1791
|
-
|
|
2007
|
+
var runnyEggs = TSLFn( ( params ) => {
|
|
2008
|
+
|
|
2009
|
+
params = prepare( params, defaults$f );
|
|
1792
2010
|
|
|
1793
2011
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 1 ) ) ).add( params.seed.sin().mul( 10 ) ).toVar( );
|
|
1794
2012
|
|
|
@@ -1801,7 +2019,7 @@ var runnyEggs = tsl.Fn( ( params ) => {
|
|
|
1801
2019
|
|
|
1802
2020
|
return tsl.mix( params.colorBackground, tsl.mix( params.colorWhite, params.colorYolk, yolks ), whites );
|
|
1803
2021
|
|
|
1804
|
-
} );
|
|
2022
|
+
}, defaults$f );
|
|
1805
2023
|
|
|
1806
2024
|
|
|
1807
2025
|
var surfacePos$4 = tsl.Fn( ([ pos, normal, bump, sizeYolk, sizeWhite ]) => {
|
|
@@ -1817,9 +2035,9 @@ var surfacePos$4 = tsl.Fn( ([ pos, normal, bump, sizeYolk, sizeWhite ]) => {
|
|
|
1817
2035
|
} );
|
|
1818
2036
|
|
|
1819
2037
|
|
|
1820
|
-
runnyEggs.normal =
|
|
2038
|
+
runnyEggs.normal = TSLFn( ( params ) => {
|
|
1821
2039
|
|
|
1822
|
-
params = prepare(
|
|
2040
|
+
params = prepare( params, defaults$f );
|
|
1823
2041
|
|
|
1824
2042
|
var eps = 0.001;
|
|
1825
2043
|
var bump = 0.05;
|
|
@@ -1841,12 +2059,12 @@ runnyEggs.normal = tsl.Fn( ( params ) => {
|
|
|
1841
2059
|
|
|
1842
2060
|
return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
|
|
1843
2061
|
|
|
1844
|
-
} );
|
|
2062
|
+
}, defaults$f );
|
|
1845
2063
|
|
|
1846
2064
|
|
|
1847
|
-
runnyEggs.roughness =
|
|
2065
|
+
runnyEggs.roughness = TSLFn( ( params ) => {
|
|
1848
2066
|
|
|
1849
|
-
params = prepare(
|
|
2067
|
+
params = prepare( params, defaults$f );
|
|
1850
2068
|
|
|
1851
2069
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 1 ) ) ).add( params.seed.sin().mul( 10 ) ).toVar( );
|
|
1852
2070
|
|
|
@@ -1857,24 +2075,26 @@ runnyEggs.roughness = tsl.Fn( ( params ) => {
|
|
|
1857
2075
|
|
|
1858
2076
|
return yolks;
|
|
1859
2077
|
|
|
1860
|
-
} );
|
|
2078
|
+
}, defaults$f );
|
|
2079
|
+
|
|
2080
|
+
var defaults$e = {
|
|
2081
|
+
$name: 'rust',
|
|
1861
2082
|
|
|
2083
|
+
scale: 2,
|
|
2084
|
+
iterations: 8,
|
|
2085
|
+
amount: -0.3,
|
|
2086
|
+
opacity: 0.5,
|
|
2087
|
+
noise: 0.5,
|
|
2088
|
+
noiseScale: 0.5,
|
|
1862
2089
|
|
|
1863
|
-
|
|
1864
|
-
|
|
2090
|
+
color: new three.Color( 0xC08000 ),
|
|
2091
|
+
background: new three.Color( 0x000020 ),
|
|
1865
2092
|
|
|
1866
|
-
|
|
2093
|
+
seed: 0,
|
|
2094
|
+
};
|
|
1867
2095
|
|
|
1868
|
-
sizeYolk: 0.2,
|
|
1869
|
-
sizeWhite: 0.7,
|
|
1870
2096
|
|
|
1871
|
-
colorYolk: new three.Color( 'orange' ),
|
|
1872
|
-
colorWhite: new three.Color( 'white' ),
|
|
1873
|
-
colorBackground: new three.Color( 'lightgray' ),
|
|
1874
2097
|
|
|
1875
|
-
seed: 0,
|
|
1876
|
-
};
|
|
1877
|
-
|
|
1878
2098
|
var _rust = tsl.Fn( ( params )=>{
|
|
1879
2099
|
|
|
1880
2100
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 4 ).add( -1 ) ) ).add( params.seed ).toVar( );
|
|
@@ -1899,9 +2119,9 @@ var _rust = tsl.Fn( ( params )=>{
|
|
|
1899
2119
|
} );
|
|
1900
2120
|
|
|
1901
2121
|
|
|
1902
|
-
var rust =
|
|
2122
|
+
var rust = TSLFn( ( params )=>{
|
|
1903
2123
|
|
|
1904
|
-
params = prepare(
|
|
2124
|
+
params = prepare( params, defaults$e );
|
|
1905
2125
|
|
|
1906
2126
|
var k = _rust( params ).mul( 1.25 ).pow( 0.5 );
|
|
1907
2127
|
|
|
@@ -1911,40 +2131,36 @@ var rust = tsl.Fn( ( params )=>{
|
|
|
1911
2131
|
|
|
1912
2132
|
return tsl.mix( params.color, params.background, k );
|
|
1913
2133
|
|
|
1914
|
-
} );
|
|
2134
|
+
}, defaults$e );
|
|
1915
2135
|
|
|
1916
2136
|
|
|
1917
2137
|
|
|
1918
|
-
rust.opacity =
|
|
2138
|
+
rust.opacity = TSLFn( ( params )=>{
|
|
1919
2139
|
|
|
1920
|
-
params = prepare(
|
|
2140
|
+
params = prepare( params, defaults$e );
|
|
1921
2141
|
|
|
1922
2142
|
var k = _rust( params ).mul( params.opacity.add( 0.2 ) );
|
|
1923
2143
|
|
|
1924
2144
|
return k.oneMinus();
|
|
1925
2145
|
|
|
1926
|
-
} );
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
$name: 'rust',
|
|
2146
|
+
}, defaults$e );
|
|
2147
|
+
|
|
2148
|
+
var defaults$d = {
|
|
2149
|
+
$name: 'Satin',
|
|
1931
2150
|
|
|
1932
2151
|
scale: 2,
|
|
1933
|
-
iterations: 8,
|
|
1934
|
-
amount: -0.3,
|
|
1935
|
-
opacity: 0.5,
|
|
1936
|
-
noise: 0.5,
|
|
1937
|
-
noiseScale: 0.5,
|
|
1938
2152
|
|
|
1939
|
-
color: new three.Color(
|
|
1940
|
-
background: new three.Color(
|
|
2153
|
+
color: new three.Color( 0x7080FF ),
|
|
2154
|
+
background: new three.Color( 0x000050 ),
|
|
1941
2155
|
|
|
1942
2156
|
seed: 0,
|
|
1943
|
-
};
|
|
1944
|
-
|
|
1945
|
-
var satin = tsl.Fn( ( params ) => {
|
|
2157
|
+
};
|
|
2158
|
+
|
|
1946
2159
|
|
|
1947
|
-
|
|
2160
|
+
|
|
2161
|
+
var satin = TSLFn( ( params ) => {
|
|
2162
|
+
|
|
2163
|
+
params = prepare( params, defaults$d );
|
|
1948
2164
|
|
|
1949
2165
|
var pos = tsl.positionGeometry.toVar( );
|
|
1950
2166
|
|
|
@@ -1962,21 +2178,37 @@ var satin = tsl.Fn( ( params ) => {
|
|
|
1962
2178
|
|
|
1963
2179
|
return tsl.mix( params.background, params.color, k );
|
|
1964
2180
|
|
|
1965
|
-
} );
|
|
2181
|
+
}, defaults$d );
|
|
2182
|
+
|
|
2183
|
+
|
|
2184
|
+
|
|
2185
|
+
satin.defaults = {
|
|
2186
|
+
$name: 'Satin',
|
|
2187
|
+
|
|
2188
|
+
scale: 2,
|
|
2189
|
+
|
|
2190
|
+
color: new three.Color( 0x7080FF ),
|
|
2191
|
+
background: new three.Color( 0x000050 ),
|
|
2192
|
+
|
|
2193
|
+
seed: 0,
|
|
2194
|
+
};
|
|
2195
|
+
|
|
2196
|
+
var defaults$c = {
|
|
2197
|
+
$name: 'Scaler',
|
|
2198
|
+
$positionNode: true,
|
|
2199
|
+
$selectorPlanar: true,
|
|
1966
2200
|
|
|
2201
|
+
scales: new three.Vector3( 0.01, 0.9, 1.7 ),
|
|
2202
|
+
center: new three.Vector3( 0, 0, 0 ),
|
|
1967
2203
|
|
|
2204
|
+
selectorCenter: new three.Vector3( 0, 0, 0 ),
|
|
2205
|
+
selectorAngles: new three.Vector2( 0, 0 ),
|
|
2206
|
+
selectorWidth: 2,
|
|
1968
2207
|
|
|
1969
|
-
|
|
1970
|
-
$name: 'Satin',
|
|
2208
|
+
};
|
|
1971
2209
|
|
|
1972
|
-
scale: 2,
|
|
1973
2210
|
|
|
1974
|
-
color: new three.Color( 0x7080FF ),
|
|
1975
|
-
background: new three.Color( 0x000050 ),
|
|
1976
2211
|
|
|
1977
|
-
seed: 0,
|
|
1978
|
-
};
|
|
1979
|
-
|
|
1980
2212
|
var surfacePos$3 = tsl.Fn( ([ pos, params ])=>{
|
|
1981
2213
|
|
|
1982
2214
|
var zone = selectPlanar( pos, params.selectorAngles, params.selectorCenter, params.selectorWidth );
|
|
@@ -1991,19 +2223,19 @@ var surfacePos$3 = tsl.Fn( ([ pos, params ])=>{
|
|
|
1991
2223
|
|
|
1992
2224
|
|
|
1993
2225
|
|
|
1994
|
-
var scaler =
|
|
2226
|
+
var scaler = TSLFn( ( params )=>{
|
|
1995
2227
|
|
|
1996
|
-
params = prepare(
|
|
2228
|
+
params = prepare( params, defaults$c );
|
|
1997
2229
|
|
|
1998
2230
|
return surfacePos$3( tsl.positionGeometry, params );
|
|
1999
2231
|
|
|
2000
|
-
} );
|
|
2232
|
+
}, defaults$c );
|
|
2001
2233
|
|
|
2002
2234
|
|
|
2003
2235
|
|
|
2004
|
-
scaler.normal =
|
|
2236
|
+
scaler.normal = TSLFn( ( params ) => {
|
|
2005
2237
|
|
|
2006
|
-
params = prepare(
|
|
2238
|
+
params = prepare( params, defaults$c );
|
|
2007
2239
|
|
|
2008
2240
|
var eps = 0.01;
|
|
2009
2241
|
|
|
@@ -2021,27 +2253,25 @@ scaler.normal = tsl.Fn( ( params ) => {
|
|
|
2021
2253
|
|
|
2022
2254
|
return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
|
|
2023
2255
|
|
|
2024
|
-
} );
|
|
2025
|
-
|
|
2256
|
+
}, defaults$c );
|
|
2257
|
+
|
|
2258
|
+
var defaults$b = {
|
|
2259
|
+
$name: 'Scepter head',
|
|
2026
2260
|
|
|
2261
|
+
xFactor: 10,
|
|
2262
|
+
yFactor: 22,
|
|
2263
|
+
zFactor: 10,
|
|
2027
2264
|
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2265
|
+
colorRim: new three.Color( 0xFFFFFF ),
|
|
2266
|
+
colorA: new three.Color( 0x70E0FF ),
|
|
2267
|
+
colorB: new three.Color( 0x3000FF ),
|
|
2268
|
+
};
|
|
2032
2269
|
|
|
2033
|
-
scales: new three.Vector3( 0.01, 0.9, 1.7 ),
|
|
2034
|
-
center: new three.Vector3( 0, 0, 0 ),
|
|
2035
2270
|
|
|
2036
|
-
selectorCenter: new three.Vector3( 0, 0, 0 ),
|
|
2037
|
-
selectorAngles: new three.Vector2( 0, 0 ),
|
|
2038
|
-
selectorWidth: 2,
|
|
2039
2271
|
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
var scepterHead = tsl.Fn( ( params ) => {
|
|
2272
|
+
var scepterHead = TSLFn( ( params ) => {
|
|
2043
2273
|
|
|
2044
|
-
params = prepare(
|
|
2274
|
+
params = prepare( params, defaults$b );
|
|
2045
2275
|
|
|
2046
2276
|
var pos = tsl.positionGeometry;
|
|
2047
2277
|
|
|
@@ -2077,25 +2307,25 @@ var scepterHead = tsl.Fn( ( params ) => {
|
|
|
2077
2307
|
|
|
2078
2308
|
return tsl.mix( color1, color2, tsl.remapClamp( tsl.max( dx, tsl.max( dy, dz ) ), 55-10, 55+10 ) );
|
|
2079
2309
|
|
|
2080
|
-
} );
|
|
2310
|
+
}, defaults$b );
|
|
2311
|
+
|
|
2312
|
+
var defaults$a = {
|
|
2313
|
+
$name: 'Scream',
|
|
2081
2314
|
|
|
2315
|
+
scale: 2,
|
|
2316
|
+
variety: 1,
|
|
2082
2317
|
|
|
2318
|
+
color: new three.Color( 0xF0F060 ),
|
|
2319
|
+
background: new three.Color( 0xD09090 ),
|
|
2083
2320
|
|
|
2084
|
-
|
|
2085
|
-
|
|
2321
|
+
seed: 0,
|
|
2322
|
+
};
|
|
2086
2323
|
|
|
2087
|
-
xFactor: 10,
|
|
2088
|
-
yFactor: 22,
|
|
2089
|
-
zFactor: 10,
|
|
2090
2324
|
|
|
2091
|
-
colorRim: new three.Color( 0xFFFFFF ),
|
|
2092
|
-
colorA: new three.Color( 0x70E0FF ),
|
|
2093
|
-
colorB: new three.Color( 0x3000FF ),
|
|
2094
|
-
};
|
|
2095
|
-
|
|
2096
|
-
var scream = tsl.Fn( ( params ) => {
|
|
2097
2325
|
|
|
2098
|
-
|
|
2326
|
+
var scream = TSLFn( ( params ) => {
|
|
2327
|
+
|
|
2328
|
+
params = prepare( params, defaults$a );
|
|
2099
2329
|
|
|
2100
2330
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
|
|
2101
2331
|
|
|
@@ -2111,7 +2341,7 @@ var scream = tsl.Fn( ( params ) => {
|
|
|
2111
2341
|
|
|
2112
2342
|
return hsl( tsl.add( HSL.x, params.variety.mul( tsl.sin( k.mul( Math.PI ) ) ).mul( 0.5 ) ), HSL.y, HSL.z );
|
|
2113
2343
|
|
|
2114
|
-
} );
|
|
2344
|
+
}, defaults$a );
|
|
2115
2345
|
|
|
2116
2346
|
|
|
2117
2347
|
|
|
@@ -2127,9 +2357,24 @@ scream.defaults = {
|
|
|
2127
2357
|
seed: 0,
|
|
2128
2358
|
};
|
|
2129
2359
|
|
|
2130
|
-
var
|
|
2360
|
+
var defaults$9 = {
|
|
2361
|
+
$name: 'Simplex noise',
|
|
2362
|
+
|
|
2363
|
+
scale: 2,
|
|
2364
|
+
balance: 0,
|
|
2365
|
+
contrast: 0,
|
|
2366
|
+
|
|
2367
|
+
color: new three.Color( 0xFFFFFF ),
|
|
2368
|
+
background: new three.Color( 0x000000 ),
|
|
2369
|
+
|
|
2370
|
+
seed: 0,
|
|
2371
|
+
};
|
|
2372
|
+
|
|
2131
2373
|
|
|
2132
|
-
|
|
2374
|
+
|
|
2375
|
+
var simplexNoise = TSLFn( ( params ) => {
|
|
2376
|
+
|
|
2377
|
+
params = prepare( params, defaults$9 );
|
|
2133
2378
|
|
|
2134
2379
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed );
|
|
2135
2380
|
|
|
@@ -2137,7 +2382,7 @@ var simplexNoise = tsl.Fn( ( params ) => {
|
|
|
2137
2382
|
|
|
2138
2383
|
return tsl.mix( params.background, params.color, k );
|
|
2139
2384
|
|
|
2140
|
-
} );
|
|
2385
|
+
}, defaults$9 );
|
|
2141
2386
|
|
|
2142
2387
|
|
|
2143
2388
|
|
|
@@ -2154,9 +2399,24 @@ simplexNoise.defaults = {
|
|
|
2154
2399
|
seed: 0,
|
|
2155
2400
|
};
|
|
2156
2401
|
|
|
2157
|
-
var
|
|
2402
|
+
var defaults$8 = {
|
|
2403
|
+
$name: 'Stars',
|
|
2404
|
+
|
|
2405
|
+
scale: 2,
|
|
2406
|
+
density: 2,
|
|
2407
|
+
variation: 0,
|
|
2408
|
+
|
|
2409
|
+
color: new three.Color( 0xfff5f0 ),
|
|
2410
|
+
background: new three.Color( 0x000060 ),
|
|
2411
|
+
|
|
2412
|
+
seed: 0,
|
|
2413
|
+
};
|
|
2414
|
+
|
|
2415
|
+
|
|
2416
|
+
|
|
2417
|
+
var stars = TSLFn( ( params ) => {
|
|
2158
2418
|
|
|
2159
|
-
params = prepare(
|
|
2419
|
+
params = prepare( params, defaults$8 );
|
|
2160
2420
|
|
|
2161
2421
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 2 ).add( 3 ) ) ).add( params.seed ).toVar( );
|
|
2162
2422
|
|
|
@@ -2170,23 +2430,18 @@ var stars = tsl.Fn( ( params ) => {
|
|
|
2170
2430
|
|
|
2171
2431
|
return hsl( tsl.add( col.x, dS ), col.y, col.z );
|
|
2172
2432
|
|
|
2173
|
-
} );
|
|
2174
|
-
|
|
2433
|
+
}, defaults$8 );
|
|
2434
|
+
|
|
2435
|
+
var defaults$7 = {
|
|
2436
|
+
$name: 'Supersphere',
|
|
2437
|
+
$positionNode: true,
|
|
2175
2438
|
|
|
2439
|
+
exponent: 3,
|
|
2176
2440
|
|
|
2177
|
-
|
|
2178
|
-
$name: 'Stars',
|
|
2441
|
+
};
|
|
2179
2442
|
|
|
2180
|
-
scale: 2,
|
|
2181
|
-
density: 2,
|
|
2182
|
-
variation: 0,
|
|
2183
2443
|
|
|
2184
|
-
color: new three.Color( 0xfff5f0 ),
|
|
2185
|
-
background: new three.Color( 0x000060 ),
|
|
2186
2444
|
|
|
2187
|
-
seed: 0,
|
|
2188
|
-
};
|
|
2189
|
-
|
|
2190
2445
|
var surfacePos$2 = tsl.Fn( ([ pos, params ])=>{
|
|
2191
2446
|
|
|
2192
2447
|
var exponent = tsl.float( 2 ).pow( params.exponent );
|
|
@@ -2203,19 +2458,19 @@ var surfacePos$2 = tsl.Fn( ([ pos, params ])=>{
|
|
|
2203
2458
|
|
|
2204
2459
|
|
|
2205
2460
|
|
|
2206
|
-
var supersphere =
|
|
2461
|
+
var supersphere = TSLFn( ( params )=>{
|
|
2207
2462
|
|
|
2208
|
-
params = prepare(
|
|
2463
|
+
params = prepare( params, defaults$7 );
|
|
2209
2464
|
|
|
2210
2465
|
return surfacePos$2( tsl.positionGeometry, params );
|
|
2211
2466
|
|
|
2212
|
-
} );
|
|
2467
|
+
}, defaults$7 );
|
|
2213
2468
|
|
|
2214
2469
|
|
|
2215
2470
|
|
|
2216
|
-
supersphere.normal =
|
|
2471
|
+
supersphere.normal = TSLFn( ( params ) => {
|
|
2217
2472
|
|
|
2218
|
-
params = prepare(
|
|
2473
|
+
params = prepare( params, defaults$7 );
|
|
2219
2474
|
|
|
2220
2475
|
var eps = 0.01;
|
|
2221
2476
|
|
|
@@ -2233,21 +2488,28 @@ supersphere.normal = tsl.Fn( ( params ) => {
|
|
|
2233
2488
|
|
|
2234
2489
|
return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
|
|
2235
2490
|
|
|
2236
|
-
} );
|
|
2491
|
+
}, defaults$7 );
|
|
2492
|
+
|
|
2493
|
+
var defaults$6 = {
|
|
2494
|
+
$name: 'Tiger fur',
|
|
2237
2495
|
|
|
2496
|
+
scale: 2,
|
|
2497
|
+
length: 4,
|
|
2498
|
+
blur: 0.3,
|
|
2499
|
+
strength: 0.3,
|
|
2500
|
+
hairs: 0.5,
|
|
2238
2501
|
|
|
2502
|
+
color: new three.Color( 0xFFAA00 ),
|
|
2503
|
+
bottomColor: new three.Color( 0xFFFFEE ),
|
|
2239
2504
|
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
$positionNode: true,
|
|
2505
|
+
seed: 0,
|
|
2506
|
+
};
|
|
2243
2507
|
|
|
2244
|
-
exponent: 3,
|
|
2245
2508
|
|
|
2246
|
-
};
|
|
2247
|
-
|
|
2248
|
-
var tigerFur = tsl.Fn( ( params )=>{
|
|
2249
2509
|
|
|
2250
|
-
|
|
2510
|
+
var tigerFur = TSLFn( ( params )=>{
|
|
2511
|
+
|
|
2512
|
+
params = prepare( params, defaults$6 );
|
|
2251
2513
|
|
|
2252
2514
|
var scale = params.scale.div( 2 ).add( 1 ).toVar();
|
|
2253
2515
|
var pos = tsl.positionGeometry.mul( tsl.exp( scale ) ).add( params.seed ).toVar( );
|
|
@@ -2262,7 +2524,7 @@ var tigerFur = tsl.Fn( ( params )=>{
|
|
|
2262
2524
|
|
|
2263
2525
|
return tsl.mix( params.bottomColor, params.color, n ).mul( k );
|
|
2264
2526
|
|
|
2265
|
-
} );
|
|
2527
|
+
}, defaults$6 );
|
|
2266
2528
|
|
|
2267
2529
|
|
|
2268
2530
|
tigerFur.defaults = {
|
|
@@ -2280,6 +2542,21 @@ tigerFur.defaults = {
|
|
|
2280
2542
|
seed: 0,
|
|
2281
2543
|
};
|
|
2282
2544
|
|
|
2545
|
+
var defaults$5 = {
|
|
2546
|
+
$name: 'Translator',
|
|
2547
|
+
$positionNode: true,
|
|
2548
|
+
$selectorPlanar: true,
|
|
2549
|
+
|
|
2550
|
+
distance: new three.Vector3( -0.5, 0, 0.2 ),
|
|
2551
|
+
|
|
2552
|
+
selectorCenter: new three.Vector3( 0, 0, 0 ),
|
|
2553
|
+
selectorAngles: new three.Vector2( 0, 0 ),
|
|
2554
|
+
selectorWidth: 0.7,
|
|
2555
|
+
|
|
2556
|
+
};
|
|
2557
|
+
|
|
2558
|
+
|
|
2559
|
+
|
|
2283
2560
|
var surfacePos$1 = tsl.Fn( ([ pos, params ])=>{
|
|
2284
2561
|
|
|
2285
2562
|
var zone = selectPlanar( pos, params.selectorAngles, params.selectorCenter, params.selectorWidth );
|
|
@@ -2292,19 +2569,19 @@ var surfacePos$1 = tsl.Fn( ([ pos, params ])=>{
|
|
|
2292
2569
|
|
|
2293
2570
|
|
|
2294
2571
|
|
|
2295
|
-
var translator =
|
|
2572
|
+
var translator = TSLFn( ( params )=>{
|
|
2296
2573
|
|
|
2297
|
-
params = prepare(
|
|
2574
|
+
params = prepare( params, defaults$5 );
|
|
2298
2575
|
|
|
2299
2576
|
return surfacePos$1( tsl.positionGeometry, params );
|
|
2300
2577
|
|
|
2301
|
-
} );
|
|
2578
|
+
}, defaults$5 );
|
|
2302
2579
|
|
|
2303
2580
|
|
|
2304
2581
|
|
|
2305
|
-
translator.normal =
|
|
2582
|
+
translator.normal = TSLFn( ( params ) => {
|
|
2306
2583
|
|
|
2307
|
-
params = prepare(
|
|
2584
|
+
params = prepare( params, defaults$5 );
|
|
2308
2585
|
|
|
2309
2586
|
var eps = 0.01;
|
|
2310
2587
|
|
|
@@ -2322,23 +2599,23 @@ translator.normal = tsl.Fn( ( params ) => {
|
|
|
2322
2599
|
|
|
2323
2600
|
return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
|
|
2324
2601
|
|
|
2325
|
-
} );
|
|
2602
|
+
}, defaults$5 );
|
|
2603
|
+
|
|
2604
|
+
var defaults$4 = {
|
|
2605
|
+
$name: 'Voronoi cells',
|
|
2326
2606
|
|
|
2607
|
+
scale: 2,
|
|
2608
|
+
variation: 0,
|
|
2609
|
+
facet: 0,
|
|
2327
2610
|
|
|
2611
|
+
color: new three.Color( 0 ),
|
|
2612
|
+
background: new three.Color( 0xc0d0ff ),
|
|
2328
2613
|
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
$positionNode: true,
|
|
2332
|
-
$selectorPlanar: true,
|
|
2614
|
+
seed: 0,
|
|
2615
|
+
};
|
|
2333
2616
|
|
|
2334
|
-
distance: new three.Vector3( -0.5, 0, 0.2 ),
|
|
2335
2617
|
|
|
2336
|
-
selectorCenter: new three.Vector3( 0, 0, 0 ),
|
|
2337
|
-
selectorAngles: new three.Vector2( 0, 0 ),
|
|
2338
|
-
selectorWidth: 0.7,
|
|
2339
2618
|
|
|
2340
|
-
};
|
|
2341
|
-
|
|
2342
2619
|
var cellCenter = tsl.Fn( ([ cell ])=>{
|
|
2343
2620
|
|
|
2344
2621
|
return cell.add( tsl.mx_noise_float( cell.mul( Math.PI ) ) );
|
|
@@ -2346,9 +2623,9 @@ var cellCenter = tsl.Fn( ([ cell ])=>{
|
|
|
2346
2623
|
} );
|
|
2347
2624
|
|
|
2348
2625
|
|
|
2349
|
-
var voronoiCells =
|
|
2626
|
+
var voronoiCells = TSLFn( ( params )=>{
|
|
2350
2627
|
|
|
2351
|
-
params = prepare(
|
|
2628
|
+
params = prepare( params, defaults$4 );
|
|
2352
2629
|
|
|
2353
2630
|
var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 2 ).add( 0.5 ) ) ).add( params.seed ).toVar( );
|
|
2354
2631
|
|
|
@@ -2389,23 +2666,21 @@ var voronoiCells = tsl.Fn( ( params )=>{
|
|
|
2389
2666
|
|
|
2390
2667
|
return tsl.mix( color, tsl.mix( color, randomColor, params.variation ), params.variation );
|
|
2391
2668
|
|
|
2392
|
-
} );
|
|
2393
|
-
|
|
2669
|
+
}, defaults$4 );
|
|
2670
|
+
|
|
2671
|
+
var defaults$3 = {
|
|
2672
|
+
$name: 'Water Drops',
|
|
2673
|
+
$normalNode: true,
|
|
2394
2674
|
|
|
2675
|
+
scale: 1.4,
|
|
2676
|
+
density: 0.5,
|
|
2677
|
+
bump: 0.6,
|
|
2395
2678
|
|
|
2396
|
-
|
|
2397
|
-
|
|
2679
|
+
seed: 0,
|
|
2680
|
+
};
|
|
2398
2681
|
|
|
2399
|
-
scale: 2,
|
|
2400
|
-
variation: 0,
|
|
2401
|
-
facet: 0,
|
|
2402
2682
|
|
|
2403
|
-
color: new three.Color( 0 ),
|
|
2404
|
-
background: new three.Color( 0xc0d0ff ),
|
|
2405
2683
|
|
|
2406
|
-
seed: 0,
|
|
2407
|
-
};
|
|
2408
|
-
|
|
2409
2684
|
var surfacePos = tsl.Fn( ([ pos, normal, bump, density, seed ]) => {
|
|
2410
2685
|
|
|
2411
2686
|
var k = tsl.mx_noise_float( pos.add( seed ) ).add( density ).clamp( 0, 1 );
|
|
@@ -2416,9 +2691,10 @@ var surfacePos = tsl.Fn( ([ pos, normal, bump, density, seed ]) => {
|
|
|
2416
2691
|
} );
|
|
2417
2692
|
|
|
2418
2693
|
|
|
2419
|
-
var waterDrops = tsl.Fn( ( params ) => {
|
|
2420
2694
|
|
|
2421
|
-
|
|
2695
|
+
var waterDrops = TSLFn( ( params ) => {
|
|
2696
|
+
|
|
2697
|
+
params = prepare( params, defaults$3 );
|
|
2422
2698
|
|
|
2423
2699
|
var eps = 0.001;
|
|
2424
2700
|
|
|
@@ -2440,24 +2716,29 @@ var waterDrops = tsl.Fn( ( params ) => {
|
|
|
2440
2716
|
|
|
2441
2717
|
return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
|
|
2442
2718
|
|
|
2443
|
-
} );
|
|
2444
|
-
|
|
2719
|
+
}, defaults$3 );
|
|
2720
|
+
|
|
2721
|
+
var defaults$2 = {
|
|
2722
|
+
$name: 'Watermelon',
|
|
2445
2723
|
|
|
2724
|
+
scale: 2,
|
|
2725
|
+
stripes: 12,
|
|
2726
|
+
variation: 0.5,
|
|
2727
|
+
noise: 0.25,
|
|
2446
2728
|
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
$normalNode: true,
|
|
2729
|
+
color: new three.Color( 'yellowgreen' ),
|
|
2730
|
+
background: new three.Color( 'darkgreen' ),
|
|
2450
2731
|
|
|
2451
|
-
|
|
2452
|
-
density: 0.5,
|
|
2453
|
-
bump: 0.6,
|
|
2732
|
+
flat: 0,
|
|
2454
2733
|
|
|
2455
2734
|
seed: 0,
|
|
2456
|
-
};
|
|
2457
|
-
|
|
2458
|
-
var watermelon = tsl.Fn( ( params )=>{
|
|
2735
|
+
};
|
|
2736
|
+
|
|
2459
2737
|
|
|
2460
|
-
|
|
2738
|
+
|
|
2739
|
+
var watermelon = TSLFn( ( params )=>{
|
|
2740
|
+
|
|
2741
|
+
params = prepare( params, defaults$2 );
|
|
2461
2742
|
|
|
2462
2743
|
var variation = tsl.select( params.flat, params.variation.mul( 0.85 ).add( 0.15 ), params.variation );
|
|
2463
2744
|
|
|
@@ -2483,29 +2764,26 @@ var watermelon = tsl.Fn( ( params )=>{
|
|
|
2483
2764
|
|
|
2484
2765
|
return color;
|
|
2485
2766
|
|
|
2486
|
-
} );
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2767
|
+
}, defaults$2 );
|
|
2768
|
+
|
|
2769
|
+
var defaults$1 = {
|
|
2770
|
+
$name: 'Wood',
|
|
2771
|
+
scale: 2.5,
|
|
2772
|
+
rings: 4.5,
|
|
2773
|
+
length: 1,
|
|
2774
|
+
angle: 0,
|
|
2775
|
+
fibers: 0.3,
|
|
2776
|
+
fibersDensity: 10,
|
|
2777
|
+
color: new three.Color( 0.8, 0.4, 0 ),
|
|
2778
|
+
background: new three.Color( 0.4, 0.1, 0 ),
|
|
2779
|
+
seed: 0,
|
|
2780
|
+
};
|
|
2497
2781
|
|
|
2498
|
-
color: new three.Color( 'yellowgreen' ),
|
|
2499
|
-
background: new three.Color( 'darkgreen' ),
|
|
2500
2782
|
|
|
2501
|
-
flat: 0,
|
|
2502
2783
|
|
|
2503
|
-
|
|
2504
|
-
};
|
|
2505
|
-
|
|
2506
|
-
var wood = tsl.Fn( ( params ) => {
|
|
2784
|
+
var wood = TSLFn( ( params ) => {
|
|
2507
2785
|
|
|
2508
|
-
params = prepare(
|
|
2786
|
+
params = prepare( params, defaults$1 );
|
|
2509
2787
|
|
|
2510
2788
|
var angle = tsl.radians( params.angle ).toVar();
|
|
2511
2789
|
var posLocal = tsl.vec3(
|
|
@@ -2538,26 +2816,28 @@ var wood = tsl.Fn( ( params ) => {
|
|
|
2538
2816
|
|
|
2539
2817
|
return tsl.mix( params.color, params.background, tsl.mix( k, kk, params.fibers ) );
|
|
2540
2818
|
|
|
2541
|
-
} );
|
|
2819
|
+
}, defaults$1 );
|
|
2820
|
+
|
|
2821
|
+
var defaults = {
|
|
2822
|
+
$name: 'Zebra lines',
|
|
2542
2823
|
|
|
2824
|
+
scale: 2,
|
|
2825
|
+
thinness: 0.5,
|
|
2826
|
+
phi: 0,
|
|
2827
|
+
theta: 0,
|
|
2543
2828
|
|
|
2829
|
+
color: new three.Color( 0x0 ),
|
|
2830
|
+
background: new three.Color( 0xFFFFFF ),
|
|
2544
2831
|
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
rings: 4.5,
|
|
2549
|
-
length: 1,
|
|
2550
|
-
angle: 0,
|
|
2551
|
-
fibers: 0.3,
|
|
2552
|
-
fibersDensity: 10,
|
|
2553
|
-
color: new three.Color( 0.8, 0.4, 0 ),
|
|
2554
|
-
background: new three.Color( 0.4, 0.1, 0 ),
|
|
2555
|
-
seed: 0,
|
|
2556
|
-
};
|
|
2557
|
-
|
|
2558
|
-
var zebraLines = tsl.Fn( ( params ) => {
|
|
2832
|
+
flat: 0,
|
|
2833
|
+
// no seed for zebra lines
|
|
2834
|
+
};
|
|
2559
2835
|
|
|
2560
|
-
|
|
2836
|
+
|
|
2837
|
+
|
|
2838
|
+
var zebraLines = TSLFn( ( params ) => {
|
|
2839
|
+
|
|
2840
|
+
params = prepare( params, defaults );
|
|
2561
2841
|
|
|
2562
2842
|
var pos = tsl.select( params.flat, tsl.positionGeometry, tsl.positionGeometry.normalize() ).toVar( );
|
|
2563
2843
|
|
|
@@ -2573,29 +2853,13 @@ var zebraLines = tsl.Fn( ( params ) => {
|
|
|
2573
2853
|
|
|
2574
2854
|
return tsl.mix( params.background, params.color, k );
|
|
2575
2855
|
|
|
2576
|
-
} );
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
zebraLines.defaults = {
|
|
2581
|
-
$name: 'Zebra lines',
|
|
2582
|
-
|
|
2583
|
-
scale: 2,
|
|
2584
|
-
thinness: 0.5,
|
|
2585
|
-
phi: 0,
|
|
2586
|
-
theta: 0,
|
|
2587
|
-
|
|
2588
|
-
color: new three.Color( 0x0 ),
|
|
2589
|
-
background: new three.Color( 0xFFFFFF ),
|
|
2590
|
-
|
|
2591
|
-
flat: 0,
|
|
2592
|
-
// no seed for zebra lines
|
|
2593
|
-
};
|
|
2856
|
+
}, defaults );
|
|
2594
2857
|
|
|
2595
2858
|
Object.defineProperty(exports, "noise", {
|
|
2596
2859
|
enumerable: true,
|
|
2597
2860
|
get: function () { return tsl.mx_noise_float; }
|
|
2598
2861
|
});
|
|
2862
|
+
exports.TSLFn = TSLFn;
|
|
2599
2863
|
exports.applyEuler = applyEuler;
|
|
2600
2864
|
exports.camouflage = camouflage;
|
|
2601
2865
|
exports.caveArt = caveArt;
|