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

AssetObject class to add or remove SceneObjects from Scene #536

Open
wants to merge 51 commits into
base: main
Choose a base branch
from

Conversation

guillaume-larue
Copy link

Description

Related to discussion 512

The present pull request enables the addition and removal of (group of) SceneObjects in the current scene. These objects, named assets, are handled by a dedicated new class, AssetObject. They are described in the same way a scene is described, i.e., from a Blender Mitsuba Export .xml file and a set of .ply meshes. Hence, new asset objects can be created using Blender.

The addition and removal of assets are straightforward. AssetObject basically offers the same API properties as SceneObject, including position, orientation, velocity, and radio_materials. Assets can interact with ray tracing, as they are basically composed of SceneObjects, hence relying on legacy features of Sionna.

The pull request also proposes an improved way to manage the rendering of RadioMaterial. Thanks to the BSDF class, it is now possible to easily manipulate and update the way a RadioMaterial of the scene is rendered.

A novel Jupyter Notebook named Sionna_Ray_Tracing_Asset.ipynb is added to explain in detail how to use these features, and the documentation of the asset-related classes has been updated.

New APIs for the added AssetObjects functionalities have been provided. No changes in legacy APIs, except for SceneObjects referenced outside the Scene class, which are now weak-referenced to avoid remaining strong references to removed SceneObjects (when accessing scene.objects property or calling scene.get("scene_object_name")).

We have noticed the demands for signed-off commits only when preparing the Pull Request. Since the change in the git history would be quite significant, is this absolutely mandatory to do it on all the commits, or would a single signed-off commit be sufficient for the complete pull request (as provided here)?

Co-authored-by: [email protected]

Checklist

  • Detailed description
  • Added references to issues and discussions
  • Added / modified documentation as needed
  • Added / modified unit tests as needed
  • Passes all tests
  • Lint the code
  • Performed a self review
  • Ensure you Signed-off the commits. Required to accept contributions!
  • Co-authored with someone? Add Co-authored-by: user@domain and ensure they signed off their commits too.

guillaume-larue and others added 30 commits March 27, 2024 17:20
…ject in a scene through scene .xml file manipulation.
move them, interaction with component objects and RT.
Start material cells.

Fix all .xml files from Sionna.
…s. Some fix are still necessary to pass all tests.
…ssetObject or a SceneObject is kept during scene reload. Reorganisation of all the asset related tests.
…ifying the radio_material of an asset or a scene object.
…cene class (using scene.get() or scene.objects), such that SceneObjects can be garbage collected when deleted from within the Scene class.
guillaume-larue and others added 21 commits August 1, 2024 15:34
…Scene and RadioMaterial class documentations accordingly.
Signed-off-by: Guillaume Larue <[email protected]>

Signed-off-by: Louis-Adrien Dufrène <[email protected]>
@SebastianCa
Copy link
Collaborator

Hi @guillaume-larue,
Thank you for the PR! We’ll review it carefully and get back to you, but please note that it might take a few weeks due to vacation time.

@Fedomer
Copy link

Fedomer commented Oct 19, 2024

This will be very important funtionality! What about the merge?

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

Successfully merging this pull request may close these issues.

4 participants