Please upload the video to the bug report. The advertisements on the youtube channel is enabled, this is not nice.
Adding the Profile Widget instead of expanding the CurveMapping Widget
- Better tooltips
- Each widget is simpler with fewer cases
- Completely different evaluation paradigm
- Useful in different cases
(Using the right diff this time)
- Responded / fixed comments from review
But you already know, D5877 also cuts the many non-manifold cases where it works well :-/
Aha, I see what is happening now. It is just crashing after quadriflow made a mess as it can't handle the non manifold data.
I've posted a fix here: https://developer.blender.org/D5877
And it crashes still if you use Null or SDL?
I didn't compiled the SDL m…
It crashes with null or openal soft:
And it crashes still if you use Null or SDL?
What sound system backend are you using?
libopenal.so.1!alcCloseDevice (Unknown Source:0) aud::OpenALDevice::~OpenALDevice(aud::OpenALDevice * const this) (extern/audaspace/plugins/openal/OpenALDevice.cpp:1200) aud::OpenALDevice::~OpenALDevice(aud::OpenALDevice * const this) (extern/audaspace/plugins/openal/OpenALDevice.cpp:1201) std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release(std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2> * const this) (/usr/include/c++/7/bits/shared_ptr_base.h:154) std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() (/usr/include/c++/7/bits/shared_ptr_base.h:684) std::__shared_ptr<aud::IDevice, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (/usr/include/c++/7/bits/shared_ptr_base.h:1123) std::__shared_ptr<aud::IDevice, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<aud::IDevice, (__gnu_cxx::_Lock_policy)2> * const this) (/usr/include/c++/7/bits/shared_ptr_base.h:1213) std::shared_ptr<aud::IDevice>::operator=(std::shared_ptr<aud::IDevice> * const this) (/usr/include/c++/7/bits/shared_ptr.h:319) aud::DeviceManager::releaseDevice() (extern/audaspace/src/devices/DeviceManager.cpp:81) BKE_sound_exit_once() (source/blender/blenkernel/intern/sound.c:333) libc.so.6!__run_exit_handlers(int status, struct exit_function_list ** listp, _Bool run_list_atexit, _Bool run_dtors) (/build/glibc-OTsEL5/glibc-2.27/stdlib/exit.c:108) libc.so.6!__GI_exit(int status) (/build/glibc-OTsEL5/glibc-2.27/stdlib/exit.c:139) qflow::subdivide_edgeDiff(Eigen::MatrixXi & F, Eigen::MatrixXd & V, Eigen::MatrixXd & N, Eigen::MatrixXd & Q, Eigen::MatrixXd & O, Eigen::MatrixXd * S, Eigen::VectorXi & V2E, Eigen::VectorXi & E2E, Eigen::VectorXi & boundary, Eigen::VectorXi & nonmanifold, std::vector<Eigen::Matrix<int, 2, 1, 0, 2, 1>, std::allocator<Eigen::Matrix<int, 2, 1, 0, 2, 1> > > & edge_diff, std::vector<qflow::DEdge, std::allocator<qflow::DEdge> > & edge_values, std::vector<Eigen::Matrix<int, 3, 1, 0, 3, 1>, std::allocator<Eigen::Matrix<int, 3, 1, 0, 3, 1> > > & face_edgeOrients, std::vector<Eigen::Matrix<int, 3, 1, 0, 3, 1>, std::allocator<Eigen::Matrix<int, 3, 1, 0, 3, 1> > > & face_edgeIds, std::vector<int, std::allocator<int> > & sharp_edges, std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > > & singularities, int max_len) (extern/quadriflow/src/subdivide.cpp:504) qflow::Parametrizer::ComputeIndexMap(qflow::Parametrizer * const this, int with_scale) (extern/quadriflow/src/parametrizer.cpp:83) QFLOW_quadriflow_remesh(QuadriflowRemeshData * qrd, void (*)(void *, float, int *) update_cb, void * update_cb_data) (intern/quadriflow/quadriflow_capi.cpp:210) BKE_mesh_remesh_quadriflow(void * update_cb_data, void * update_cb, _Bool adaptive_scale, _Bool preserve_boundary, _Bool preserve_sharp, int seed, int target_faces, Mesh * input_mesh) (source/blender/blenkernel/intern/mesh_remesh_voxel.c:212) BKE_mesh_remesh_quadriflow_to_mesh_nomain(Mesh * mesh, int target_faces, int seed, _Bool preserve_sharp, _Bool preserve_boundary, _Bool adaptive_scale, void * update_cb, void * update_cb_data) (source/blender/blenkernel/intern/mesh_remesh_voxel.c:274) quadriflow_start_job(void * customdata, short * stop, short * do_update, float * progress) (source/blender/editors/object/object_remesh.c:244) do_job_thread(void * job_v) (source/blender/windowmanager/intern/wm_jobs.c:383) libpthread.so.0!start_thread(void * arg) (/build/glibc-OTsEL5/glibc-2.27/nptl/pthread_create.c:463) libc.so.6!clone() (/build/glibc-OTsEL5/glibc-2.27/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
Yes, I suspect that the error you get is an issue with the background job system I'm using for quadriflow.
the quadriflow code assumes that an edge can only have a maximum of two connected faces.
Ah, I see. Would not it be possible to stop the action instead of crashing?
@Martin Capitanio (capnm) it does work boundary of course (otherwise the "preserve boundary" option would not be there).
The issue here is that the mesh is non manifold …
The Suzanne disagrees:
The issue here is that the mesh is non manifold. Even the voxel remesher has issues with the mesh provided.
Hi @todd doehring (tcdabemis) : both Never and Fast seems to be working fine here.
EDIT: I may have made an error in last post. 'Never' seems to be working but not all the time. I can't figure it out, will keep testing.
I noticed that this task is now 'closed', but the original issue with 'never' is still not working and using 'fast' makes little difference.
Sun, Sep 22
I made a first pass at reviewing this. Several minor things to change per my comments.
I think this code is about ready to merge, though we should wait until after the 2.81 stabilizing branch has been made (supposed to be Oct 10).
Sat, Sep 21
Any hope to see this done one day ?
Not sure what means "to never use backfacing polygons"
If I turn backfacing off polybuild still moves only the backside
On "much simpler example with less geometry" the problem is not so obvious
The fix caused another bug, reverted for now, will look at it again next week.
Fri, Sep 20
I also confirm it ( T70103 Can't select extruded Vertex ) in Linux-5.0.0-29-lowlatency-x86_64-with-Ubuntu-19.04-disco 64 Bits X.Org 4.5 (Core Profile) Mesa 19.0.8
Broken: version: 2.81 (sub 12), branch: master, commit date: 2019-09-20 13:18, hash: rBd1cc340e5669
I reproduced it with a Quadro RTX 6000 on Ubuntu 18.04.
Cant actually reproduce on my end (linux, 970m, 435.21 drivers -- not sure if this is a windows thing or the rtx cards?), but since this is confirmed and a regression, setting this to High priority...
This is caused by rB3a08153d7a842b7ab1e40a9048730e1a3ddab5f7.
It's really weird, I run the remesh operator in a Debug and a RelWithDebInfo build with ASAN. In all cases the crash seems to be caused by some code that handles audio.
ASAN shows a warning that might be related: /extern/quadriflow/src/hierarchy.cpp:272:48: runtime error: division by zero
This seems to be fixed in current master.
(Have not hunted down the exact commit, but there have been many changes in this area since...)
Confirmed, checking... (was still working in rB1e375ab5a104...bisecting...)
Thu, Sep 19
Yeah, there's always the battle between convenience (having properties everywhere they might be useful) and organization (keeping only a type of property in a single place.
I can see the issue. I guess the solution is to never use backfacing polygons? Can you try to create a much simpler example with less geometry that shows the same issue? That would probably make fixing it easier.