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

Exactly same result everytime get rendered #120

Closed
donmor opened this issue Apr 12, 2022 · 4 comments
Closed

Exactly same result everytime get rendered #120

donmor opened this issue Apr 12, 2022 · 4 comments
Labels

Comments

@donmor
Copy link

donmor commented Apr 12, 2022

As we all know, we can't expect to have same result everytime a physics-enabled project is player/rendered in the original MMD. Sometimes it needsseveral times to get a video with least model glitchings, or tended to have specific glitchings.
Back to nanoem, I think it is necessaty to do some hackings on the randomizer in the physics engine, making it uses strict floating-point calculations to get rid of affection from different processors, and able to reset at runtime and use a seed regenerated and keeped in specific key frames. This make it possible to get the same result everytime the project is rendered/played, as everytime the key frame with a random seed is played, the randomizer is reset and uses the new seed inside the key frame, thus generates the same results from now on. Also, the seed could be regenerated several times until no model glitching happens.

@donmor
Copy link
Author

donmor commented Apr 12, 2022

This can also generate clips of a same scene but in multiple cams. Just copy and paste key frames of physics seeds and reset the status of physics-controlled nodes.

@hkrn
Copy link
Owner

hkrn commented Apr 16, 2022

We have confirmed that PMM is capable of storing the seed of physics operations in keyframe units according to the specification, and we believe that this is something that should be implemented. However, this is a very low priority issue for the following reasons.

  • It needs to be implemented across multiple locations, and we know that the amount of implementation is equivalent to a major version upgrade and will take time. This is the main reason why the issue is a very low priority.
  • Existence of Baking Physics Simulation of All Models function

Also, we have no plan to support the use of strict floating point for the distribution, as we believe that those who need it should be given a compiler option to support it and custom build it.

@hkrn
Copy link
Owner

hkrn commented Apr 16, 2022

To add supplementary explanation of the current implementation of the seed value, it will be reset if it is played after stopping. On the other hand, when paused, there is no process to save the seed value and set it after resume, so there is no reproducibility.

@stale
Copy link

stale bot commented Jun 15, 2022

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@stale stale bot added the wontfix label Jun 15, 2022
@stale stale bot closed this as completed Jun 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants