UNPKG

tsl-textures

Version:

A collection of Three.js Shading Language (TSL) textures

50 lines (26 loc) 919 B
// TSL-Textures: Satin import { Color } from "three"; import { abs, exp, Fn, mix, positionGeometry, pow, vec3 } from 'three/tsl'; import { noise, prepare } from './tsl-utils.js'; var satin = Fn( ( params ) => { params = prepare( { ...satin.defaults, ...params } ); var pos = positionGeometry.toVar( ); var scale = exp( params.scale.div( 3 ) ).toVar(); var k = noise( vec3( noise( vec3( pos.x.mul( 2 ), pos.y, pos.z ).mul( scale ) ), noise( vec3( pos.x, pos.y.mul( 2 ), pos.z ).mul( scale ) ), noise( vec3( pos.x, pos.y, pos.z.mul( 2 ) ).mul( scale ) ), ).mul( scale ).add( params.seed ) ); k = pow( abs( k ), 3 ).mul( 20 ); return mix( params.background, params.color, k ); } ); satin.defaults = { $name: 'Satin', scale: 2, color: new Color( 0x7080FF ), background: new Color( 0x000050 ), seed: 0, }; export { satin };