// [MenuItem("Tools/glTF Test/Test")] // static void TestMenu() { // var rp = RenderPipelineUtils.DetectRenderPipeline(); // // var setName = "glTF-Sample-Models"; // // switch (rp) { // case RenderPipeline.Universal: // setName = "glTF-Sample-Models-URP"; // break; // case RenderPipeline.HighDefinition: // setName = "glTF-Sample-Models-HDRP"; // break; // } // // var sampleSet = AssetDatabase.LoadAssetAtPath<SampleSet>( $"Packages/com.atteneder.gltf-graphics-tests/Runtime/SampleSets/{setName}.asset"); // // } internal static void GenerateTests(bool createScenes = true) { var rp = RenderPipelineUtils.DetectRenderPipeline(); var setName = "glTF-Sample-Models"; switch (rp) { case RenderPipeline.Universal: setName = "glTF-Sample-Models-URP"; break; case RenderPipeline.HighDefinition: setName = "glTF-Sample-Models-HDRP"; break; } var sampleSet = AssetDatabase.LoadAssetAtPath <SampleSet>($"Packages/com.atteneder.gltf-graphics-tests/Runtime/SampleSets/{setName}.asset"); sampleSet.CopyToStreamingAssets(); if (createScenes) { sampleSet.CreateRenderTestScenes(); } }
static string GetExportSceneName() { switch (RenderPipelineUtils.DetectRenderPipeline()) { case RenderPipeline.HighDefinition: return("ExportSceneHighDefinition"); case RenderPipeline.Universal: return("ExportSceneUniversal"); default: return("ExportSceneBuiltIn"); } }
public static void CreateRenderTestScenes(this SampleSet sampleSet) { #if GLTFAST_RENDER_TEST var allScenes = new List <EditorBuildSettingsScene>(); var allScenePaths = new List <string>(); // Texture2D dummyReference = null; var setName = sampleSet.name; var renderPipeline = RenderPipelineUtils.DetectRenderPipeline(); foreach (var item in sampleSet.GetItems()) { var testScene = EditorSceneManager.OpenScene("Assets/Scenes/TestScene.unity"); var settingsGameObject = new GameObject("GraphicsTestSettings"); var graphicsTestSettings = settingsGameObject.AddComponent <UniversalGraphicsTestSettings>(); graphicsTestSettings.WaitFrames = renderPipeline == RenderPipeline.HighDefinition ? 2 : 0; var go = new GameObject(item.name); var gltfAsset = go.AddComponent <GltfBoundsAsset>(); if (string.IsNullOrEmpty(sampleSet.streamingAssetsPath)) { gltfAsset.url = Path.Combine(sampleSet.baseLocalPath, item.path); } else { gltfAsset.url = Path.Combine(sampleSet.streamingAssetsPath, item.path); gltfAsset.streamingAsset = true; } gltfAsset.loadOnStartup = false; gltfAsset.createBoxCollider = false; var sceneDirectory = CertifyDirectory(item.directoryParts, string.Format("Assets/Scenes/{0}", setName)); var scenePath = Path.Combine(sceneDirectory, item.name + ".unity"); EditorSceneManager.SaveScene(testScene, scenePath); allScenes.Add(new EditorBuildSettingsScene(scenePath, true)); allScenePaths.Add(scenePath); // CertifyDirectory(new[] { "ReferenceImages", "Linear", "OSXEditor", "Metal", "None" }, "Assets"); // var referenceImagePath = // Path.Combine(Application.dataPath, "ReferenceImages/Linear/OSXEditor/Metal/None", item.name + ".png"); // // if (!File.Exists(referenceImagePath)) { // Debug.LogFormat("Create dummy reference at path {0}", referenceImagePath); // dummyReference = dummyReference!=null // ? dummyReference // : new Texture2D( // graphicsTestSettings.ImageComparisonSettings.TargetWidth, // graphicsTestSettings.ImageComparisonSettings.TargetHeight // ); // File.WriteAllBytes(referenceImagePath, dummyReference.EncodeToPNG()); // } } AssetDatabase.Refresh(); EditorBuildSettings.scenes = allScenes.ToArray(); Lightmapping.BakeMultipleScenes(allScenePaths.ToArray()); #else Debug.LogWarning("Please install the Graphics Test Framework for render tests to work."); #endif }