-
Notifications
You must be signed in to change notification settings - Fork 19
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
Handle NoLooseEdge and ConstantFaceCount properties #41
Comments
I have the implementation mostly done, just doing more testing to make sure it's correct. Out of curiosity, I did some profiling with Stanford 3D scans. Performance with my branch looks pretty much the same as now, with improvement for edge wireframe meshes (about 5x faster, it was plenty fast already). Below are results for the new branch, release build, Intel i7-7500U (shouldn't matter too much as it's all single threaded). Attributes were copied, not forwarded in the effect.
My thoughts:
|
Very interesting, at some point the project should maintain a benchmarking pipeline, both for its own developpment and to give a baseline to plug-in writers. I had not realized how much of the time was in effect spent in the
PS: I've made earlier today an edit: Maybe we can try setting the |
Good point about the benchmarks! :) From what I can see, Re: kOfxMeshEffectPropIsDeformation, I saw that the modifier API is different for deformers vs. general modifiers, though I haven't looked into what that means exactly. I agree with creating a second modifier to take advantage of it. With attribute forwarding, it should be possible to elide Re: nightly, I will try compiling it and report back - I don't mind either way and have some trouble compiling Blender with all the optional stuff, so it may even be better for me. |
I just realized the parallelization was only in the new c++ version ;) https://github.com/blender/blender/blob/master/source/blender/blenkernel/intern/mesh_validate.cc#L226 (and learn by the occasion that there is some migration to C++ going on)
Yes, the entry points are different, and there is a "tag" field that tells which of the APIs to use
Oh sure, we should totally do this. I openned #42 to remember it.
Ok, so I'll open an issue for this ass well actually. #43
I think it make more sense to follow more closely the last versions of Blender since we are still largely wip so it is not consistent with the notion of "Long Term Support". Well it's also that I had not taken the time to sync with master since 2.83. ^^ Juan from BoneMaster asked for it, hopefully they're going to release OpenMeshEffect in their package. :) |
It was implemented just this month; what are the odds? ^^ It looks nice, I will try it once I get around #44.
Glad to hear that OpenMeshEffect is getting more attention! I agree, it would be good to keep up with upstream releases. I've sent the pull request with the implementation and I did some more testing and benchmarking. I actually had to implement everything on MfxVTK side as well, to have any confidence that it works, so I have some more insight into how these can help on plugin side. Here are some tests, this time from my desktop (Intel i5-7400 quadcore, 24GB RAM so I was able to edit the big dragon in Blender). The two results are from MfxVTK 0.4.0 (before optimization) and MfxVTK optimized branch ( XYZRGB Dragon dataset (point cloud, 3 million points), optimized input/output path in MfxVTK
XYZRGB Dragon dataset (polygonal mesh, 7 million triangles), optimized input/output path in MfxVTK
XYZRGB Dragon dataset (polygonal mesh + 1 loose edge), generic input/output path in MfxVTK
5x improvement on plugin side for a big polygonal mesh doesn't look bad. With (The MfxVTK optimizations are attribute forwarding of VTK buffers to output mesh, OpenMP for copying, and using specialized routines based on input/output type, so parts of processing can be skipped.) |
See OpenMeshEffect#6
Assigned to @tkarabela
The text was updated successfully, but these errors were encountered: