collada/buffer: also generate index buffer offsets
This commit is contained in:
parent
02b2f1a95f
commit
88dd523715
@ -53,6 +53,8 @@ class MeshVertexIndexBufferState:
|
|||||||
self.index_buffer = [] # a list of integers
|
self.index_buffer = [] # a list of integers
|
||||||
self.vertex_buffer = [] # a list of floats
|
self.vertex_buffer = [] # a list of floats
|
||||||
|
|
||||||
|
self.index_buffer_offsets = []
|
||||||
|
|
||||||
# vertex_index_table: input/collada vertex indices in the order written
|
# vertex_index_table: input/collada vertex indices in the order written
|
||||||
# to the index buffer
|
# to the index buffer
|
||||||
# indices: output vertex index (absolute)
|
# indices: output vertex index (absolute)
|
||||||
@ -74,6 +76,8 @@ def mesh_vertex_index_buffer(collada, mesh):
|
|||||||
for triangles in mesh.primitive_elements:
|
for triangles in mesh.primitive_elements:
|
||||||
assert type(triangles) is types.Triangles
|
assert type(triangles) is types.Triangles
|
||||||
|
|
||||||
|
state.index_buffer_offsets.append(len(state.index_buffer))
|
||||||
|
|
||||||
max_offset = max(i.offset for i in triangles.inputs)
|
max_offset = max(i.offset for i in triangles.inputs)
|
||||||
p_stride = max_offset + 1
|
p_stride = max_offset + 1
|
||||||
offset_table, used_offsets = build_offset_table(collada, triangles, p_stride)
|
offset_table, used_offsets = build_offset_table(collada, triangles, p_stride)
|
||||||
@ -161,6 +165,9 @@ if __name__ == "__main__":
|
|||||||
assert type(mesh) is types.Mesh
|
assert type(mesh) is types.Mesh
|
||||||
state = mesh_vertex_index_buffer(collada, mesh)
|
state = mesh_vertex_index_buffer(collada, mesh)
|
||||||
|
|
||||||
#skin = collada.library_controllers[0].controllers[0].control_element
|
skin = collada.library_controllers[0].controllers[0].control_element
|
||||||
#assert type(skin) is types.Skin
|
assert type(skin) is types.Skin
|
||||||
#vertex_buffer_jw = skin_vertex_buffer(collada, skin, vertex_index_table)
|
vertex_buffer_jw = skin_vertex_buffer(collada, skin, state.vertex_index_table)
|
||||||
|
#print(vertex_buffer_jw)
|
||||||
|
#print(state.vertex_buffer)
|
||||||
|
#print(state.index_buffer)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user