How to implement 3D (optical) wave propagation

I want to implement a 3D propagation of a Gaussian beam. In contrast to spherical wave propagation, Gaussian beams don’t diverge in all directions but have a Gaussian intensity / amplitude distribution (see the image attached).

I would like to model these with Babylonjs and encode the relative intensity as the alpha value of the mesh color.

Any suggestions on what (composite) mesh shapes should be a good fit for this use case?

As there are (or seem to be) many quite identical instances of the same geometry with only small differences (color, scale, curve) I would suggest to use particles or solid particles.

It appears to see that particles require an emitter / lifecycle?

With regard to transparency I found this old forum post, yet, it is not clear to me why simply updating particles.color.a = intensity is not possible

hi i try find a way :slight_smile:

1 Like

You can find my project here

Ah I see I was missing sps.mesh.hasVertexAlpha = true after sps.buildMesh().

can you show me any animation ( youtube stuff )
for last result?

https://www.babylonjs-playground.com/#CSZYEP#41
https://www.babylonjs-playground.com/#CSZYEP#45
https://www.babylonjs-playground.com/#CSZYEP#47
https://www.babylonjs-playground.com/#CSZYEP#50


https://www.babylonjs-playground.com/#CSZYEP#51

5 Likes

Excellent !

1 Like