Mercurial > games > semicongine
changeset 286:3c2bd8652310
fix: glb import
author | Sam <sam@basx.dev> |
---|---|
date | Thu, 08 Jun 2023 00:29:29 +0700 |
parents | 0efceb4bd935 |
children | 21d6d20de754 |
files | src/semicongine/mesh.nim src/semicongine/resources/mesh.nim |
diffstat | 2 files changed, 3 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/semicongine/mesh.nim Tue Jun 06 01:00:43 2023 +0700 +++ b/src/semicongine/mesh.nim Thu Jun 08 00:29:29 2023 +0700 @@ -17,7 +17,7 @@ Big # up to 2^32 vertices Mesh* = ref object of Component instanceCount*: uint32 - instanceTransforms: seq[Mat4] # this should not reside in data["transform"], as we will use data["transform"] to store the final transformation matrix (as derived from the scene-tree) + instanceTransforms*: seq[Mat4] # this should not reside in data["transform"], as we will use data["transform"] to store the final transformation matrix (as derived from the scene-tree) dirtyInstanceTransforms: bool data: Table[string, DataList] changedAttributes: seq[string]
--- a/src/semicongine/resources/mesh.nim Tue Jun 06 01:00:43 2023 +0700 +++ b/src/semicongine/resources/mesh.nim Thu Jun 08 00:29:29 2023 +0700 @@ -162,8 +162,7 @@ raise newException(Exception, &"Unsupported index data type: {data.thetype}") proc loadMesh(root: JsonNode, meshNode: JsonNode, mainBuffer: var seq[uint8]): Mesh = - result = new Mesh - result.instanceCount = 1 + result = Mesh(instanceCount: 1, instanceTransforms: newSeqWith(1, Unit4F32)) # check if and how we use indexes var indexCount = 0 @@ -192,7 +191,7 @@ for primitive in meshNode["primitives"]: result.addPrimitive(root, primitive, mainBuffer) - # gld uses +y up, but we (vulkan) don't + setInstanceData(result, "transform", newSeqWith(int(result.instanceCount), Unit4F32)) proc loadNode(root: JsonNode, node: JsonNode, mainBuffer: var seq[uint8]): Entity = var name = "<Unknown>"