Fix T53572: Alembic imports UV maps incorrectly
Since in Alembic the loop order seems to be reversed when exporting and importing, and this was the only place where it was not, I was thinking to match this to the convention of reversing the loop order as well. Reviewers: sybren, kevindietrich Tags: #alembic Differential Revision: https://developer.blender.org/D2968
This commit is contained in:
parent
ce35151f38
commit
0f841e24b0
|
@ -235,17 +235,19 @@ static void read_uvs(const CDStreamConfig &config, void *data,
|
|||
MPoly *mpolys = config.mpoly;
|
||||
MLoopUV *mloopuvs = static_cast<MLoopUV *>(data);
|
||||
|
||||
unsigned int uv_index, loop_index;
|
||||
unsigned int uv_index, loop_index, rev_loop_index;
|
||||
|
||||
for (int i = 0; i < config.totpoly; ++i) {
|
||||
MPoly &poly = mpolys[i];
|
||||
unsigned int rev_loop_offset = poly.loopstart + poly.totloop - 1;
|
||||
|
||||
for (int f = 0; f < poly.totloop; ++f) {
|
||||
loop_index = poly.loopstart + f;
|
||||
rev_loop_index = rev_loop_offset - f;
|
||||
uv_index = (*indices)[loop_index];
|
||||
const Imath::V2f &uv = (*uvs)[uv_index];
|
||||
|
||||
MLoopUV &loopuv = mloopuvs[loop_index];
|
||||
MLoopUV &loopuv = mloopuvs[rev_loop_index];
|
||||
loopuv.uv[0] = uv[0];
|
||||
loopuv.uv[1] = uv[1];
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue