ask:

option 1: Build a shader effect that uses custom vertex attributes.

Use three.js and WebGL. You can either use a BufferGeometry and populate all the attribute data for it, or you can use a built-in geometry type, and add an additional BufferAttribute to it. Use whatever makes the most sense for your effect.

option 2: Build a post-processing effect that uses a custom shader pass.

Use three.js and WebGL. You can stack many effects in your EffectComposer but at least one of them has to use a custom shader! Use a GUI to control parameters and toggle render passes.

You can combine both options if you’d like!


thought:


outputs: