Alembic export: don't show warning for every exported frame
The warning about not having a UV map is now only shown once per hair system.
This commit is contained in:
@@ -56,6 +56,7 @@ AbcHairWriter::AbcHairWriter(Scene *scene,
|
||||
ExportSettings &settings,
|
||||
ParticleSystem *psys)
|
||||
: AbcObjectWriter(scene, ob, time_sampling, settings, parent)
|
||||
, m_uv_warning_shown(false)
|
||||
{
|
||||
m_psys = psys;
|
||||
|
||||
@@ -132,8 +133,10 @@ void AbcHairWriter::write_hair_sample(DerivedMesh *dm,
|
||||
MFace *mface = dm->getTessFaceArray(dm);
|
||||
MVert *mverts = dm->getVertArray(dm);
|
||||
|
||||
if (!mtface || !mface) {
|
||||
std::fprintf(stderr, "Warning, no UV set found for underlying geometry.\n");
|
||||
if ((!mtface || !mface) && !m_uv_warning_shown) {
|
||||
std::fprintf(stderr, "Warning, no UV set found for underlying geometry of %s.\n",
|
||||
m_object->id.name + 2);
|
||||
m_uv_warning_shown = true;
|
||||
}
|
||||
|
||||
ParticleData * pa = m_psys->particles;
|
||||
@@ -241,10 +244,6 @@ void AbcHairWriter::write_hair_child_sample(DerivedMesh *dm,
|
||||
MFace *mface = dm->getTessFaceArray(dm);
|
||||
MVert *mverts = dm->getVertArray(dm);
|
||||
|
||||
if (!mtface || !mface) {
|
||||
std::fprintf(stderr, "Warning, no UV set found for underlying geometry.\n");
|
||||
}
|
||||
|
||||
ParticleCacheKey **cache = m_psys->childcache;
|
||||
ParticleCacheKey *path;
|
||||
|
||||
|
||||
@@ -37,6 +37,8 @@ class AbcHairWriter : public AbcObjectWriter {
|
||||
Alembic::AbcGeom::OCurvesSchema m_schema;
|
||||
Alembic::AbcGeom::OCurvesSchema::Sample m_sample;
|
||||
|
||||
bool m_uv_warning_shown;
|
||||
|
||||
public:
|
||||
AbcHairWriter(Scene *scene,
|
||||
Object *ob,
|
||||
|
||||
Reference in New Issue
Block a user