Commit
·
3d787d3
1
Parent(s):
38006c2
Add color assignment to new vertices in generate3d function
Browse files- Integrated cKDTree for efficient nearest neighbor search to assign colors to newly generated vertices.
- Created a new mesh using trimesh with updated vertex colors based on nearest old vertices.
- Enhanced overall mesh generation process by incorporating color information into the output.
- inference.py +13 -0
inference.py
CHANGED
|
@@ -6,6 +6,8 @@ import tempfile
|
|
| 6 |
from util.renderer import Renderer
|
| 7 |
import os
|
| 8 |
from PIL import Image
|
|
|
|
|
|
|
| 9 |
|
| 10 |
|
| 11 |
def generate3d(model, rgb, ccm, device):
|
|
@@ -77,4 +79,15 @@ def generate3d(model, rgb, ccm, device):
|
|
| 77 |
|
| 78 |
model.export_mesh(data_config, base_path, tri_fea_2=triplane_feature2) # writes .obj
|
| 79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
return obj_path
|
|
|
|
| 6 |
from util.renderer import Renderer
|
| 7 |
import os
|
| 8 |
from PIL import Image
|
| 9 |
+
import trimesh
|
| 10 |
+
from scipy.spatial import cKDTree
|
| 11 |
|
| 12 |
|
| 13 |
def generate3d(model, rgb, ccm, device):
|
|
|
|
| 79 |
|
| 80 |
model.export_mesh(data_config, base_path, tri_fea_2=triplane_feature2) # writes .obj
|
| 81 |
|
| 82 |
+
# Build KDTree for nearest neighbor search
|
| 83 |
+
tree = cKDTree(data_config['verts'].squeeze().cpu().numpy())
|
| 84 |
+
|
| 85 |
+
# For each new vertex, find the nearest old vertex and copy its color
|
| 86 |
+
k = 3 # or 5, etc.
|
| 87 |
+
dists, idxs = tree.query(verts.cpu().numpy(), k=k)
|
| 88 |
+
new_colors = np.mean(color_tri[idxs], axis=1)
|
| 89 |
+
|
| 90 |
+
# Create the new mesh with colors
|
| 91 |
+
mesh = trimesh.Trimesh(vertices=verts.cpu().numpy(), faces=faces.cpu().numpy(), vertex_colors=new_colors)
|
| 92 |
+
|
| 93 |
return obj_path
|