diff --git a/extern/draco/src/encoder.cpp b/extern/draco/src/encoder.cpp index 34282ced8c6..ac7bf65475f 100644 --- a/extern/draco/src/encoder.cpp +++ b/extern/draco/src/encoder.cpp @@ -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(); 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(encoder->mesh.AddAttribute(attribute, true, count)); auto dataBytes = reinterpret_cast(data); diff --git a/extern/draco/src/encoder.h b/extern/draco/src/encoder.h index c6fdc30295b..d867a7e5d86 100644 --- a/extern/draco/src/encoder.h +++ b/extern/draco/src/encoder.h @@ -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); diff --git a/scripts/addons_core/io_scene_gltf2/__init__.py b/scripts/addons_core/io_scene_gltf2/__init__.py index 7eaf49779f1..a08a81fc059 100755 --- a/scripts/addons_core/io_scene_gltf2/__init__.py +++ b/scripts/addons_core/io_scene_gltf2/__init__.py @@ -5,7 +5,7 @@ bl_info = { 'name': 'glTF 2.0 format', 'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors', - "version": (4, 2, 39), + "version": (4, 2, 40), 'blender': (4, 2, 0), 'location': 'File > Import-Export', 'description': 'Import-Export as glTF 2.0', diff --git a/scripts/addons_core/io_scene_gltf2/io/exp/gltf2_io_draco_compression_extension.py b/scripts/addons_core/io_scene_gltf2/io/exp/gltf2_io_draco_compression_extension.py index 0053980db3c..6bfdfcd90de 100644 --- a/scripts/addons_core/io_scene_gltf2/io/exp/gltf2_io_draco_compression_extension.py +++ b/scripts/addons_core/io_scene_gltf2/io/exp/gltf2_io_draco_compression_extension.py @@ -34,7 +34,7 @@ def encode_scene_primitives(scenes, export_settings): dll.encoderSetIndices.argtypes = [c_void_p, c_size_t, c_uint32, c_void_p] dll.encoderSetAttribute.restype = c_uint32 - dll.encoderSetAttribute.argtypes = [c_void_p, c_char_p, c_size_t, c_char_p, c_void_p] + dll.encoderSetAttribute.argtypes = [c_void_p, c_char_p, c_size_t, c_char_p, c_void_p, c_bool] dll.encoderEncode.restype = c_bool dll.encoderEncode.argtypes = [c_void_p, c_uint8] @@ -130,7 +130,8 @@ def __encode_primitive(primitive, dll, export_settings, encoded_primitives_cache attr_name.encode(), attr.component_type, attr.type.encode(), - attr.buffer_view.data) + attr.buffer_view.data, + attr.normalized) draco_ids[attr_name] = draco_id dll.encoderSetIndices(encoder, indices.component_type, indices.count, indices.buffer_view.data)