Пример #1
0
            public SkinnedMeshCapturer(usdiExporter exporter, ComponentCapturer parent, SkinnedMeshRenderer target)
                : base(exporter, parent, target.GetComponent <Transform>(), false)
            {
                m_usd    = usdi.usdiCreateMesh(ctx, parent.usd, CreateName(target));
                m_target = target;
                m_buffer = new MeshBuffer();

                if (m_target.GetComponent <Cloth>() != null)
                {
                    base.scale = false;
                }

                m_captureNormals    = exporter.m_captureMeshNormals;
                m_captureTangents   = exporter.m_captureMeshTangents;
                m_captureUVs        = exporter.m_captureMeshUVs;
                m_captureBones      = exporter.m_captureSkinnedMeshAs == SkinnedMeshCaptureMode.BoneAndWeights;
                m_captureEveryFrame = !m_captureBones;

                var conf = target.GetComponent <usdiMeshExportConfig>();

                if (conf != null)
                {
                    m_captureNormals           = conf.m_captureNormals;
                    m_captureTangents          = conf.m_captureTangents;
                    m_captureUVs               = conf.m_captureUVs;
                    m_captureEveryFrame        = conf.m_captureEveryFrame;
                    m_captureEveryFrameUV      = conf.m_captureEveryFrameUV;
                    m_captureEveryFrameIndices = conf.m_captureEveryFrameIndices;
                }
            }
Пример #2
0
 public CameraCapturer(usdiExporter exporter, ComponentCapturer parent, Camera target)
     : base(exporter, parent, target.GetComponent <Transform>(), false)
 {
     m_usd    = usdi.usdiCreateCamera(ctx, parent.usd, CreateName(target));
     m_target = target;
     //target.GetComponent<usdiCameraExportConfig>();
 }
Пример #3
0
 public MeshCapturer(ComponentCapturer parent, MeshRenderer target)
     : base(parent)
 {
     m_obj         = target.gameObject;
     m_abc         = AbcAPI.aeNewPolyMesh(parent.abc, target.name);
     m_target      = target;
     m_mesh_buffer = new MeshBuffer();
 }
Пример #4
0
 public TransformCapturer(ComponentCapturer parent, Transform target)
     : base(parent)
 {
     m_obj      = target.gameObject;
     m_abc      = AbcAPI.aeNewXForm(parent.abc, target.name + " (" + target.GetInstanceID().ToString("X8") + ")");
     m_target   = target;
     m_inherits = inherits;
 }
Пример #5
0
 public CameraCapturer(ComponentCapturer parent, Camera target)
     : base(parent)
 {
     m_obj    = target.gameObject;
     m_abc    = AbcAPI.aeNewCamera(parent.abc, target.name);
     m_target = target;
     m_params = target.GetComponent <AlembicCameraParams>();
 }
Пример #6
0
            public ParticleCapturer(ComponentCapturer parent, ParticleSystem target)
                : base(parent)
            {
                m_obj    = target.gameObject;
                m_abc    = AbcAPI.aeNewPoints(parent.abc, target.name);
                m_target = target;

                m_prop_rotatrions = AbcAPI.aeNewProperty(m_abc, "rotation", AbcAPI.aePropertyType.Float4Array);
            }
Пример #7
0
        public TransformCapturer CreateComponentCapturer(ComponentCapturer parent, Transform target)
        {
            if (m_detailedLog)
            {
                Debug.Log("AlembicExporter: new TransformCapturer(\"" + target.name + "\"");
            }

            var cap = new TransformCapturer(parent, target);

            m_capturers.Add(cap);
            return(cap);
        }
Пример #8
0
        public SkinnedMeshCapturer CreateComponentCapturer(ComponentCapturer parent, SkinnedMeshRenderer target)
        {
            if (m_detailedLog)
            {
                Debug.Log("AlembicExporter: new SkinnedMeshCapturer(\"" + target.name + "\"");
            }

            var cap = new SkinnedMeshCapturer(parent, target);

            m_capturers.Add(cap);
            return(cap);
        }
Пример #9
0
        public ParticleCapturer CreateComponentCapturer(ComponentCapturer parent, ParticleSystem target)
        {
            if (m_detailedLog)
            {
                Debug.Log("AlembicExporter: new ParticleCapturer(\"" + target.name + "\"");
            }

            var cap = new ParticleCapturer(parent, target);

            m_capturers.Add(cap);
            return(cap);
        }
Пример #10
0
        public CustomCapturerHandler CreateComponentCapturer(ComponentCapturer parent, AlembicCustomComponentCapturer target)
        {
            if (m_detailedLog)
            {
                Debug.Log("AlembicExporter: new CustomCapturerHandler(\"" + target.name + "\"");
            }

            target.CreateAbcObject(parent.abc);
            var cap = new CustomCapturerHandler(parent, target);

            m_capturers.Add(cap);
            return(cap);
        }
Пример #11
0
            public SkinnedMeshCapturer(ComponentCapturer parent, SkinnedMeshRenderer target)
                : base(parent)
            {
                m_obj         = target.gameObject;
                m_abc         = AbcAPI.aeNewPolyMesh(parent.abc, target.name);
                m_target      = target;
                m_mesh_buffer = new MeshBuffer();

                if (m_target.GetComponent <Cloth>() != null)
                {
                    var t = m_parent as TransformCapturer;
                    if (t != null)
                    {
                        t.scale = false;
                    }
                }
            }
Пример #12
0
            public ParticleCapturer(usdiExporter exporter, ComponentCapturer parent, ParticleSystem target)
                : base(exporter, parent, target.GetComponent <Transform>(), false)
            {
                m_usd    = usdi.usdiCreatePoints(ctx, parent.usd, CreateName(target));
                m_target = target;

                var config = target.GetComponent <usdiParticleExportConfig>();

                if (config != null)
                {
                    m_captureRotations = config.m_captureRotations;
                }
                if (m_captureRotations)
                {
                    m_attr_rotatrions = usdi.usdiPrimCreateAttribute(m_usd, "rotations", usdi.AttributeType.Float4Array);
                }
            }
Пример #13
0
            public TransformCapturer(usdiExporter exporter, ComponentCapturer parent, Transform target, bool create_usd_node = true)
                : base(exporter, parent)
            {
                m_target = target;
                if (create_usd_node)
                {
                    m_usd = usdi.usdiCreateXform(ctx, parent.usd, CreateName(target));
                }

                if (m_target.gameObject.isStatic)
                {
                    m_captureEveryFrame = false;
                }

                var config = target.GetComponent <usdiTransformExportConfig>();

                if (config)
                {
                    m_captureEveryFrame = config.m_captureEveryFrame;
                }
            }
Пример #14
0
            public MeshCapturer(usdiExporter exporter, ComponentCapturer parent, MeshRenderer target)
                : base(exporter, parent, target.GetComponent <Transform>(), false)
            {
                m_usd         = usdi.usdiCreateMesh(ctx, parent.usd, CreateName(target));
                m_target      = target;
                m_mesh_buffer = new MeshBuffer();

                m_captureNormals = exporter.m_captureMeshNormals;
                m_captureUVs     = exporter.m_captureMeshUVs;

                var conf = target.GetComponent <usdiMeshExportConfig>();

                if (conf != null)
                {
                    m_captureNormals           = conf.m_captureNormals;
                    m_captureUVs               = conf.m_captureUVs;
                    m_captureEveryFrame        = conf.m_captureEveryFrame;
                    m_captureEveryFrameUV      = conf.m_captureEveryFrameUV;
                    m_captureEveryFrameIndices = conf.m_captureEveryFrameIndices;
                }
            }
Пример #15
0
        void CreateCapturers_Tree()
        {
            m_root         = new RootCapturer(AbcAPI.aeGetTopObject(m_ctx));
            m_capture_node = new Dictionary <Transform, CaptureNode>();
            m_top_nodes    = new List <CaptureNode>();

            // construct tree
            // (bottom-up)
            if (m_captureCamera)
            {
                foreach (var t in GetTargets <Camera>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_captureMeshRenderer)
            {
                foreach (var t in GetTargets <MeshRenderer>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_captureSkinnedMeshRenderer)
            {
                foreach (var t in GetTargets <SkinnedMeshRenderer>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_captureParticleSystem)
            {
                foreach (var t in GetTargets <ParticleSystem>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_customCapturer)
            {
                foreach (var t in GetTargets <AlembicCustomComponentCapturer>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = typeof(AlembicCustomComponentCapturer);
                }
            }

            // make component capturers (top-down)
            foreach (var c in m_top_nodes)
            {
                SetupComponentCapturer(null, c);
            }


            m_top_nodes    = null;
            m_capture_node = null;
        }
Пример #16
0
        void CreateCapturers_Flat()
        {
            m_root = new RootCapturer(AbcAPI.aeGetTopObject(m_ctx));

            // Camera
            if (m_captureCamera)
            {
                foreach (var target in GetTargets <Camera>())
                {
                    if (ShouldBeIgnored(target))
                    {
                        continue;
                    }
                    var trans = CreateComponentCapturer(m_root, target.GetComponent <Transform>());
                    trans.inherits      = false;
                    trans.invertForward = true;
                    CreateComponentCapturer(trans, target);
                }
            }

            // MeshRenderer
            if (m_captureMeshRenderer)
            {
                foreach (var target in GetTargets <MeshRenderer>())
                {
                    if (ShouldBeIgnored(target))
                    {
                        continue;
                    }
                    var trans = CreateComponentCapturer(m_root, target.GetComponent <Transform>());
                    trans.inherits = false;
                    CreateComponentCapturer(trans, target);
                }
            }

            // SkinnedMeshRenderer
            if (m_captureSkinnedMeshRenderer)
            {
                foreach (var target in GetTargets <SkinnedMeshRenderer>())
                {
                    if (ShouldBeIgnored(target))
                    {
                        continue;
                    }
                    var trans = CreateComponentCapturer(m_root, target.GetComponent <Transform>());
                    trans.inherits = false;
                    CreateComponentCapturer(trans, target);
                }
            }

            // ParticleSystem
            if (m_captureParticleSystem)
            {
                foreach (var target in GetTargets <ParticleSystem>())
                {
                    if (ShouldBeIgnored(target))
                    {
                        continue;
                    }
                    var trans = CreateComponentCapturer(m_root, target.GetComponent <Transform>());
                    trans.inherits = false;
                    CreateComponentCapturer(trans, target);
                }
            }

            // handle custom capturers (AlembicCustomComponentCapturer)
            if (m_customCapturer)
            {
                foreach (var target in GetTargets <AlembicCustomComponentCapturer>())
                {
                    if (ShouldBeIgnored(target))
                    {
                        continue;
                    }
                    var trans = CreateComponentCapturer(m_root, target.GetComponent <Transform>());
                    trans.inherits = false;
                    CreateComponentCapturer(trans, target);
                }
            }
        }
Пример #17
0
            public abstract void Flush(double t);   // called from worker thread

            protected ComponentCapturer(usdiExporter exporter, ComponentCapturer parent)
            {
                m_exporter = exporter;
                m_parent   = parent;
            }
Пример #18
0
 public CustomCapturerHandler(usdiExporter exporter, ComponentCapturer parent, usdiCustomComponentCapturer target)
     : base(exporter, parent, target.GetComponent <Transform>(), false)
 {
     m_target = target;
 }
Пример #19
0
        void ConstructCaptureTree()
        {
            m_root         = new RootCapturer(this, usdi.usdiGetRoot(m_ctx));
            m_captureNodes = new Dictionary <Transform, CaptureNode>();
            m_rootNodes    = new List <CaptureNode>();

            var bones = new HashSet <Transform>();

            // construct tree
            // (bottom-up)
            if (m_captureCamera)
            {
                foreach (var t in GetTargets <Camera>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_captureMeshRenderer)
            {
                foreach (var t in GetTargets <MeshRenderer>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_captureSkinnedMeshRenderer)
            {
                foreach (var t in GetTargets <SkinnedMeshRenderer>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();

                    // capture bones as well
                    if (m_captureSkinnedMeshAs == SkinnedMeshCaptureMode.BoneAndWeights)
                    {
                        if (t.rootBone != null)
                        {
                            bones.Add(t.rootBone);
                        }
                        if (t.bones != null)
                        {
                            foreach (var bone in t.bones)
                            {
                                bones.Add(bone);
                            }
                        }
                    }
                }
            }
            if (m_captureParticleSystem)
            {
                foreach (var t in GetTargets <ParticleSystem>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_customCapturer)
            {
                foreach (var t in GetTargets <usdiCustomComponentCapturer>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = typeof(usdiCustomComponentCapturer);
                }
            }

            foreach (var t in bones)
            {
                var node = ConstructTree(t.GetComponent <Transform>());
                node.componentType = t.GetType();
            }

            // make component capturers (top-down)
            foreach (var c in m_rootNodes)
            {
                SetupComponentCapturer(null, c);
            }
        }
Пример #20
0
 protected ComponentCapturer(ComponentCapturer p)
 {
     m_parent = p;
 }
Пример #21
0
 public CustomCapturerHandler(ComponentCapturer parent, AlembicCustomComponentCapturer target)
     : base(parent)
 {
     m_obj    = target.gameObject;
     m_target = target;
 }