Step.1: first I created a three-dimensional scalar field, then using attractor logics I cull the voxels within the specified range, then the coincident faces within the remaining voxels are cull and the remaining meshes are join and welded creating a single mesh object.
Step.2: creating a similar attractor logic I can separate in two groups the meshes that are within the specified range from the ones that are not within the specified range, then I process the meshes within the attractor range Weaverbird´s Laplacian smoothing/volume decrease with fix boundary condition and further Catmull Clark sub division (naked edge fix, level.1).
Step.3: this is the tricky part, I had to isolate the perimeter boundary meshes of the low-res mesh that was not within the attractor range, so this meshes can be post processed. Then this meshes can be used as boundary stitching limit which works as resolution threshold between the low res-mesh and high res-mesh, this boundary is capable to detect the level of resolution of the high-res mesh so it can re-topologies itself to achieve the mesh resolution transition, when this is done then you will have a fully join and welded the meshes (final result fully water tide).
It's possible, but you can increase the iterations of the smooth mesh component. The curve is also placed lower creating sharper angles.
Nevertheless they are done differently. I think the original first uses laplacian smoothing to smooth the boundary of jagged box faces, then uses catmull clark to smooth out the seams.
I didn't use catmull clark (because trying to implement it using only stardard components will result in me shooting myself in the face) so what I did is first pull the vertices to a fixed distance from the curve and then used the smooth mesh component for smoothing the seams.
Great solution with native components!, but it is slightly different approach to mine, I use one attractor to cull the near by boxes withing the range to dynamically define the the base mesh and a the second attractor is the most important one, I use the same Curve but with this attractor i define the area for the increment of resolution, I defined that way so I could control the edges of the shape decide between a sharper or smoother edge when the increment of resolution occurs. Also my approach allows to dynamical re-adjust to different levels of higher resolution from 1 to 2 to 3 while the boundary condition retopologize itself to match the specified resolution.
Also at first I wanted to use only native component but the computing time was getting to high so I switch to weaverbird to reduce the number of stored data.
Ups!!!! forgot to mention that I am still trying to reduce the computing time as it still a bit heavy to re-fresh and also some times the final mesh has few faces that are non-manifold due to original mesh derived from the voxels... as soon as I find a way around I will share the def.
Ángel Linares
Super nice research study.
Dec 14, 2014
I_M_F [Iker Mugarra Flores]
Thanks Angel,
this is part of the of my computational courses sessions for my students at the MArch UDII_Bartlett UCL.
Dec 14, 2014
I_M_F [Iker Mugarra Flores]
Step.1: first I created a three-dimensional scalar field, then using attractor logics I cull the voxels within the specified range, then the coincident faces within the remaining voxels are cull and the remaining meshes are join and welded creating a single mesh object.
Step.2: creating a similar attractor logic I can separate in two groups the meshes that are within the specified range from the ones that are not within the specified range, then I process the meshes within the attractor range Weaverbird´s Laplacian smoothing/volume decrease with fix boundary condition and further Catmull Clark sub division (naked edge fix, level.1).
Dec 14, 2014
I_M_F [Iker Mugarra Flores]
Step.3: this is the tricky part, I had to isolate the perimeter boundary meshes of the low-res mesh that was not within the attractor range, so this meshes can be post processed. Then this meshes can be used as boundary stitching limit which works as resolution threshold between the low res-mesh and high res-mesh, this boundary is capable to detect the level of resolution of the high-res mesh so it can re-topologies itself to achieve the mesh resolution transition, when this is done then you will have a fully join and welded the meshes (final result fully water tide).
Dec 14, 2014
I_M_F [Iker Mugarra Flores]
http://www.aud-ucl.org/#!computation-2/c90h
Dec 14, 2014
Vicente Soler
Very nice. I had a go at it using standard components (no plugins or scripting...why do I do this to myself...). Definition here.
Dec 14, 2014
Ángel Linares
Nice one Vicente. But, is it me or your solution is not so smooth in some parts as Iker is?
Dec 15, 2014
Vicente Soler
It's possible, but you can increase the iterations of the smooth mesh component. The curve is also placed lower creating sharper angles.
Nevertheless they are done differently. I think the original first uses laplacian smoothing to smooth the boundary of jagged box faces, then uses catmull clark to smooth out the seams.
I didn't use catmull clark (because trying to implement it using only stardard components will result in me shooting myself in the face) so what I did is first pull the vertices to a fixed distance from the curve and then used the smooth mesh component for smoothing the seams.
Dec 15, 2014
I_M_F [Iker Mugarra Flores]
Hi Vicente,
Great solution with native components!, but it is slightly different approach to mine, I use one attractor to cull the near by boxes withing the range to dynamically define the the base mesh and a the second attractor is the most important one, I use the same Curve but with this attractor i define the area for the increment of resolution, I defined that way so I could control the edges of the shape decide between a sharper or smoother edge when the increment of resolution occurs. Also my approach allows to dynamical re-adjust to different levels of higher resolution from 1 to 2 to 3 while the boundary condition retopologize itself to match the specified resolution.
Also at first I wanted to use only native component but the computing time was getting to high so I switch to weaverbird to reduce the number of stored data.
Dec 15, 2014
I_M_F [Iker Mugarra Flores]
Vicente let me know when are you around and we could go for a beer!
best
Dec 15, 2014
I_M_F [Iker Mugarra Flores]
Ups!!!! forgot to mention that I am still trying to reduce the computing time as it still a bit heavy to re-fresh and also some times the final mesh has few faces that are non-manifold due to original mesh derived from the voxels... as soon as I find a way around I will share the def.
b
Dec 15, 2014