Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
9a850d1
Adds Performance Test Project and separates Functional tests and perf…
lee-aandrew Feb 3, 2023
bb09419
Add changes to .gitignore ignoring Usd-Developement-Performance's lib…
lee-aandrew Feb 3, 2023
dcdeaa2
Adds project settings.asset file change
lee-aandrew Feb 6, 2023
292f5d5
Adds placeholder performance test
lee-aandrew Feb 6, 2023
9e4cf7e
Testing change for upm-ci.yml
lee-aandrew Feb 6, 2023
fc5fe47
utr command fix
lee-aandrew Feb 7, 2023
1a689a7
utr command fix
lee-aandrew Feb 7, 2023
9411968
utr command fix
lee-aandrew Feb 7, 2023
c3ffba6
utr upm-ci fix
lee-aandrew Feb 7, 2023
8816e26
utr upm-ci fix
lee-aandrew Feb 7, 2023
f90e49d
utr upm-ci fix
lee-aandrew Feb 7, 2023
028cde9
utr upm-ci fix
lee-aandrew Feb 7, 2023
8d52eca
utr upm-ci fix
lee-aandrew Feb 7, 2023
e8111d9
utr upm-ci fix
lee-aandrew Feb 7, 2023
cf4e1dd
utr upm-ci fix
lee-aandrew Feb 7, 2023
dcf052c
utr upm-ci fix
lee-aandrew Feb 7, 2023
8237964
utr upm-ci fix
lee-aandrew Feb 7, 2023
0110663
utr upm-ci fix
lee-aandrew Feb 7, 2023
fd86151
adding placeholder performance test case
lee-aandrew Feb 8, 2023
49c4d84
fixing platform.version -> editor.version
lee-aandrew Feb 8, 2023
6a28786
removing com.unity.feature.development pacakge from performance project
lee-aandrew Feb 8, 2023
94ea83c
adds chmod to mac utr
lee-aandrew Feb 8, 2023
61d2ef6
adds performance test package to dependency & attempt to fix mac vers…
lee-aandrew Feb 8, 2023
d826683
fixing upm-ci.yml
lee-aandrew Feb 8, 2023
71f3527
update package for performance projects, add --clean-library for utr …
lee-aandrew Feb 8, 2023
3393872
Removes Clean library option
lee-aandrew Feb 8, 2023
159fdce
apply clean library to only the performance test
lee-aandrew Feb 8, 2023
a2ba2dd
removes package com.unity.coding since its a known issue to be errori…
lee-aandrew Feb 9, 2023
b742281
Point instancer performance test
lee-aandrew Feb 17, 2023
514e3e2
enable 10k larger test file for import as object test cases
lee-aandrew Feb 20, 2023
3bdab81
fix formatting issue and remove changes to the functional test project
lee-aandrew Feb 20, 2023
f580cfa
Remove unnecessary changes to the asmdef files
lee-aandrew Feb 20, 2023
cedb2d8
Applying PR suggestions
lee-aandrew Feb 28, 2023
361553f
fix formatting issue
lee-aandrew Mar 1, 2023
292f785
fix yamato upm-ci.yml if statement
lee-aandrew Mar 1, 2023
996f823
Merge branch 'dev' into add-Performance-Tests
lee-aandrew Mar 10, 2023
6351a81
fix directory change in upm-ci.yml
lee-aandrew Mar 10, 2023
2310374
Merge branch 'add-Performance-Tests' of https://github.com/Unity-Tech…
lee-aandrew Mar 10, 2023
7519af4
Change location of performance test to the project folder and out of …
lee-aandrew Mar 10, 2023
cecc7f9
removing artifacts folder
lee-aandrew Mar 10, 2023
cd283d6
Decouples Performance tests from the functional tests - Moves USDInit…
lee-aandrew Mar 13, 2023
c4b7a8b
Ignores two unstable test cases until a fix has been found
lee-aandrew Mar 21, 2023
464ea5b
Merge branch 'dev' of https://github.com/Unity-Technologies/usd-unity…
lee-aandrew Mar 29, 2023
7af60ed
Merge branch 'dev' of https://github.com/Unity-Technologies/usd-unity…
lee-aandrew Mar 31, 2023
20dc1c7
Merge branch 'dev' of https://github.com/Unity-Technologies/usd-unity…
lee-aandrew Apr 12, 2023
4236bd0
Merge branch 'dev' of https://github.com/Unity-Technologies/usd-unity…
lee-aandrew Apr 14, 2023
2d14b87
Merge branch 'dev' of https://github.com/Unity-Technologies/usd-unity…
lee-aandrew Apr 18, 2023
bb60d3e
Merge branch 'dev' of https://github.com/Unity-Technologies/usd-unity…
lee-aandrew Apr 19, 2023
9336edf
Merge branch 'dev' of https://github.com/Unity-Technologies/usd-unity…
lee-aandrew Apr 21, 2023
5695de5
Merge branch 'dev' of https://github.com/Unity-Technologies/usd-unity…
lee-aandrew May 10, 2023
3b0e137
Merge branch 'dev' of https://github.com/Unity-Technologies/usd-unity…
lee-aandrew May 11, 2023
fe2c564
Adds Performance Test Project and separates Functional tests and perf…
lee-aandrew Feb 3, 2023
08dd122
Add changes to .gitignore ignoring Usd-Developement-Performance's lib…
lee-aandrew Feb 3, 2023
945b30c
Adds project settings.asset file change
lee-aandrew Feb 6, 2023
4bc4f6e
Adds placeholder performance test
lee-aandrew Feb 6, 2023
2e73bc7
utr command fix
lee-aandrew Feb 7, 2023
fabe5bb
adding placeholder performance test case
lee-aandrew Feb 8, 2023
148474d
removing com.unity.feature.development pacakge from performance project
lee-aandrew Feb 8, 2023
b7d28ca
adds performance test package to dependency & attempt to fix mac vers…
lee-aandrew Feb 8, 2023
3692ab7
update package for performance projects, add --clean-library for utr …
lee-aandrew Feb 8, 2023
6bbb904
removes package com.unity.coding since its a known issue to be errori…
lee-aandrew Feb 9, 2023
8d43a0e
Point instancer performance test
lee-aandrew Feb 17, 2023
d1e1cd5
enable 10k larger test file for import as object test cases
lee-aandrew Feb 20, 2023
4ce65ff
fix formatting issue and remove changes to the functional test project
lee-aandrew Feb 20, 2023
da706dc
Remove unnecessary changes to the asmdef files
lee-aandrew Feb 20, 2023
3d9ab53
Applying PR suggestions
lee-aandrew Feb 28, 2023
88b656c
fix formatting issue
lee-aandrew Mar 1, 2023
0f50c82
Change location of performance test to the project folder and out of …
lee-aandrew Mar 10, 2023
065bb34
removing artifacts folder
lee-aandrew Mar 10, 2023
7c9d53b
Decouples Performance tests from the functional tests - Moves USDInit…
lee-aandrew Mar 13, 2023
c72d9d9
fixes merge issue with rebase
lee-aandrew May 16, 2023
5774cb0
Merge branch 'add-Performance-Tests' of https://github.com/Unity-Tech…
lee-aandrew May 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 7 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,21 +47,17 @@ vs2015/UsdCs/Release/*
packages.config
/inst/
*.unitypackage
*.csproj
*.sln
*.vs
*.vsconfig

# OSX
.DS_Store

# UPM
upm-ci~

TestProject/Library
TestProject/ProjectSettings
TestProject/Temp
TestProject/*.sln*
TestProject/*.csproj
TestProject/.idea
TestProject/Logs
TestProject/Assets/*
inst-dbg/
package/com.unity.formats.usd/TestRunnerOptions.json.meta
/artifacts/
Expand All @@ -74,3 +70,6 @@ TestProject/**/*.sln
TestProject/Usd-Development/Library
TestProject/Usd-Development/.vs
build_usdcs
TestProject/**/ProjectSettings/*.asset
TestProject/**/UserSettings/
TestProject/Usd-Development-Performance/Library
1 change: 1 addition & 0 deletions TestProject/Usd-Development/Packages/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"com.unity.ide.rider": "1.1.4",
"com.unity.recorder": "2.5.5",
"com.unity.test-framework": "1.1.24",
"com.unity.test-framework.performance": "2.8.1-preview",
"com.unity.modules.ai": "1.0.0",
"com.unity.modules.animation": "1.0.0",
"com.unity.modules.assetbundle": "1.0.0",
Expand Down
Empty file.
8 changes: 8 additions & 0 deletions TestProject/Usd-Performance/Assets/Performance.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
using NUnit.Framework;
using Unity.PerformanceTesting;
using System.IO;
using UnityEditor;
using UnityEngine.TestTools;
using System.Collections;
using UnityEngine;
using System.Collections.Generic;

namespace Unity.Formats.USD.Tests
{
[Category("Performance")]
public class BaseUsdPerformanceTests : PerformanceBaseFixture
{
#region TestParameters
// TODO: Change these assets with various static assets in the Test Asset repository once that is properly set up
// But to do this we might have to separate the Test Projects out of this main repository first
// since we dont want to bloat the main repo with test assets
const string k_SmallBaseUsdPrimGUID = "7df73e3eb8d6696408938e54bb9af792";

// Import Params
static MaterialImportMode[] modes = new MaterialImportMode[] { MaterialImportMode.None, MaterialImportMode.ImportDisplayColor, MaterialImportMode.ImportPreviewSurface };
static bool[] forceReloadStates = new bool[] { true, false };

// Export Params
static BasisTransformation[] basisTransformations = new BasisTransformation[] { BasisTransformation.None, BasisTransformation.FastWithNegativeScale, BasisTransformation.SlowAndSafe, BasisTransformation.SlowAndSafeAsFBX };
static int[] childCounts = new int[] { 1, 10, 100, 1000 };
#endregion

[Performance]
[Test]
public void ImportUsdAsGameObjectImport_PerformanceTest()
{
Measure.Method(() =>
{
var scene = TestUtilityFunction.OpenUSDSceneWithGUID(k_SmallBaseUsdPrimGUID);
ImportHelpers.ImportSceneAsGameObject(scene);
scene.Close();
})
.MeasurementCount(TestRunData.MeasurementCount)
.IterationsPerMeasurement(TestRunData.IterationsPerMeasurement)
.Run();
}

[Performance]
[Test]
public void ImportUsdAsPrefab_PerformanceTest()
{
Measure.Method(() =>
{
var scene = TestUtilityFunction.OpenUSDSceneWithGUID(k_SmallBaseUsdPrimGUID);
ImportHelpers.ImportAsPrefab(scene, Path.Combine(ArtifactsDirectoryFullPath, System.Guid.NewGuid().ToString() + ".prefab"));
scene.Close();
})
.MeasurementCount(TestRunData.MeasurementCount)
.IterationsPerMeasurement(TestRunData.IterationsPerMeasurement)
.Run();
}

[Performance]
[Test]
public void ImportUsdAsTimelineClip_PerformanceTest()
{
Measure.Method(() =>
{
var scene = TestUtilityFunction.OpenUSDSceneWithGUID(k_SmallBaseUsdPrimGUID);
ImportHelpers.ImportAsTimelineClip(scene, Path.Combine(ArtifactsDirectoryFullPath, System.Guid.NewGuid().ToString() + ".prefab"));
scene.Close();
})
.MeasurementCount(TestRunData.MeasurementCount)
.IterationsPerMeasurement(TestRunData.IterationsPerMeasurement)
.Run();
}

[Performance]
[UnityTest]
[Description("Parameters: MaterialImportMode, ForceReload")]
public IEnumerator UsdGameObjectReload_PerformanceTest([ValueSource("modes")] MaterialImportMode mode, [ValueSource("forceReloadStates")] bool reload)
{
var scene = TestUtilityFunction.OpenUSDSceneWithGUID(k_SmallBaseUsdPrimGUID);
var usdAsset = ImportHelpers.ImportSceneAsGameObject(scene).GetComponent<UsdAsset>();
usdAsset.m_materialImportMode = mode;

Measure.Method(() =>
{
usdAsset.Reload(reload);
})
.MeasurementCount(TestRunData.MeasurementCount)
.IterationsPerMeasurement(TestRunData.IterationsPerMeasurement)
.Run();

scene.Close();

yield return null;
}

[Performance]
[UnityTest]
[Description("Parameters: MaterialImportMode, ForceReload")]
[Ignore("USDU-276")]
public IEnumerator UsdPrefabReload_PerformanceTest([ValueSource("modes")] MaterialImportMode mode, [ValueSource("forceReloadStates")] bool reload)
{
var scene = TestUtilityFunction.OpenUSDSceneWithGUID(k_SmallBaseUsdPrimGUID);
var prefabPath = ImportHelpers.ImportAsPrefab(scene, Path.Combine(ArtifactsDirectoryFullPath, System.Guid.NewGuid().ToString() + ".prefab"));
var prefabUsdAsset = AssetDatabase.LoadAssetAtPath<UsdAsset>(prefabPath);
prefabUsdAsset.m_materialImportMode = mode;

Measure.Method(() =>
{
prefabUsdAsset.Reload(true);
})
.MeasurementCount(TestRunData.MeasurementCount)
.IterationsPerMeasurement(TestRunData.IterationsPerMeasurement)
.Run();

scene.Close();

yield return null;
}

[Performance]
[UnityTest]
[Description("Parameters: BasisTransformation, ChildCount")]
public IEnumerator UsdGameObjectExportWithChildren_PerformanceTest([ValueSource("basisTransformations")] BasisTransformation basisTransformation, [ValueSource("childCounts")] int childCount)
{
var testGameObject = CreateExportTestGameObject(childCount);
var exportPath = TestUtilityFunction.GetUSDScenePath(ArtifactsDirectoryFullPath);

Measure.Method(() =>
{
ExportHelpers.ExportGameObjects(new GameObject[] { testGameObject }, ExportHelpers.InitForSave(exportPath), basisTransformation);
})
.MeasurementCount(TestRunData.MeasurementCount)
.IterationsPerMeasurement(TestRunData.IterationsPerMeasurement)
.Run();

GameObject.DestroyImmediate(testGameObject);

yield return null;
}

[Performance]
[UnityTest]
[Description("Parameters: ChildCount")]
public IEnumerator UsdGameObjectExportAsUsdz_PerformanceTest([ValueSource("childCounts")] int childCount)
{
var testGameObject = CreateExportTestGameObject(childCount);
var exportPath = TestUtilityFunction.GetUSDScenePath(ArtifactsDirectoryFullPath, "test.usdz");

Measure.Method(() =>
{
UsdzExporter.ExportUsdz(exportPath, testGameObject);
})
.MeasurementCount(TestRunData.MeasurementCount)
.IterationsPerMeasurement(TestRunData.IterationsPerMeasurement)
.Run();

GameObject.DestroyImmediate(testGameObject);

yield return null;
}

[Performance]
[UnityTest]
[Description("Parameters: ChildCount")]
public IEnumerator UsdGameObjectExportTransformOverrides_PerformanceTest([ValueSource("childCounts")] int childCount)
{
var exportPath = TestUtilityFunction.GetUSDScenePath(ArtifactsDirectoryFullPath, "original");
ExportHelpers.ExportGameObjects(new GameObject[] { CreateExportTestGameObject(childCount) }, ExportHelpers.InitForSave(exportPath), BasisTransformation.SlowAndSafe);

var testScene = TestUtilityFunction.OpenUSDSceneWithFullPath(exportPath);
var testGameObject = ImportHelpers.ImportSceneAsGameObject(testScene);
var overridedPath = TestUtilityFunction.GetUSDScenePath(ArtifactsDirectoryFullPath, "overrided");

Measure.Method(() =>
{
var overrides = ExportHelpers.InitForSave(overridedPath);
testGameObject.GetComponent<UsdAsset>().ExportOverrides(overrides);
})
.MeasurementCount(TestRunData.MeasurementCount)
.IterationsPerMeasurement(TestRunData.IterationsPerMeasurement)
.Run();

GameObject.DestroyImmediate(testGameObject);
testScene.Close();

yield return null;
}

private GameObject CreateExportTestGameObject(int childCount)
{
var parent = GameObject.CreatePrimitive(PrimitiveType.Sphere);
parent.name = "parent";
for (int index = 0; index < childCount; index++)
{
var child = GameObject.CreatePrimitive(PrimitiveType.Sphere);
child.name = "child";
child.transform.parent = parent.transform;
}

return parent;
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions TestProject/Usd-Performance/Assets/Performance/Data.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#usda 1.0
(
endTimeCode = 1
framesPerSecond = 24
metersPerUnit = 1
startTimeCode = 1
timeCodesPerSecond = 24
upAxis = "Y"
)

def PointInstancer "instancer"
{
int64[] invisibleIds = []
quath[] orientations = [(1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0)]
point3f[] positions = [(-0.16644895, 0.3755865, 0.3704425), (0.33355105, -0.12441349, -0.12955749), (-0.41644895, 0.12558651, -0.3795575), (0.08355105, -0.3744135, 0.12044251), (-0.29144895, -0.24941349, -0.0045574903), (0.20855105, 0.2505865, 0.4954425), (-0.04144895, -0.4994135, 0.24544251), (0.45855105, 0.0005865097, -0.2545575), (-0.47894895, -0.4369135, 0.4329425), (0.02105105, 0.06308651, -0.06705749)]
int[] protoIndices = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
rel prototypes = </instancer/Prototypes/Root>

def Scope "Prototypes"
{
def Xform "Root"
{
def Cube "cube1"
{
double size = 0.10000000149011612
matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) )
uniform token[] xformOpOrder = ["xformOp:transform"]
}
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#usda 1.0
(
endTimeCode = 1
framesPerSecond = 24
metersPerUnit = 1
startTimeCode = 1
timeCodesPerSecond = 24
upAxis = "Y"
)

def PointInstancer "instancer"
{
int64[] invisibleIds = []
quath[] orientations = [(1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0)]
point3f[] positions = [(-0.16644895, 0.3755865, 0.3704425), (0.33355105, -0.12441349, -0.12955749), (-0.41644895, 0.12558651, -0.3795575), (0.08355105, -0.3744135, 0.12044251), (-0.29144895, -0.24941349, -0.0045574903), (0.20855105, 0.2505865, 0.4954425), (-0.04144895, -0.4994135, 0.24544251), (0.45855105, 0.0005865097, -0.2545575), (-0.47894895, -0.4369135, 0.4329425), (0.02105105, 0.06308651, -0.06705749), (-0.22894895, -0.18691349, -0.3170575), (0.27105105, 0.3130865, 0.18294251), (-0.10394895, 0.18808651, -0.19205749), (0.39605105, -0.3119135, 0.3079425), (-0.35394895, 0.4380865, 0.05794251), (0.14605105, -0.06191349, -0.4420575), (-0.32269895, 0.09433651, 0.15169251), (0.17730105, -0.4056635, -0.3483075), (-0.07269895, 0.3443365, -0.09830749), (0.42730105, -0.15566349, 0.4016925), (-0.19769895, -0.2806635, -0.4733075), (0.30230105, 0.21933651, 0.02669251), (-0.44769895, -0.03066349, 0.2766925), (0.05230105, 0.4693365, -0.22330749), (-0.010198951, -0.09316349, 0.08919251), (0.48980105, 0.4068365, -0.4108075), (-0.26019895, -0.3431635, -0.16080749), (0.23980105, 0.15683651, 0.3391925), (-0.38519895, 0.2818365, -0.2858075), (0.11480105, -0.21816349, 0.21419251), (-0.13519895, 0.03183651, 0.4641925), (0.36480105, -0.4681635, -0.03580749), (-0.43207395, -0.17128849, -0.14518249), (0.06792605, 0.3287115, 0.3548175), (-0.18207395, -0.4212885, 0.10481751), (0.31792605, 0.07871151, -0.3951825), (-0.05707395, 0.4537115, 0.4798175), (0.44292605, -0.04628849, -0.02018249), (-0.30707395, 0.20371151, -0.2701825), (0.19292605, -0.2962885, 0.22981751), (-0.24457395, 0.14121151, -0.08268249), (0.25542605, -0.3587885, 0.4173175), (-0.49457395, 0.3912115, 0.16731751), (0.005426049, -0.10878849, -0.3326825), (-0.36957395, -0.4837885, 0.2923175), (0.13042605, 0.01621151, -0.20768249), (-0.11957395, -0.23378849, -0.4576825), (0.38042605, 0.2662115, 0.04231751), (-0.08832395, -0.3275385, -0.3639325), (0.41167605, 0.17246151, 0.13606751), (-0.33832395, -0.07753849, 0.3860675), (0.16167605, 0.4224615, -0.11393249), (-0.46332395, 0.04746151, 0.01106751), (0.03667605, -0.4525385, -0.4889325), (-0.21332395, 0.2974615, -0.23893249), (0.28667605, -0.20253849, 0.2610675), (-0.27582395, 0.3599615, -0.4264325), (0.22417605, -0.14003849, 0.07356751), (-0.02582395, 0.10996151, 0.3235675), (0.47417605, -0.3900385, -0.17643249), (-0.15082395, -0.01503849, 0.19856751), (0.34917605, 0.4849615, -0.3014325), (-0.40082395, -0.2650385, -0.05143249), (0.09917605, 0.23496151, 0.4485675), (-0.29926145, -0.304101, 0.06575501), (0.20073855, 0.19589901, -0.434245), (-0.04926145, -0.05410099, -0.18424499), (0.45073855, 0.445899, 0.315755), (-0.17426145, 0.07089901, -0.309245), (0.32573855, -0.429101, 0.19075501), (-0.42426145, 0.320899, 0.440755), (0.07573855, -0.17910099, -0.05924499), (-0.11176145, 0.258399, 0.12825501), (0.38823855, -0.24160099, -0.371745), (-0.36176145, 0.00839901, -0.12174499), (0.13823855, -0.491601, 0.378255), (-0.48676145, -0.11660099, -0.496745), (0.013238549, 0.383399, 0.0032550097), (-0.23676145, -0.366601, 0.253255), (0.26323855, 0.13339901, -0.24674499), (-0.20551145, -0.21035099, 0.409505), (0.29448855, 0.289649, -0.09049499), (-0.45551145, -0.460351, -0.340495), (0.04448855, 0.03964901, 0.15950501), (-0.33051145, 0.414649, -0.21549499), (0.16948855, -0.08535099, 0.284505), (-0.08051145, 0.16464901, 0.03450501), (0.41948855, -0.335351, -0.465495), (-0.39301145, 0.22714901, 0.347005), (0.10698855, -0.272851, -0.15299499), (-0.14301145, 0.477149, -0.402995), (0.35698855, -0.02285099, 0.09700501), (-0.01801145, -0.397851, -0.02799499), (0.48198855, 0.10214901, 0.472005), (-0.26801145, -0.14785099, 0.22200501), (0.23198855, 0.352149, -0.277995), (-0.03363645, 0.02402401, -0.41862), (0.46636355, -0.475976, 0.08138001), (-0.28363645, 0.274024, 0.33138), (0.21636355, -0.22597599, -0.16861999)]
int[] protoIndices = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
rel prototypes = </instancer/Prototypes/Root>

def Scope "Prototypes"
{
def Xform "Root"
{
def Cube "cube1"
{
double size = 0.10000000149011612
matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) )
uniform token[] xformOpOrder = ["xformOp:transform"]
}
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading