UNPKG

tsl-textures

Version:

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

46 lines (23 loc) 877 B
// TSL-Textures: Isolines import { Color } from "three"; import { add, exp, Fn, mix, oneMinus, positionGeometry, sin, smoothstep, sub } from 'three/tsl'; import { noise, prepare } from './tsl-utils.js'; var isolines = Fn( ( params )=>{ params = prepare( { ...isolines.defaults, ...params } ); var pos = positionGeometry.mul( exp( params.scale ) ).add( params.seed ).toVar( ); var k = noise( pos ).mul( params.density ); k = oneMinus( sin( k ) ).div( 2 ); k = smoothstep( sub( params.thinness, params.blur ), add( params.thinness, params.blur ), k ); return mix( params.color, params.background, k ); } ); isolines.defaults = { $name: 'Isolines', scale: 2, density: 40, blur: 0.3, thinness: 0.6, color: new Color( 0xFFFFFF ), background: new Color( 0x000000 ), seed: 0, }; export { isolines };