Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: volumetric scattering #418

Open
MMoscheni opened this issue Jan 19, 2023 · 1 comment
Open

Proposal: volumetric scattering #418

MMoscheni opened this issue Jan 19, 2023 · 1 comment

Comments

@MMoscheni
Copy link

Dear Raysect team,

currently rays fired by observers are of rectilinear trajectory, which could potentially be reflected/scattered by material surfaces (call it "superficial scattering").

Adding "volumetric scattering", i.e. simulating non-rectilinear ray trajectories within the volume of a material, could potentially be interesting. The scattering probability would generally depend on local material properties, specified by the user via a scattering_function_3d(). If material properties vary in space, then relying on adaptive integration (see this issue) would be a necessary conditon.

Quoting the wise strategy suggested by @vsnever (from this issue):

  • Scattering changes the ray's direction. Therefore, the point at which the ray leaves the volume of the primitive is not known prior to scattering simulation. To be consistent with the rest of the Raysect API, this feature must be implemented in the evaluate_surface() method of the NullVolume material. However, the implementation will be tricky, because in addition to tracing the world, each daughter ray should be the subject of this Monte-Carlo scattering simulation inside the primitive, until the last of the spawned rays leaves it at some point.

What do you think? Thank you!
Cheers,
Matteo

@CnlPepper
Copy link
Member

Volumetric scattering is proposed for v1.0. To implement it requires a complete re-implementation of the volume integration system. This would be a significant API change and would require cherab's materials to be rewritten. See #357.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants