Commit
·
ffc0d64
1
Parent(s):
c69515e
Enhance mesh generation in app.py and inference.py with hole filling and color assignment
Browse files- Integrated trimesh for mesh hole filling after generation.
- Implemented KDTree for efficient nearest vertex color assignment for newly generated vertices.
- Updated remesh iterations in generate3d function to improve mesh quality.
app.py
CHANGED
@@ -18,6 +18,8 @@ import json
|
|
18 |
import argparse
|
19 |
import requests
|
20 |
import tempfile
|
|
|
|
|
21 |
|
22 |
from model import CRM
|
23 |
from inference import generate3d
|
@@ -276,4 +278,19 @@ with gr.Blocks() as demo:
|
|
276 |
inputs=inputs,
|
277 |
outputs=outputs,
|
278 |
)
|
279 |
-
demo.queue().launch()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
import argparse
|
19 |
import requests
|
20 |
import tempfile
|
21 |
+
import trimesh
|
22 |
+
from scipy.spatial import cKDTree
|
23 |
|
24 |
from model import CRM
|
25 |
from inference import generate3d
|
|
|
278 |
inputs=inputs,
|
279 |
outputs=outputs,
|
280 |
)
|
281 |
+
demo.queue().launch()
|
282 |
+
|
283 |
+
# After mesh generation, fill holes
|
284 |
+
mesh = trimesh.Trimesh(vertices=verts, faces=faces)
|
285 |
+
mesh.fill_holes()
|
286 |
+
|
287 |
+
# Find new vertices (those not in the original set)
|
288 |
+
if mesh.vertices.shape[0] > old_vertices.shape[0]:
|
289 |
+
new_vtx = mesh.vertices[old_vertices.shape[0]:]
|
290 |
+
# Use KDTree to find nearest old vertex for each new vertex
|
291 |
+
tree = cKDTree(old_vertices)
|
292 |
+
dists, idxs = tree.query(new_vtx)
|
293 |
+
new_colors = old_colors[idxs]
|
294 |
+
# Concatenate old and new colors
|
295 |
+
all_colors = np.vstack([old_colors, new_colors])
|
296 |
+
mesh.visual.vertex_colors = all_colors
|