@@ -69,43 +69,58 @@ export function trails(params?: TrailsParams) {
6969 } ,
7070 } ) ;
7171
72- const uniforms = Object . defineProperty ( trailPass . uniforms , "uErosion" , {
73- get ( ) {
72+ const uniforms = {
73+ get uErosion ( ) {
7474 return erosion ;
7575 } ,
76- set ( value : number ) {
76+ set uErosion ( value : number ) {
7777 erosion = value ;
7878 trailPass . uniforms . uKernelSize = [
7979 Math . sqrt ( erosion ) / fboRead . width ,
8080 Math . sqrt ( erosion ) / fboRead . height ,
8181 ] ;
8282 } ,
83- } ) as typeof trailPass . uniforms & { uErosion : number } ;
83+ get uFadeout ( ) {
84+ return trailPass . uniforms . uFadeout ;
85+ } ,
86+ set uFadeout ( value : number ) {
87+ trailPass . uniforms . uFadeout = value ;
88+ } ,
89+ get uTailColor ( ) {
90+ return trailPass . uniforms . uTailColor ;
91+ } ,
92+ set uTailColor ( value : [ number , number , number , number ] ) {
93+ trailPass . uniforms . uTailColor = value ;
94+ } ,
95+ get uTailColorFalloff ( ) {
96+ return trailPass . uniforms . uTailColorFalloff ;
97+ } ,
98+ set uTailColorFalloff ( value : number ) {
99+ trailPass . uniforms . uTailColorFalloff = value ;
100+ } ,
101+ } ;
84102
85103 const trailsPass = useCompositeEffectPass ( [ trailPass , outputPass ] , uniforms ) ;
86104
87- const originalLightTrailsSetSize = trailsPass . setSize ;
88- trailsPass . setSize = ( size : { width : number ; height : number } ) => {
89- originalLightTrailsSetSize ( size ) ;
90- fboRead . setSize ( size . width , size . height ) ;
91- fboWrite . setSize ( size . width , size . height ) ;
105+ trailsPass . onResize ( ( width , height ) => {
106+ fboRead . setSize ( width , height ) ;
107+ fboWrite . setSize ( width , height ) ;
92108
93109 trailPass . uniforms . uKernelSize = [
94110 Math . sqrt ( erosion ) / fboRead . width ,
95111 Math . sqrt ( erosion ) / fboRead . height ,
96112 ] ;
97- } ;
113+ } ) ;
98114
99- const originalInitializeFn = trailsPass . initialize ;
100- trailsPass . initialize = ( gl ) => {
101- originalInitializeFn ( gl ) ;
115+ trailsPass . onInit ( ( gl ) => {
102116 fboRead = createRenderTarget ( gl , floatTargetConfig ) ;
103117 fboWrite = createRenderTarget ( gl , floatTargetConfig ) ;
104- } ;
118+ } ) ;
105119
106120 trailsPass . onBeforeRender ( ( ) => {
107121 trailPass . setTarget ( fboWrite ) ;
108122 } ) ;
123+
109124 trailsPass . onAfterRender ( swap ) ;
110125
111126 return trailsPass ;
0 commit comments