コード例 #1
0
        public void SetUp()
        {
            InitUsd.Initialize();
            var usdPath = Path.GetFullPath(AssetDatabase.GUIDToAssetPath(m_usdGUID));
            var stage   = pxr.UsdStage.Open(usdPath, pxr.UsdStage.InitialLoadSet.LoadNone);
            var scene   = Scene.Open(stage);

            m_usdRoot = ImportHelpers.ImportSceneAsGameObject(scene);
            scene.Close();
        }
コード例 #2
0
        public void SetUp()
        {
            InitUsd.Initialize();
            var usdPath       = Path.GetFullPath(AssetDatabase.GUIDToAssetPath(m_usdGUID));
            var stage         = pxr.UsdStage.Open(usdPath, pxr.UsdStage.InitialLoadSet.LoadNone);
            var scene         = Scene.Open(stage);
            var importOptions = new SceneImportOptions();

            importOptions.materialImportMode = MaterialImportMode.ImportPreviewSurface;
            m_usdRoot = ImportHelpers.ImportSceneAsGameObject(scene, importOptions: importOptions);
            scene.Close();
        }
コード例 #3
0
        private GameObject LoadUSD(Object usdObject, BasisTransformation changeHandedness = BasisTransformation.SlowAndSafeAsFBX)
        {
            InitUsd.Initialize();
            var usdPath       = Path.GetFullPath(AssetDatabase.GetAssetPath(usdObject));
            var stage         = pxr.UsdStage.Open(usdPath, pxr.UsdStage.InitialLoadSet.LoadNone);
            var scene         = Scene.Open(stage);
            var importOptions = new SceneImportOptions();

            importOptions.changeHandedness   = changeHandedness;
            importOptions.scale              = 0.01f;
            importOptions.materialImportMode = MaterialImportMode.ImportDisplayColor;
            var usdRoot = ImportHelpers.ImportSceneAsGameObject(scene, importOptions: importOptions);

            scene.Close();
            return(usdRoot);
        }
コード例 #4
0
        /// <summary>
        /// Writes overrides to the currently targeted subLayer.
        /// </summary>
        public void SaveToLayer()
        {
            var stageRoot = GetComponent <UsdAsset>();

            Scene subLayerScene = Scene.Create(m_targetLayer);

            if (subLayerScene == null)
            {
                throw new NullReferenceException("Could not create layer: " + m_targetLayer);
            }

            Scene rootScene = Scene.Open(stageRoot.usdFullPath);

            if (rootScene == null)
            {
                throw new NullReferenceException("Could not open base layer: " + stageRoot.usdFullPath);
            }

            SetupNewSubLayer(rootScene, subLayerScene);

            rootScene.Close();
            rootScene = null;

            try
            {
                SceneExporter.Export(stageRoot.gameObject,
                                     subLayerScene,
                                     stageRoot.m_changeHandedness,
                                     exportUnvarying: false,
                                     zeroRootTransform: false);
            }
            catch (Exception ex)
            {
                Debug.LogException(ex);
                return;
            }
            finally
            {
                if (subLayerScene != null)
                {
                    subLayerScene.Save();
                    subLayerScene.Close();
                    subLayerScene = null;
                }
            }
        }
コード例 #5
0
        public void SetUp()
        {
            var fbxPath = AssetDatabase.GUIDToAssetPath(fbxGUID);
            var asset   = AssetDatabase.LoadAssetAtPath <GameObject>(fbxPath);

            fbxRoot = PrefabUtility.InstantiatePrefab(asset) as GameObject;

            InitUsd.Initialize();
            var usdPath       = Path.GetFullPath(AssetDatabase.GUIDToAssetPath(usdGUID));
            var stage         = pxr.UsdStage.Open(usdPath, pxr.UsdStage.InitialLoadSet.LoadNone);
            var scene         = Scene.Open(stage);
            var importOptions = new SceneImportOptions();

            importOptions.changeHandedness   = BasisTransformation.SlowAndSafeAsFBX;
            importOptions.scale              = 0.01f;
            importOptions.materialImportMode = MaterialImportMode.ImportDisplayColor;
            usdRoot = USD.UsdMenu.ImportSceneAsGameObject(scene, importOptions);
            scene.Close();
        }