Hydra: add support for legacy hair particles #114197
|
@ -310,19 +310,21 @@ void HairData::write_uv_maps()
|
|||
particle_system->particles->num :
|
||||
particle_system->particles->num_dmcache;
|
||||
|
||||
const MFace *mface = static_cast<const MFace *>(
|
||||
CustomData_get_layer(&psmd->mesh_final->fdata_legacy, CD_MFACE));
|
||||
const MTFace *mtface = static_cast<const MTFace *>(
|
||||
CustomData_get_layer(&psmd->mesh_final->fdata_legacy, CD_MTFACE));
|
||||
float r_uv[2] = {0.0f, 0.0f};
|
||||
if (ELEM(psmd->psys->part->from, PART_FROM_FACE, PART_FROM_VOLUME) &&
|
||||
!ELEM(num, DMCACHE_NOTFOUND, DMCACHE_ISCHILD)) {
|
||||
const MFace *mface = static_cast<const MFace *>(
|
||||
CustomData_get_layer(&psmd->mesh_final->fdata_legacy, CD_MFACE));
|
||||
const MTFace *mtface = static_cast<const MTFace *>(
|
||||
CustomData_get_layer(&psmd->mesh_final->fdata_legacy, CD_MTFACE));
|
||||
|
||||
float r_uv[2];
|
||||
if (mface && mtface) {
|
||||
mtface += num;
|
||||
psys_interpolate_uvs(mtface, mface->v4, particle_system->particles->fuv, r_uv);
|
||||
}
|
||||
for (int i = 0; i < particle_system->totpart; i++) {
|
||||
uvs_.push_back(pxr::GfVec2f(r_uv[0], r_uv[1]));
|
||||
|
||||
if (mface && mtface) {
|
||||
mtface += num;
|
||||
psys_interpolate_uvs(mtface, mface->v4, particle_system->particles->fuv, r_uv);
|
||||
}
|
||||
}
|
||||
uvs_.push_back(pxr::GfVec2f(r_uv[0], r_uv[1]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue