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

3MFLoader: Add Preliminary Support for Loading Implicit Functions #29667

Merged
merged 7 commits into from
Oct 16, 2024

Conversation

zalo
Copy link
Contributor

@zalo zalo commented Oct 15, 2024

Related issue: #29548

tl;dr: This PR adds basic implicitfunction (parsing only!) functionality to three.js's 3MFLoader.

Context

3MF files can now contain volumetric implicits defined as operation execution graphs.

The 3MF consortium has released a 3D Modeller for generating .3mf’s with them, similar to nTopology:
https://github.com/3MFConsortium/gladius

This presents an opportunity to make SDF Implicits a first-class feature of 3D on the web!

Description:

This PR advances this goal by adding a parser that exposes this new information to three.js.

Eventually, when TSL and WebGPU are mature, this information can be used to construct a TSL nodegraph, which can be used to import and visualize these 3MF implicit functions.

You can test this PR easily by going here, selecting volumetric from the drop-down, and observing the implicit tree that was output to the console.

@Mugen87 Mugen87 added this to the r170 milestone Oct 16, 2024
@Mugen87 Mugen87 merged commit aee03e7 into mrdoob:dev Oct 16, 2024
11 checks passed
@linbingquan
Copy link
Contributor

图片

It reported an error on my computer...

@Mugen87
Copy link
Collaborator

Mugen87 commented Oct 16, 2024

The asset should trigger the warning for testing. It can't be rendered right now.

@zalo I wonder if it's better to remove the asset to avoid further confusion when users checking out the example.

@zalo
Copy link
Contributor Author

zalo commented Oct 16, 2024

I can switch it for one that has a mesh-component (which should load even without implicits), though, they tend to require a special node operation which gives the signed distance to the mesh (which might need something like three-mesh-BVH to sample on the GPU).

@Mugen87
Copy link
Collaborator

Mugen87 commented Oct 16, 2024

In this case I would simply revert the changes to the example to keep things simple.

@Mugen87
Copy link
Collaborator

Mugen87 commented Oct 17, 2024

8104618

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.

3 participants