| 742 | |
| 743 | class Viscous extends ShaderPass { |
| 744 | constructor(simProps: any) { |
| 745 | super({ |
| 746 | material: { |
| 747 | vertexShader: face_vert, |
| 748 | fragmentShader: viscous_frag, |
| 749 | uniforms: { |
| 750 | boundarySpace: { value: simProps.boundarySpace }, |
| 751 | velocity: { value: simProps.src.texture }, |
| 752 | velocity_new: { value: simProps.dst_.texture }, |
| 753 | v: { value: simProps.viscous }, |
| 754 | px: { value: simProps.cellScale }, |
| 755 | dt: { value: simProps.dt }, |
| 756 | }, |
| 757 | }, |
| 758 | output: simProps.dst, |
| 759 | output0: simProps.dst_, |
| 760 | output1: simProps.dst, |
| 761 | }); |
| 762 | this.init(); |
| 763 | } |
| 764 | update(...args: any[]) { |
| 765 | const { viscous, iterations, dt } = (args[0] || {}) as { |
| 766 | viscous?: number; |