diff --git a/scene/colmap_loader.py b/scene/colmap_loader.py index 0f32d23..8f6fba6 100644 --- a/scene/colmap_loader.py +++ b/scene/colmap_loader.py @@ -89,6 +89,21 @@ def read_points3D_text(path): xyzs = None rgbs = None errors = None + num_points = 0 + with open(path, "r") as fid: + while True: + line = fid.readline() + if not line: + break + line = line.strip() + if len(line) > 0 and line[0] != "#": + num_points += 1 + + + xyzs = np.empty((num_points, 3)) + rgbs = np.empty((num_points, 3)) + errors = np.empty((num_points, 1)) + count = 0 with open(path, "r") as fid: while True: line = fid.readline() @@ -100,14 +115,11 @@ def read_points3D_text(path): xyz = np.array(tuple(map(float, elems[1:4]))) rgb = np.array(tuple(map(int, elems[4:7]))) error = np.array(float(elems[7])) - if xyzs is None: - xyzs = xyz[None, ...] - rgbs = rgb[None, ...] - errors = error[None, ...] - else: - xyzs = np.append(xyzs, xyz[None, ...], axis=0) - rgbs = np.append(rgbs, rgb[None, ...], axis=0) - errors = np.append(errors, error[None, ...], axis=0) + xyzs[count] = xyz + rgbs[count] = rgb + errors[count] = error + count += 1 + return xyzs, rgbs, errors def read_points3D_binary(path_to_model_file): diff --git a/submodules/diff-gaussian-rasterization b/submodules/diff-gaussian-rasterization index 8064f52..59f5f77 160000 --- a/submodules/diff-gaussian-rasterization +++ b/submodules/diff-gaussian-rasterization @@ -1 +1 @@ -Subproject commit 8064f52ca233942bdec2d1a1451c026deedd320b +Subproject commit 59f5f77e3ddbac3ed9db93ec2cfe99ed6c5d121d