UNPKG

tsl-textures

Version:

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

51 lines (24 loc) 906 B
// TSL-Textures: Photosphere import { Color } from "three"; import { exp, Fn, Loop, mix, positionGeometry, vec3 } from 'three/tsl'; import { applyEuler, noise, prepare } from './tsl-utils.js'; var photosphere = Fn( ( params ) => { params = prepare( { ...photosphere.defaults, ...params } ); var scale = exp( params.scale.add( 1 ) ).toVar( ); var pos = positionGeometry.toVar( ); var vec = vec3( pos ).toVar(); Loop( 6, () => { vec.assign( applyEuler( vec, pos.mul( scale ) ) ); scale.mulAssign( params.seed.mul( scale ).sin().mul( 0.05 ).add( 1.1 ) ); } ); var k = noise( vec ).add( 1 ).div( 2 ); return mix( params.background, params.color, k ); } ); photosphere.defaults = { $name: 'Photosphere', scale: 2, color: new Color( 0xFFFF00 ), background: new Color( 0xFF0000 ), seed: 0, }; export { photosphere };