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:
parent
105463e28a
commit
1e802d971a
4
extern/draco/src/encoder.cpp
vendored
4
extern/draco/src/encoder.cpp
vendored
@ -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);
|
||||
|
2
extern/draco/src/encoder.h
vendored
2
extern/draco/src/encoder.h
vendored
@ -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);
|
||||
|
@ -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',
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user