Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWybren van Keulen <wybren>2018-09-19 11:55:49 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-09-19 21:17:04 +0300
commit104fb1fb76b187e24c6c277f43ed61190db5be26 (patch)
tree23e34c4a7546c8e3b2dd3e9ad6ca05eecb9d6f48
parenta5101e4da8d81161482106d8d8d46ae49be6e18c (diff)
Fix T53745: Alembic exported with vertex colors not readable by other software.
Most other software expects to read indexed vertex colors, so write indices along with the colors as we already do for UVs. Differential Revision: https://developer.blender.org/D3704
-rw-r--r--source/blender/alembic/intern/abc_customdata.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/alembic/intern/abc_customdata.cc b/source/blender/alembic/intern/abc_customdata.cc
index f2ae1c831d1..424475dc61b 100644
--- a/source/blender/alembic/intern/abc_customdata.cc
+++ b/source/blender/alembic/intern/abc_customdata.cc
@@ -185,7 +185,11 @@ static void write_mcol(const OCompoundProperty &prop, const CDStreamConfig &conf
MLoop *mloops = config.mloop;
MCol *cfaces = static_cast<MCol *>(data);
- std::vector<Imath::C4f> buffer(config.totvert);
+ std::vector<Imath::C4f> buffer;
+ std::vector<uint32_t> indices;
+
+ buffer.reserve(config.totvert);
+ indices.reserve(config.totvert);
Imath::C4f col;
@@ -203,7 +207,8 @@ static void write_mcol(const OCompoundProperty &prop, const CDStreamConfig &conf
col[2] = cface->g * cscale;
col[3] = cface->b * cscale;
- buffer[mloop->v] = col;
+ buffer.push_back(col);
+ indices.push_back(buffer.size() - 1);
}
}
@@ -211,6 +216,7 @@ static void write_mcol(const OCompoundProperty &prop, const CDStreamConfig &conf
OC4fGeomParam::Sample sample(
C4fArraySample(&buffer.front(), buffer.size()),
+ UInt32ArraySample(&indices.front(), indices.size()),
kVertexScope);
param.set(sample);