glTF exporter: Draco: fix normalized draco accessors

Fix exporting normalized accessor with Draco enabled.
json was ok, but accessor data itself was not flagged as normalized

Pull Request: https://projects.blender.org/blender/blender/pulls/122224
This commit is contained in:
Julien Duroure
2024-05-24 16:25:56 +02:00
committed by Julien Duroure
parent 105463e28a
commit 1e802d971a
4 changed files with 7 additions and 6 deletions

View File

@@ -222,7 +222,7 @@ draco::DataType getDataType(size_t componentType)
}
API(uint32_t)
encoderSetAttribute(Encoder *encoder, char *attributeName, size_t componentType, char *dataType, void *data)
encoderSetAttribute(Encoder *encoder, char *attributeName, size_t componentType, char *dataType, void *data, bool normalized)
{
auto buffer = std::make_unique<draco::DataBuffer>();
uint32_t count = encoder->mesh.num_points();
@@ -232,7 +232,7 @@ encoderSetAttribute(Encoder *encoder, char *attributeName, size_t componentType,
draco::GeometryAttribute::Type semantics = getAttributeSemantics(attributeName);
draco::GeometryAttribute attribute;
attribute.Init(semantics, &*buffer, componentCount, getDataType(componentType), false, stride, 0);
attribute.Init(semantics, &*buffer, componentCount, getDataType(componentType), normalized, stride, 0);
auto id = static_cast<uint32_t>(encoder->mesh.AddAttribute(attribute, true, count));
auto dataBytes = reinterpret_cast<uint8_t *>(data);

View File

@@ -53,7 +53,7 @@ API(void)
encoderSetIndices(Encoder *encoder, size_t indexComponentType, uint32_t indexCount, void *indices);
API(uint32_t)
encoderSetAttribute(Encoder *encoder, char *attributeName, size_t componentType, char *dataType, void *data);
encoderSetAttribute(Encoder *encoder, char *attributeName, size_t componentType, char *dataType, void *data, bool normalized);
API(uint32_t)
encoderGetEncodedVertexCount(Encoder *encoder);