예제 #1
0
        public override void AbcGetConfig(ref AbcAPI.aiConfig config)
        {
            if (m_normalsMode != AbcAPI.aiNormalsModeOverride.InheritStreamSetting)
            {
                config.normalsMode = (AbcAPI.aiNormalsMode)m_normalsMode;
            }

            if (m_tangentsMode != AbcAPI.aiTangentsModeOverride.InheritStreamSetting)
            {
                config.tangentsMode = (AbcAPI.aiTangentsMode)m_tangentsMode;
            }

            if (m_faceWinding != AbcAPI.aiFaceWindingOverride.InheritStreamSetting)
            {
                config.swapFaceWinding = (m_faceWinding == AbcAPI.aiFaceWindingOverride.Swap);
            }

            config.cacheTangentsSplits = m_cacheTangentsSplits;

            // if 'forceUpdate' is set true, even if alembic sample data do not change at all
            // AbcSampleUpdated will still be called (topologyChanged will be false)

            AlembicMaterial abcMaterials = m_trans.GetComponent <AlembicMaterial>();

            config.forceUpdate = m_freshSetup || (abcMaterials != null ? abcMaterials.HasFacesetsChanged() : hasFacesets);
        }
예제 #2
0
 public override void AbcGetConfig(ref AbcAPI.aiConfig config)
 {
     if (m_aspectRatioMode != AbcAPI.aiAspectRatioModeOverride.InheritStreamSetting)
     {
         config.aspectRatio = AbcAPI.GetAspectRatio((AbcAPI.aiAspectRatioMode)m_aspectRatioMode);
     }
 }
예제 #3
0
        static void ConfigCallback(IntPtr __this, ref AbcAPI.aiConfig config)
        {
            var _this = GCHandle.FromIntPtr(__this).Target as AlembicElement;

            _this.AbcGetConfig(ref config);
        }
예제 #4
0
 // Called by loading thread (not necessarily the main thread)
 public virtual void AbcGetConfig(ref AbcAPI.aiConfig config)
 {
     // Overrides aiConfig options here if needed
 }