So I got this 3d model: teeth.glb
If you observe the model the top of the model where the teeth reside is full of vertices that are triangular in-order, and the bottom part is basically a plane consisting of all the vertices to be on the corner and none in the center.
I am using a threejs script which lets the user sculpt on the 3d model, the sculpting process is working like a charm on the top THANKS TO manthrax but on the bottom due to less amount of vertices its not working.
Any solution to this?
I tried subdividing but its just crashing my blender
You can take advantage of a super handy fact that three.js uses only triangles for rendering - which makes subdivision quite easy (you just take all 3 vertices of the face, calculate average of them, then split the face into 3 triangles. For indexed meshes you just then add 2 new records to the index array, for non-indexed meshes you push new vertices to
position buffer attribute directly.)
A tiny example, relevant code in L8-L95, the rest is just boilerplate. Try clicking on any of the faces to subdivide it on-demand - similar subdivision can also be applied to the entire mesh / edited regions of the mesh, not only a single face.
A very nice example that clearly illustrates the principle. With this very simple division, however, you very quickly end up with unfavorable triangles with angles that get closer and closer to 180°.
I have already tried something similar. You get slightly “better” triangles if you divide into 6 triangles. Connect from the center to the corners and to the midpoints of the lines. This is not ideal either, but it hardly takes any more effort.
Otherwise there are more optimal methods.
Definitely! Blender does it that way - that and merging the closest, most same-planar triangle, then treating the merged couple as a quad and subdividing it into 4 new quads.
Well I got the solution thanks to manthrax, he pointed out the remesh property in Blender. And with some tweaking I got the results.
The plane didn’t had any vertices in the center NONE. After the remesh property is applied the whole modals vertices and rebuilt removing free spaces between vertices.