Compare commits
2 Commits
b6553db09e
...
2f3508ed3a
Author | SHA1 | Date | |
---|---|---|---|
2f3508ed3a | |||
c3e50b7d60 |
2
engine
2
engine
@ -1 +1 @@
|
||||
Subproject commit 3b21e1610a687edcd91d5fe1c05823c2834928db
|
||||
Subproject commit 1b9ce5410083bd9346aca642de6c8180116987e7
|
12
game/game.py
12
game/game.py
@ -269,13 +269,13 @@ def main():
|
||||
# for _ in range(10000):
|
||||
# current_time = 0 # time.monotonic() - start_time
|
||||
|
||||
# Draw * 9999 : min = 0.13 , max = 0.86 , avg = 0.2 ms
|
||||
# Draw * 9999 : min = 0.14 , max = 0.75 , avg = 0.2 ms
|
||||
# Draw * 9999 : min = 0.14 , max = 0.84 , avg = 0.2 ms
|
||||
# Draw * 9999 : min = 0.14 , max = 0.43 , avg = 0.19 ms
|
||||
# Draw * 9999 : min = 0.14 , max = 0.35 , avg = 0.19 ms
|
||||
# Draw * 9999 : min = 0.13 , max = 0.44 , avg = 0.18 ms
|
||||
|
||||
# Frame * 9999 : min = 0.19 , max = 0.98 , avg = 0.34 ms
|
||||
# Frame * 9999 : min = 0.21 , max = 0.94 , avg = 0.34 ms
|
||||
# Frame * 9999 : min = 0.21 , max = 1.0 , avg = 0.34 ms
|
||||
# Frame * 9999 : min = 0.21 , max = 0.7 , avg = 0.33 ms
|
||||
# Frame * 9999 : min = 0.2 , max = 0.54 , avg = 0.31 ms
|
||||
# Frame * 9999 : min = 0.19 , max = 0.6 , avg = 0.29 ms
|
||||
|
||||
print("Quitting...")
|
||||
del tests_batch
|
||||
|
@ -192,22 +192,29 @@ class ObjArchive(Archive):
|
||||
if name:
|
||||
assert mesh
|
||||
objects[name] = mesh
|
||||
vertices = set()
|
||||
for mesh in objects.values():
|
||||
vertices |= frozenset(chain.from_iterable(mesh))
|
||||
vertices = tuple(vertices)
|
||||
|
||||
vertices = []
|
||||
indices = []
|
||||
models = {}
|
||||
for name, mesh in sorted(objects.items()):
|
||||
offset = len(indices)
|
||||
assert offset < 65536
|
||||
indices.extend(map(vertices.index, chain.from_iterable(mesh)))
|
||||
count = len(indices) - offset
|
||||
mesh_vertices = []
|
||||
for vertex in chain.from_iterable(mesh):
|
||||
if vertex not in mesh_vertices:
|
||||
mesh_vertices.append(vertex)
|
||||
base_vertex = len(vertices)
|
||||
mesh_indices = list(map(lambda v: mesh_vertices.index(v) + base_vertex, chain.from_iterable(mesh)))
|
||||
assert max(mesh_indices) < 65536
|
||||
count = len(mesh_indices)
|
||||
print(name, ": vertices =", count, "packed =", len(mesh_vertices))
|
||||
assert count % 3 == 0
|
||||
count //= 3
|
||||
assert count < 65536
|
||||
print(name, ": offset =", offset, "triangles =", count)
|
||||
vertices.extend(mesh_vertices)
|
||||
indices.extend(mesh_indices)
|
||||
models[name] = (offset, count)
|
||||
|
||||
name = str(objpath.stem)
|
||||
assert name not in self.vertices_db.keys()
|
||||
#TODO: move to math
|
||||
|
Loading…
Reference in New Issue
Block a user