├── .github └── workflows │ └── deploy-github.yml ├── .gitignore ├── .gitmodules ├── Assets ├── Cube_Base_Logo.afphoto ├── GSS_Logo.afphoto ├── GSS_Logo_Title.afphoto ├── GS_Player_Icon.afphoto ├── GS_Player_Icon.png ├── GS_Stream_Icon.png └── gss_logo.png ├── Converter ├── .gitignore ├── .vscode │ └── launch.json ├── Sequence_Converter.py ├── Sequence_Converter_UI.py ├── Sequence_Metadata.py └── resources │ ├── astcenc.exe │ ├── logo.ico │ ├── logo.svg │ └── texconv.exe ├── LICENSE ├── README.md ├── Unity_Test_Project ├── .gitignore ├── .vsconfig ├── Assets │ ├── AutoSceneLoader.cs │ ├── AutoSceneLoader.cs.meta │ ├── Basic_Build_Sample.unity │ ├── Basic_Build_Sample.unity.meta │ ├── Basic_Build_Sample_PC.unity │ ├── Basic_Build_Sample_PC.unity.meta │ ├── Editor.meta │ ├── Editor │ │ ├── BumpUpPackageVersionAndCopySamples.cs │ │ └── BumpUpPackageVersionAndCopySamples.cs.meta │ ├── EmptyScene.unity │ ├── EmptyScene.unity.meta │ ├── Samples.meta │ ├── TestMat.mat │ └── TestMat.mat.meta ├── Packages │ ├── manifest.json │ └── packages-lock.json ├── ProjectSettings │ ├── AudioManager.asset │ ├── BurstAotSettings_Android.json │ ├── BurstAotSettings_StandaloneWindows.json │ ├── ClusterInputManager.asset │ ├── CommonBurstAotSettings.json │ ├── DynamicsManager.asset │ ├── EditorBuildSettings.asset │ ├── EditorSettings.asset │ ├── GraphicsSettings.asset │ ├── InputManager.asset │ ├── MemorySettings.asset │ ├── MultiplayerManager.asset │ ├── NavMeshAreas.asset │ ├── NetworkManager.asset │ ├── PackageManagerSettings.asset │ ├── Packages │ │ └── com.unity.services.core │ │ │ └── Settings.json │ ├── Physics2DSettings.asset │ ├── PresetManager.asset │ ├── ProjectSettings.asset │ ├── ProjectVersion.txt │ ├── QualitySettings.asset │ ├── SceneTemplateSettings.json │ ├── TagManager.asset │ ├── TimeManager.asset │ ├── TimelineSettings.asset │ ├── UnityAdsSettings.asset.meta │ ├── UnityConnectSettings.asset │ ├── VFXManager.asset │ └── VersionControlSettings.asset └── UserSettings │ ├── EditorUserSettings.asset │ ├── Layouts │ ├── CurrentMaximizeLayout.dwlt │ ├── default-2021.dwlt │ ├── default-2022.dwlt │ └── default-6000.dwlt │ ├── Search.index │ └── Search.settings └── docs ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .gitignore ├── .markdownlint-cli2.jsonc ├── .npmrc ├── .stylelintignore ├── .stylelintrc.json ├── assets ├── cover.png ├── favicon.ico ├── favicon.png ├── favicon.svg ├── images │ └── .gitkeep ├── js │ └── custom.js ├── jsconfig.json ├── mask-icon.svg ├── scss │ └── common │ │ ├── _custom.scss │ │ └── _variables-custom.scss └── svgs │ └── .gitkeep ├── babel.config.js ├── config ├── _default │ ├── hugo.toml │ ├── languages.toml │ ├── markup.toml │ ├── menus │ │ └── menus.en.toml │ ├── module.toml │ └── params.toml ├── next │ └── hugo.toml ├── postcss.config.js └── production │ └── hugo.toml ├── content ├── _index.md ├── docs │ ├── .vscode │ │ └── settings.json │ ├── _index.md │ ├── about │ │ ├── _index.md │ │ ├── building-volumes.md │ │ ├── changelog.md │ │ └── license-credits.md │ ├── help │ │ ├── _index.md │ │ ├── contact.md │ │ ├── issues.md │ │ └── support.png │ ├── quickstart │ │ ├── _index.md │ │ ├── own-data-usage │ │ │ ├── Converter_Start_Threads.png │ │ │ └── index.md │ │ └── quick-start │ │ │ ├── index.md │ │ │ └── package_manager_git.png │ └── tutorials │ │ ├── _index.md │ │ ├── distribution │ │ ├── create_streamingassets.png │ │ ├── index.md │ │ ├── set_persistentdata_path.png │ │ └── set_streamingassets_path.png │ │ ├── editor-playback │ │ ├── editor_playback_add_component.png │ │ ├── editor_playback_fps.png │ │ ├── editor_playback_gameobject.png │ │ ├── editor_playback_open_sequence.png │ │ ├── editor_playback_player_component.afphoto │ │ ├── editor_playback_player_component.png │ │ ├── editor_playback_stream_component.png │ │ └── index.md │ │ ├── installation │ │ ├── index.md │ │ ├── package_manager_add.png │ │ ├── package_manager_git.png │ │ └── package_manager_install_storebought.png │ │ ├── prepare-data │ │ ├── Converter_Options.png │ │ ├── Converter_SelectFolder_newfolder.png │ │ ├── Converter_SelectInput.png │ │ ├── Converter_SelectOutput.png │ │ ├── Converter_Start_Threads.png │ │ └── index.md │ │ ├── samples │ │ ├── API-Example.png │ │ ├── index.bck │ │ ├── index.md │ │ ├── package_manager_samples.png │ │ └── timeline-playback.png │ │ ├── scripting-api │ │ ├── api_disable_startloop.png │ │ ├── editor_playback_add_event.png │ │ └── index.md │ │ └── timeline-integration │ │ ├── index.md │ │ ├── timeline-newgo.png │ │ ├── timeline-open.png │ │ ├── timeline_add_Clip.png │ │ ├── timeline_add_component.png │ │ ├── timeline_adjust_duration.png │ │ ├── timeline_assign_stream.png │ │ ├── timeline_create.png │ │ ├── timeline_create_track.png │ │ └── timeline_open_sequence.png └── versions.md ├── data └── docs-versions.yml ├── functions └── hi-from-lambda.js ├── hugo_stats.json ├── i18n └── en.yaml ├── layouts ├── index.html └── partials │ ├── footer │ └── script-footer-custom.html │ └── head │ ├── custom-head.html │ └── script-header.html ├── netlify.toml ├── package-lock.json ├── package.json ├── static └── Unity_Package_OpenGraph_logo.png └── theme.toml /.github/workflows/deploy-github.yml: -------------------------------------------------------------------------------- 1 | # Deploy your Hyas site to GitHub Pages 2 | name: GitHub Pages 3 | 4 | on: 5 | # Runs on pushes targeting the default branch 6 | push: 7 | branches: 8 | - main 9 | 10 | # Allows you to run this workflow manually from the Actions tab 11 | workflow_dispatch: 12 | 13 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 14 | permissions: 15 | contents: read 16 | pages: write 17 | id-token: write 18 | 19 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 20 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 21 | concurrency: 22 | group: "pages" 23 | cancel-in-progress: false 24 | 25 | # Default to bash 26 | defaults: 27 | run: 28 | shell: bash 29 | 30 | jobs: 31 | # Build job 32 | build: 33 | runs-on: ubuntu-latest 34 | steps: 35 | - name: Checkout 36 | uses: actions/checkout@v4 37 | - name: Setup Node.js 38 | uses: actions/setup-node@v4 39 | with: 40 | node-version: '18' 41 | cache: 'npm' 42 | cache-dependency-path: './docs/package-lock.json' 43 | - name: Setup Pages 44 | id: pages 45 | uses: actions/configure-pages@v4 46 | - name: Install dependencies 47 | working-directory: ./docs 48 | run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" 49 | - name: Build production website 50 | working-directory: ./docs 51 | env: 52 | # For maximum backward compatibility with Hugo modules 53 | HUGO_ENVIRONMENT: production 54 | HUGO_ENV: production 55 | run: | 56 | npm run build \ 57 | -- \ 58 | --gc \ 59 | --minify \ 60 | --baseURL "${{ steps.pages.outputs.base_url }}/" 61 | - name: Upload artifact 62 | uses: actions/upload-pages-artifact@v3 63 | with: 64 | path: ./docs/public 65 | 66 | # Deployment job 67 | deploy: 68 | environment: 69 | name: github-pages 70 | url: ${{ steps.deployment.outputs.page_url }} 71 | runs-on: ubuntu-latest 72 | needs: build 73 | steps: 74 | - name: Deploy to GitHub Pages 75 | id: deployment 76 | uses: actions/deploy-pages@v4 77 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /More_Examples 2 | 3 | Converter/__pycache__/ 4 | Converter/.venv/ 5 | Converter/Sequence_Converter_UI.spec 6 | 7 | GSS_UnityStore 8 | GSS_Showreel 9 | GSS_Premium 10 | GSS_AVP_Testproject 11 | Unity_Test_Project/Assets/TextMesh Pro/ 12 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Geometry_Sequence_Player_Package"] 2 | path = Geometry_Sequence_Player_Package 3 | url = https://github.com/BuildingVolumes/Geometry_Sequence_Player_Package.git 4 | update = merge 5 | -------------------------------------------------------------------------------- /Assets/Cube_Base_Logo.afphoto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Assets/Cube_Base_Logo.afphoto -------------------------------------------------------------------------------- /Assets/GSS_Logo.afphoto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Assets/GSS_Logo.afphoto -------------------------------------------------------------------------------- /Assets/GSS_Logo_Title.afphoto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Assets/GSS_Logo_Title.afphoto -------------------------------------------------------------------------------- /Assets/GS_Player_Icon.afphoto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Assets/GS_Player_Icon.afphoto -------------------------------------------------------------------------------- /Assets/GS_Player_Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Assets/GS_Player_Icon.png -------------------------------------------------------------------------------- /Assets/GS_Stream_Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Assets/GS_Stream_Icon.png -------------------------------------------------------------------------------- /Assets/gss_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Assets/gss_logo.png -------------------------------------------------------------------------------- /Converter/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | dist/ 3 | resources/config.ini 4 | 5 | Geometry_Sequence_Converter_Win64.zip 6 | GeometrySequenceConverter.exe 7 | GeometrySequenceConverter.spec -------------------------------------------------------------------------------- /Converter/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | {"name":"Python Debugger: Current File","type":"debugpy","request":"launch","program":"${file}","console":"integratedTerminal"}, 8 | { 9 | "name": "Sequence Converter Debug", 10 | "type": "debugpy", 11 | "request": "launch", 12 | "program": "${workspaceFolder}/Sequence_Converter_UI.py", 13 | "console": "integratedTerminal" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /Converter/Sequence_Metadata.py: -------------------------------------------------------------------------------- 1 | from enum import IntEnum 2 | import json 3 | from threading import Lock 4 | 5 | class GeometryType(IntEnum): 6 | point = 0 7 | mesh = 1 8 | texturedMesh = 2 9 | 10 | class TextureMode(IntEnum): 11 | none = 0 12 | single = 1 13 | perFrame = 2 14 | 15 | class MetaData(): 16 | geometryType = GeometryType.point 17 | textureMode = TextureMode.none 18 | DDS = False 19 | ASTC = False 20 | hasUVs = False 21 | maxVertexCount = 0 22 | maxIndiceCount = 0 23 | maxBounds = [0,0,0,0,0,0] 24 | textureWidth = 0 25 | textureHeight = 0 26 | textureSizeDDS = 0 27 | textureSizeASTC = 0 28 | headerSizes = [] 29 | verticeCounts = [] 30 | indiceCounts = [] 31 | 32 | #Ensure that this class can be called from multiple threads 33 | metaDataLock = Lock() 34 | 35 | def get_as_dict(self): 36 | 37 | asDict = { 38 | "geometryType" : int(self.geometryType), 39 | "textureMode" : int(self.textureMode), 40 | "DDS" : self.DDS, 41 | "ASTC" : self.ASTC, 42 | "hasUVs" : self.hasUVs, 43 | "maxVertexCount": self.maxVertexCount, 44 | "maxIndiceCount" : self.maxIndiceCount, 45 | "maxBounds" : self.maxBounds, 46 | "textureWidth" : self.textureWidth, 47 | "textureHeight" : self.textureHeight, 48 | "textureSizeDDS" : self.textureSizeDDS, 49 | "textureSizeASTC" : self.textureSizeASTC, 50 | "headerSizes" : self.headerSizes, 51 | "verticeCounts" : self.verticeCounts, 52 | "indiceCounts" : self.indiceCounts, 53 | } 54 | 55 | return asDict 56 | 57 | def set_metadata_Model(self, vertexCount, indiceCount, headerSize, bounds, geometryType, hasUV, listIndex): 58 | 59 | self.metaDataLock.acquire() 60 | 61 | self.geometryType = geometryType 62 | self.hasUVs = hasUV 63 | 64 | if(vertexCount > self.maxVertexCount): 65 | self.maxVertexCount = vertexCount 66 | 67 | if(indiceCount > self.maxIndiceCount): 68 | self.maxIndiceCount = indiceCount 69 | 70 | for maxBound in range(3): 71 | if self.maxBounds[maxBound] < bounds.max()[maxBound]: 72 | self.maxBounds[maxBound] = bounds.max()[maxBound] 73 | 74 | for minBound in range(3): 75 | if self.maxBounds[minBound + 3] > bounds.min()[minBound]: 76 | self.maxBounds[minBound + 3] = bounds.min()[minBound] 77 | 78 | self.headerSizes[listIndex] = headerSize 79 | self.verticeCounts[listIndex] = vertexCount 80 | self.indiceCounts[listIndex] = indiceCount 81 | 82 | self.metaDataLock.release() 83 | 84 | def set_metadata_texture(self, DDS, ASTC, width, height, sizeDDS, sizeASTC, textureMode): 85 | 86 | self.metaDataLock.acquire() 87 | 88 | if(height > self.textureHeight): 89 | self.textureHeight = height 90 | 91 | if(width > self.textureWidth): 92 | self.textureWidth = width 93 | 94 | if(sizeDDS > self.textureSizeDDS): 95 | self.textureSizeDDS = sizeDDS 96 | 97 | if(sizeASTC > self.textureSizeASTC): 98 | self.textureSizeASTC = sizeASTC 99 | 100 | self.textureMode = textureMode 101 | self.DDS = DDS 102 | self.ASTC = ASTC 103 | 104 | self.metaDataLock.release() 105 | 106 | def write_metaData(self, outputDir): 107 | 108 | self.metaDataLock.acquire() 109 | 110 | outputPath = outputDir + "/sequence.json" 111 | content = self.get_as_dict() 112 | with open(outputPath, 'w') as f: 113 | json.dump(content, f) 114 | 115 | self.metaDataLock.release() 116 | -------------------------------------------------------------------------------- /Converter/resources/astcenc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Converter/resources/astcenc.exe -------------------------------------------------------------------------------- /Converter/resources/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Converter/resources/logo.ico -------------------------------------------------------------------------------- /Converter/resources/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Converter/resources/texconv.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Converter/resources/texconv.exe -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Geometry Sequence Player © 2025 by Christopher Remde is licensed under Creative Commons Attribution-NonCommercial 4.0 International. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc/4.0/ 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![gss_logo](https://github.com/user-attachments/assets/d368380c-f32a-46a7-bba1-fd878da432ae) 2 | 3 | --- 4 | 5 | ### A package for Unity to efficiently playback large pointcloud and (textured) mesh sequences 6 | 7 | [![Geometry Sequence Player Trailer](https://github.com/user-attachments/assets/502183ce-d2ac-40d2-9211-60332fd4551b)](https://www.youtube.com/watch?v=5HA_HwtjIu0) 8 | 9 | 10 | ### [Quickstart](https://buildingvolumes.github.io/Unity_Geometry_Sequence_Player/docs/quickstart/quick-start/) | [Documentation](https://buildingvolumes.github.io/Unity_Geometry_Sequence_Player/) | [Unity Asset Store](https://u3d.as/3suF) | [Unity Forums Thread](https://discussions.unity.com/t/released-geometry-sequence-player/921802) | [License](#license) 11 | 12 | ## Overview: 13 | 14 | This package for the Unity game engine allows you to playback large and complex geometric sequences. In a geometry sequence, each frame consists out of an individual mesh or pointcloud, which is then shown at short intervalls to create the illusion of a animation, kind of like a 3D flipbook. The package was orginally developed to allow playback of Volumetric Video captures, but can also be used to play any animated 3D-sequences, that are unsuitable for bone or blendshape workflows, like for example... 15 | 16 | ## Usecases: 17 | 18 | Pointclouds | Meshes | Textured Meshes 19 | :-------------------------:|:-------------------------:|:-------------------------: 20 | ![](https://github.com/user-attachments/assets/c2bcbd1d-a257-4c83-b020-54709dc75ba2) | ![](https://github.com/user-attachments/assets/fc6293ff-12d5-4a01-9e5b-32949e379b54) | ![](https://github.com/user-attachments/assets/944992ae-b5a5-4734-bed7-aff7098eafc3) 21 | 22 | 23 | 24 | - 🌊 Pre-Rendered fluid caches 25 | - ⛓️‍💥 Baked Physiscs simulations 26 | - 🟧 Animated Procedural meshes 27 | - 🙋‍♀️ 4D scans with per frame textures 28 | - 🎞️ Volumetric videos 29 | - 📷 Pointclouds captured by RGBD sensors (Kinect, Realsense, Lidar) 30 | - 🌐 Data visualisations 31 | 32 | 33 | ## Install & Usage: 34 | 35 | Please see the [documentation website](https://buildingvolumes.github.io/Unity_Geometry_Sequence_Player/docs/quickstart/quick-start/) on how to get started! 36 | 37 | If you encounter any problems or have questions, please open an issue or visit the [Unity Forums Thread](https://forum.unity.com/threads/released-geometry-sequence-streaming.1453765/) 38 | 39 | ## License: 40 | 41 | With Version 1.1.0 of the package, we changed our license model from MIT license to the **Creative Commons By-Attribution Non-Commercial license**. To use the package in a commercial setting, or if you want to support the development, you can [buy a copy on the Unity Asset Store](https://u3d.as/3suF). This allows us to develop this plugin more sustainably and helps to improve the package for the whole community. Thank you very much for your support! 42 | 43 |

Geometry Sequence Player is licensed under CC BY-NC 4.0

44 | -------------------------------------------------------------------------------- /Unity_Test_Project/.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Mm]emoryCaptures/ 12 | /More_Examples/ 13 | /Assets/Samples/ 14 | /Assets/StreamingAssets/ 15 | 16 | # Asset meta data should only be ignored when the corresponding asset is also ignored 17 | !/[Aa]ssets/**/*.meta 18 | 19 | # Uncomment this line if you wish to ignore the asset store tools plugin 20 | # /[Aa]ssets/AssetStoreTools* 21 | 22 | # Autogenerated Jetbrains Rider plugin 23 | [Aa]ssets/Plugins/Editor/JetBrains* 24 | 25 | # Visual Studio cache directory 26 | .vs/ 27 | 28 | # Gradle cache directory 29 | .gradle/ 30 | 31 | # Autogenerated VS/MD/Consulo solution and project files 32 | ExportedObj/ 33 | .consulo/ 34 | *.csproj 35 | *.unityproj 36 | *.sln 37 | *.suo 38 | *.tmp 39 | *.user 40 | *.userprefs 41 | *.pidb 42 | *.booproj 43 | *.svd 44 | *.pdb 45 | *.mdb 46 | *.opendb 47 | *.VC.db 48 | 49 | # Unity3D generated meta files 50 | *.pidb.meta 51 | *.pdb.meta 52 | *.mdb.meta 53 | 54 | # Unity3D generated file on crash reports 55 | sysinfo.txt 56 | 57 | # Builds 58 | *.apk 59 | *.unitypackage 60 | 61 | # Crashlytics generated file 62 | crashlytics-build.properties 63 | 64 | -------------------------------------------------------------------------------- /Unity_Test_Project/.vsconfig: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "components": [ 4 | "Microsoft.VisualStudio.Workload.ManagedGame" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/AutoSceneLoader.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.SceneManagement; 5 | 6 | public class Scripts : MonoBehaviour 7 | { 8 | public List sceneNames = new List(); 9 | 10 | public float switchintervallSeconds = 10; 11 | float lastSwitchTimeSeconds = 0; 12 | int sceneIndex; 13 | 14 | // Start is called before the first frame update 15 | void Start() 16 | { 17 | DontDestroyOnLoad(gameObject); 18 | lastSwitchTimeSeconds = Time.time; 19 | } 20 | 21 | // Update is called once per frame 22 | void Update() 23 | { 24 | if(sceneNames.Count > 1) 25 | { 26 | if(Time.time - lastSwitchTimeSeconds > switchintervallSeconds) 27 | { 28 | lastSwitchTimeSeconds = Time.time; 29 | sceneIndex++; 30 | 31 | if (sceneIndex >= sceneNames.Count) 32 | sceneIndex = 0; 33 | 34 | SceneManager.LoadScene(sceneNames[sceneIndex]); 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/AutoSceneLoader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5937057fd2f8aaa43be458565b6cd752 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/Basic_Build_Sample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0f7e2a31852a6c419bc77cc899ee22f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/Basic_Build_Sample_PC.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b09899ec332ee04eb46e280d0d6db69 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 447c18cd97f87c74382059ba0b65b76b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/Editor/BumpUpPackageVersionAndCopySamples.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using UnityEditor; 3 | using UnityEngine; 4 | using Newtonsoft.Json.Linq; 5 | using System; 6 | using BuildingVolumes.Player; 7 | using UnityEngine.Playables; 8 | using UnityEngine.Timeline; 9 | using System.Collections.Generic; 10 | using UnityEditor.SceneManagement; 11 | using GluonGui.WorkspaceWindow.Views.WorkspaceExplorer.Explorer; 12 | 13 | public class BumpUpPackageVersionAndCopySamples : EditorWindow 14 | { 15 | string pathToPackage = "C:\\Dev\\Volcapture\\Unity_Geometry_Sequence_Player\\Geometry_Sequence_Player_Package"; 16 | string relativePathToPackageSamples = "Samples~\\SequenceSamples\\"; 17 | string pathToSamplesRootFolder = "Samples\\Geometry Sequence Player\\"; 18 | string relativePathToStreamSamples = "\\Sequence Samples\\"; 19 | string pathToSamplesFolder = ""; 20 | string pathToNewSamplesFolder = ""; 21 | 22 | string pathToPackageJSON = ""; 23 | string pathToSamplesPackageFolder = ""; 24 | 25 | string currentVersion = ""; 26 | string packageJSONContent; 27 | int newMajor; 28 | int newMinor; 29 | int newPatch; 30 | 31 | static bool pathValid = false; 32 | 33 | [MenuItem("UGGS Package/Increment package version and copy samples")] 34 | static void Init() 35 | { 36 | BumpUpPackageVersionAndCopySamples window = GetWindow(); 37 | 38 | window.titleContent = new GUIContent("Change package versioning"); 39 | window.ShowPopup(); 40 | 41 | if (!pathValid) 42 | window.Close(); 43 | } 44 | 45 | private void CreateGUI() 46 | { 47 | pathToPackageJSON = Path.Combine(pathToPackage, "package.json"); 48 | pathToSamplesPackageFolder = Path.Combine(pathToPackage, relativePathToPackageSamples); 49 | 50 | if (!Directory.Exists(pathToPackage) || !File.Exists(pathToPackageJSON)) 51 | { 52 | EditorUtility.DisplayDialog("Path invalid!", "Path to package not found! Please change path in script", "Ok"); 53 | pathValid = false; 54 | } 55 | 56 | else 57 | { 58 | GetCurrentPackageVersion(); 59 | pathValid = true; 60 | } 61 | } 62 | 63 | void OnGUI() 64 | { 65 | GUILayout.Space(20); 66 | EditorGUILayout.LabelField("Current package version is: " + currentVersion, EditorStyles.wordWrappedLabel); 67 | GUILayout.Space(20); 68 | EditorGUILayout.LabelField("Change version to:", EditorStyles.wordWrappedLabel); 69 | GUILayout.BeginHorizontal(); 70 | newMajor = EditorGUILayout.IntField(newMajor); 71 | newMinor = EditorGUILayout.IntField(newMinor); 72 | newPatch = EditorGUILayout.IntField(newPatch); 73 | GUILayout.EndHorizontal(); 74 | 75 | string newVersion = newMajor + "." + newMinor + "." + newPatch; 76 | 77 | pathToSamplesFolder = pathToSamplesRootFolder + currentVersion + relativePathToStreamSamples; 78 | pathToNewSamplesFolder = "Assets\\" + pathToSamplesRootFolder + newVersion + relativePathToStreamSamples; 79 | 80 | if (GUILayout.Button("Change Version and copy samples")) 81 | { 82 | UpdatePackageJSONAndSave(pathToPackageJSON, packageJSONContent, newVersion); 83 | UpdateSamples(currentVersion, newVersion); 84 | CopySamples(pathToNewSamplesFolder, pathToSamplesPackageFolder); 85 | GetCurrentPackageVersion(); 86 | EditorUtility.SetDirty(this); 87 | } 88 | 89 | if (GUILayout.Button("Just copy samples")) 90 | { 91 | CopySamples(pathToNewSamplesFolder, pathToSamplesPackageFolder); 92 | GetCurrentPackageVersion(); 93 | EditorUtility.SetDirty(this); 94 | } 95 | 96 | } 97 | 98 | void GetCurrentPackageVersion() 99 | { 100 | packageJSONContent = File.ReadAllText(pathToPackageJSON); 101 | 102 | JObject o = JObject.Parse(packageJSONContent); 103 | 104 | JToken version = o.GetValue("version"); 105 | currentVersion = version.Value(); 106 | string[] versionValues = currentVersion.Split('.'); 107 | int major = Int32.Parse(versionValues[0]); 108 | int minor = Int32.Parse(versionValues[1]); 109 | int patch = Int32.Parse(versionValues[2]); 110 | 111 | newMajor = major; 112 | newMinor = minor; 113 | newPatch = patch; 114 | } 115 | 116 | void UpdatePackageJSONAndSave(string pathToJson, string jsonContent, string newVersion) 117 | { 118 | JObject obj = JObject.Parse(jsonContent); 119 | obj["version"] = newVersion; 120 | 121 | try 122 | { 123 | File.WriteAllText(pathToJson, obj.ToString()); 124 | } 125 | 126 | catch 127 | { 128 | Debug.LogError("Could not update package JSON!"); 129 | return; 130 | } 131 | 132 | Debug.Log("Changed JSON package version to " + newVersion); 133 | 134 | } 135 | 136 | void UpdateSamples(string currentVersion, string newVersion) 137 | { 138 | string pathToBasicSceneMesh = pathToSamplesFolder + "01_Basic_Example.unity"; 139 | string pathToBasicScenePC = pathToSamplesFolder + "02_Pointcloud_Example.unity"; 140 | string pathToTimelineScene = pathToSamplesFolder + "03_Timeline_Example.unity"; 141 | string pathToAPIScene = pathToSamplesFolder + "04_API_Example.unity"; 142 | 143 | string pathToNewSampleDataMesh = pathToSamplesRootFolder + newVersion + relativePathToStreamSamples + "ExampleData\\TexturedMesh_Sequence_Sample"; 144 | string pathToNewSampleDataPC = pathToSamplesRootFolder + newVersion + relativePathToStreamSamples+ "ExampleData\\Pointcloud_Sequence_Sample"; 145 | 146 | UpdateBasicSample(pathToBasicSceneMesh, pathToNewSampleDataMesh); 147 | UpdateBasicSample(pathToBasicScenePC, pathToNewSampleDataPC); 148 | UpdateTimelineSample(pathToTimelineScene, pathToNewSampleDataMesh); 149 | UpdateAPISample(pathToAPIScene, pathToNewSampleDataMesh); 150 | RenameSamplePath("Assets\\" + pathToSamplesRootFolder + currentVersion, "Assets\\" + pathToSamplesRootFolder + newVersion); 151 | } 152 | 153 | bool UpdateBasicSample(string pathToScene, string pathToNewSampleData) 154 | { 155 | //Basic Sample 156 | try 157 | { 158 | EditorSceneManager.OpenScene(pathToScene, OpenSceneMode.Single); 159 | } 160 | 161 | catch 162 | { 163 | Debug.LogError("Could not load basic sample mesh scene!"); 164 | return false; 165 | } 166 | 167 | GeometrySequencePlayer player = (GeometrySequencePlayer)FindFirstObjectByType(); 168 | if (player.GetRelativeSequencePath() == null) 169 | { 170 | Debug.LogError("Could not finde path in basic sample mesh!"); 171 | return false; 172 | } 173 | 174 | player.SetPath(pathToNewSampleData, GeometrySequenceStream.PathType.RelativeToDataPath); 175 | EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene()); 176 | return true; 177 | } 178 | 179 | bool UpdateTimelineSample(string pathToScene, string pathToNewSampleData) 180 | { 181 | //Timeline Sample 182 | try 183 | { 184 | EditorSceneManager.OpenScene(pathToScene, OpenSceneMode.Single); 185 | } 186 | 187 | catch 188 | { 189 | Debug.LogError("Could not load timeline sample scene!"); 190 | return false; 191 | } 192 | 193 | 194 | PlayableDirector director = (PlayableDirector)FindFirstObjectByType(); 195 | PlayableAsset playable = director.playableAsset; 196 | TimelineAsset timeline = (TimelineAsset)playable; 197 | IEnumerable clips = timeline.GetRootTrack(1).GetClips(); 198 | 199 | 200 | 201 | foreach (TimelineClip clip in clips) 202 | { 203 | 204 | GeometrySequenceClip geoClip = (GeometrySequenceClip)clip.asset; 205 | 206 | if (geoClip.relativePath == null) 207 | { 208 | Debug.LogError("Could not finde path in timeline Sample!"); 209 | return false; 210 | } 211 | 212 | geoClip.relativePath = pathToNewSampleData; 213 | 214 | } 215 | 216 | EditorUtility.SetDirty(timeline); 217 | EditorUtility.SetDirty(playable); 218 | AssetDatabase.SaveAssets(); 219 | EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene()); 220 | return true; 221 | } 222 | 223 | bool UpdateAPISample(string pathToScene, string pathToNewSampleData) 224 | { 225 | //API Sample 226 | try 227 | { 228 | EditorSceneManager.OpenScene(pathToScene, OpenSceneMode.Single); 229 | } 230 | 231 | catch 232 | { 233 | Debug.LogError("Could not load API sample scene!"); 234 | return false; 235 | } 236 | 237 | GeometrySequenceAPIExample api = (GeometrySequenceAPIExample)FindFirstObjectByType(); 238 | if (api.sequencePath == null) 239 | { 240 | Debug.LogError("Could not find path in API Sample!"); 241 | return false; 242 | } 243 | 244 | api.sequencePath = pathToNewSampleData; 245 | EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene()); 246 | return true; 247 | } 248 | 249 | bool RenameSamplePath(string oldpath, string newpath) 250 | { 251 | if (Directory.Exists(oldpath)) 252 | { 253 | if (oldpath == newpath) 254 | return true; 255 | 256 | string error = AssetDatabase.MoveAsset(oldpath, newpath); 257 | 258 | if (error != "") 259 | { 260 | Debug.LogError("Could not rename sample directory: " + error + " Maybe you need to close Visual Studio?"); 261 | return false; 262 | } 263 | 264 | } 265 | 266 | else 267 | { 268 | Debug.LogError("Sample directory does not exist"); 269 | return false; 270 | } 271 | 272 | return true; 273 | } 274 | 275 | void CopySamples(string pathToAssetSamples, string pathToPackageSampleFolder) 276 | { 277 | string emptyScene = "Assets\\EmptyScene.unity"; 278 | EditorSceneManager.OpenScene(emptyScene, OpenSceneMode.Single); 279 | 280 | if (!Directory.Exists(pathToAssetSamples) || !Directory.Exists(pathToPackageSampleFolder)) 281 | { 282 | Debug.LogError("Could not find " + pathToAssetSamples + " or " + pathToPackageSampleFolder); 283 | return; 284 | } 285 | 286 | try 287 | { 288 | CopyDirectory(pathToAssetSamples, pathToPackageSampleFolder, true); 289 | } 290 | 291 | catch (Exception e) 292 | { 293 | Debug.LogError(e.ToString()); 294 | } 295 | } 296 | 297 | static void CopyDirectory(string sourceDir, string destinationDir, bool recursive) 298 | { 299 | Debug.Log("Copying from: " + sourceDir + " to " + destinationDir); 300 | // Get information about the source directory 301 | var dir = new DirectoryInfo(sourceDir); 302 | 303 | // Cache directories before we start copying 304 | DirectoryInfo[] dirs = dir.GetDirectories(); 305 | 306 | //Delete the files in the destination directory 307 | if (Directory.Exists(destinationDir)) 308 | { 309 | foreach (string filePath in Directory.GetFiles(destinationDir)) 310 | { 311 | File.Delete(filePath); 312 | } 313 | } 314 | 315 | // Create the destination directory 316 | DirectoryInfo info = Directory.CreateDirectory(destinationDir); 317 | 318 | // Get the files in the source directory and copy to the destination directory 319 | foreach (FileInfo file in dir.GetFiles()) 320 | { 321 | string targetFilePath = Path.Combine(destinationDir, file.Name); 322 | file.CopyTo(targetFilePath, true); 323 | } 324 | 325 | // If recursive and copying subdirectories, recursively call this method 326 | if (recursive) 327 | { 328 | foreach (DirectoryInfo subDir in dirs) 329 | { 330 | string newDestinationDir = Path.Combine(destinationDir, subDir.Name); 331 | CopyDirectory(subDir.FullName, newDestinationDir, true); 332 | } 333 | } 334 | } 335 | } -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/Editor/BumpUpPackageVersionAndCopySamples.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 145d32b505f694e42a0c3fa9037b170c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/EmptyScene.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_UseRadianceAmbientProbe: 0 42 | --- !u!157 &3 43 | LightmapSettings: 44 | m_ObjectHideFlags: 0 45 | serializedVersion: 12 46 | m_GIWorkflowMode: 1 47 | m_GISettings: 48 | serializedVersion: 2 49 | m_BounceScale: 1 50 | m_IndirectOutputScale: 1 51 | m_AlbedoBoost: 1 52 | m_EnvironmentLightingMode: 0 53 | m_EnableBakedLightmaps: 1 54 | m_EnableRealtimeLightmaps: 0 55 | m_LightmapEditorSettings: 56 | serializedVersion: 12 57 | m_Resolution: 2 58 | m_BakeResolution: 40 59 | m_AtlasSize: 1024 60 | m_AO: 0 61 | m_AOMaxDistance: 1 62 | m_CompAOExponent: 1 63 | m_CompAOExponentDirect: 0 64 | m_ExtractAmbientOcclusion: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_FinalGather: 0 70 | m_FinalGatherFiltering: 1 71 | m_FinalGatherRayCount: 256 72 | m_ReflectionCompression: 2 73 | m_MixedBakeMode: 2 74 | m_BakeBackend: 1 75 | m_PVRSampling: 1 76 | m_PVRDirectSampleCount: 32 77 | m_PVRSampleCount: 512 78 | m_PVRBounces: 2 79 | m_PVREnvironmentSampleCount: 256 80 | m_PVREnvironmentReferencePointCount: 2048 81 | m_PVRFilteringMode: 1 82 | m_PVRDenoiserTypeDirect: 1 83 | m_PVRDenoiserTypeIndirect: 1 84 | m_PVRDenoiserTypeAO: 1 85 | m_PVRFilterTypeDirect: 0 86 | m_PVRFilterTypeIndirect: 0 87 | m_PVRFilterTypeAO: 0 88 | m_PVREnvironmentMIS: 1 89 | m_PVRCulling: 1 90 | m_PVRFilteringGaussRadiusDirect: 1 91 | m_PVRFilteringGaussRadiusIndirect: 5 92 | m_PVRFilteringGaussRadiusAO: 2 93 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 94 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 95 | m_PVRFilteringAtrousPositionSigmaAO: 1 96 | m_ExportTrainingData: 0 97 | m_TrainingDataDestination: TrainingData 98 | m_LightProbeSampleCountMultiplier: 4 99 | m_LightingDataAsset: {fileID: 0} 100 | m_LightingSettings: {fileID: 0} 101 | --- !u!196 &4 102 | NavMeshSettings: 103 | serializedVersion: 2 104 | m_ObjectHideFlags: 0 105 | m_BuildSettings: 106 | serializedVersion: 3 107 | agentTypeID: 0 108 | agentRadius: 0.5 109 | agentHeight: 2 110 | agentSlope: 45 111 | agentClimb: 0.4 112 | ledgeDropHeight: 0 113 | maxJumpAcrossDistance: 0 114 | minRegionArea: 2 115 | manualCellSize: 0 116 | cellSize: 0.16666667 117 | manualTileSize: 0 118 | tileSize: 256 119 | buildHeightMesh: 0 120 | maxJobWorkers: 0 121 | preserveTilesOutsideBounds: 0 122 | debug: 123 | m_Flags: 0 124 | m_NavMeshData: {fileID: 0} 125 | --- !u!1660057539 &9223372036854775807 126 | SceneRoots: 127 | m_ObjectHideFlags: 0 128 | m_Roots: [] 129 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/EmptyScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb7e016567e2b0247a0b8b1b705f4f98 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/Samples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16ba52299798fc945beb1aa12e5f3a1f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/TestMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: TestMat 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: [] 15 | m_InvalidKeywords: [] 16 | m_LightmapFlags: 4 17 | m_EnableInstancingVariants: 0 18 | m_DoubleSidedGI: 0 19 | m_CustomRenderQueue: -1 20 | stringTagMap: {} 21 | disabledShaderPasses: [] 22 | m_LockedProperties: 23 | m_SavedProperties: 24 | serializedVersion: 3 25 | m_TexEnvs: 26 | - _BumpMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailAlbedoMap: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailMask: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailNormalMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _EmissionMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MainTex: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _MetallicGlossMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _OcclusionMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _ParallaxMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | m_Ints: [] 63 | m_Floats: 64 | - _BumpScale: 1 65 | - _Cutoff: 0.5 66 | - _DetailNormalMapScale: 1 67 | - _DstBlend: 0 68 | - _GlossMapScale: 1 69 | - _Glossiness: 0.5 70 | - _GlossyReflections: 1 71 | - _Metallic: 0 72 | - _Mode: 0 73 | - _OcclusionStrength: 1 74 | - _Parallax: 0.02 75 | - _SmoothnessTextureChannel: 0 76 | - _SpecularHighlights: 1 77 | - _SrcBlend: 1 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 1, g: 1, b: 1, a: 1} 82 | - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} 83 | m_BuildTextureStacks: [] 84 | m_AllowLocking: 1 85 | -------------------------------------------------------------------------------- /Unity_Test_Project/Assets/TestMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d1ac463ce858e145a81c6386bac5acc 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity_Test_Project/Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.buildingvolumes.geometry_sequence_player": "file:C:/Dev/Volcapture/Unity_Geometry_Sequence_Player/Geometry_Sequence_Player_Package", 4 | "com.unity.ai.navigation": "2.0.7", 5 | "com.unity.analytics": "3.8.1", 6 | "com.unity.collab-proxy": "2.7.1", 7 | "com.unity.ide.visualstudio": "2.0.23", 8 | "com.unity.jobs": "0.70.0-preview.7", 9 | "com.unity.memoryprofiler": "1.1.6", 10 | "com.unity.multiplayer.center": "1.0.0", 11 | "com.unity.nuget.newtonsoft-json": "3.2.1", 12 | "com.unity.test-framework": "1.5.1", 13 | "com.unity.timeline": "1.8.7", 14 | "com.unity.ugui": "2.0.0", 15 | "com.unity.xr.legacyinputhelpers": "2.1.12", 16 | "com.unity.modules.accessibility": "1.0.0", 17 | "com.unity.modules.ai": "1.0.0", 18 | "com.unity.modules.androidjni": "1.0.0", 19 | "com.unity.modules.animation": "1.0.0", 20 | "com.unity.modules.assetbundle": "1.0.0", 21 | "com.unity.modules.audio": "1.0.0", 22 | "com.unity.modules.cloth": "1.0.0", 23 | "com.unity.modules.director": "1.0.0", 24 | "com.unity.modules.imageconversion": "1.0.0", 25 | "com.unity.modules.imgui": "1.0.0", 26 | "com.unity.modules.jsonserialize": "1.0.0", 27 | "com.unity.modules.particlesystem": "1.0.0", 28 | "com.unity.modules.physics": "1.0.0", 29 | "com.unity.modules.physics2d": "1.0.0", 30 | "com.unity.modules.screencapture": "1.0.0", 31 | "com.unity.modules.terrain": "1.0.0", 32 | "com.unity.modules.terrainphysics": "1.0.0", 33 | "com.unity.modules.tilemap": "1.0.0", 34 | "com.unity.modules.ui": "1.0.0", 35 | "com.unity.modules.uielements": "1.0.0", 36 | "com.unity.modules.umbra": "1.0.0", 37 | "com.unity.modules.unityanalytics": "1.0.0", 38 | "com.unity.modules.unitywebrequest": "1.0.0", 39 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 40 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 41 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 42 | "com.unity.modules.unitywebrequestwww": "1.0.0", 43 | "com.unity.modules.vehicles": "1.0.0", 44 | "com.unity.modules.video": "1.0.0", 45 | "com.unity.modules.vr": "1.0.0", 46 | "com.unity.modules.wind": "1.0.0", 47 | "com.unity.modules.xr": "1.0.0" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Unity_Test_Project/Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.buildingvolumes.geometry_sequence_player": { 4 | "version": "file:C:/Dev/Volcapture/Unity_Geometry_Sequence_Player/Geometry_Sequence_Player_Package", 5 | "depth": 0, 6 | "source": "local", 7 | "dependencies": { 8 | "com.unity.jobs": "0.70.0-preview.7", 9 | "com.unity.timeline": "1.6.4" 10 | } 11 | }, 12 | "com.unity.ai.navigation": { 13 | "version": "2.0.7", 14 | "depth": 0, 15 | "source": "registry", 16 | "dependencies": { 17 | "com.unity.modules.ai": "1.0.0" 18 | }, 19 | "url": "https://packages.unity.com" 20 | }, 21 | "com.unity.analytics": { 22 | "version": "3.8.1", 23 | "depth": 0, 24 | "source": "registry", 25 | "dependencies": { 26 | "com.unity.ugui": "1.0.0", 27 | "com.unity.services.analytics": "1.0.4" 28 | }, 29 | "url": "https://packages.unity.com" 30 | }, 31 | "com.unity.burst": { 32 | "version": "1.8.21", 33 | "depth": 1, 34 | "source": "registry", 35 | "dependencies": { 36 | "com.unity.mathematics": "1.2.1", 37 | "com.unity.modules.jsonserialize": "1.0.0" 38 | }, 39 | "url": "https://packages.unity.com" 40 | }, 41 | "com.unity.collab-proxy": { 42 | "version": "2.7.1", 43 | "depth": 0, 44 | "source": "registry", 45 | "dependencies": {}, 46 | "url": "https://packages.unity.com" 47 | }, 48 | "com.unity.collections": { 49 | "version": "2.5.1", 50 | "depth": 1, 51 | "source": "registry", 52 | "dependencies": { 53 | "com.unity.burst": "1.8.17", 54 | "com.unity.test-framework": "1.4.5", 55 | "com.unity.nuget.mono-cecil": "1.11.4", 56 | "com.unity.test-framework.performance": "3.0.3" 57 | }, 58 | "url": "https://packages.unity.com" 59 | }, 60 | "com.unity.editorcoroutines": { 61 | "version": "1.0.0", 62 | "depth": 1, 63 | "source": "registry", 64 | "dependencies": {}, 65 | "url": "https://packages.unity.com" 66 | }, 67 | "com.unity.ext.nunit": { 68 | "version": "2.0.5", 69 | "depth": 1, 70 | "source": "builtin", 71 | "dependencies": {} 72 | }, 73 | "com.unity.ide.visualstudio": { 74 | "version": "2.0.23", 75 | "depth": 0, 76 | "source": "registry", 77 | "dependencies": { 78 | "com.unity.test-framework": "1.1.9" 79 | }, 80 | "url": "https://packages.unity.com" 81 | }, 82 | "com.unity.jobs": { 83 | "version": "0.70.0-preview.7", 84 | "depth": 0, 85 | "source": "registry", 86 | "dependencies": { 87 | "com.unity.collections": "1.4.0" 88 | }, 89 | "url": "https://packages.unity.com" 90 | }, 91 | "com.unity.mathematics": { 92 | "version": "1.3.2", 93 | "depth": 1, 94 | "source": "registry", 95 | "dependencies": {}, 96 | "url": "https://packages.unity.com" 97 | }, 98 | "com.unity.memoryprofiler": { 99 | "version": "1.1.6", 100 | "depth": 0, 101 | "source": "registry", 102 | "dependencies": { 103 | "com.unity.burst": "1.8.0", 104 | "com.unity.collections": "1.2.3", 105 | "com.unity.mathematics": "1.2.1", 106 | "com.unity.profiling.core": "1.0.0", 107 | "com.unity.editorcoroutines": "1.0.0" 108 | }, 109 | "url": "https://packages.unity.com" 110 | }, 111 | "com.unity.multiplayer.center": { 112 | "version": "1.0.0", 113 | "depth": 0, 114 | "source": "builtin", 115 | "dependencies": { 116 | "com.unity.modules.uielements": "1.0.0" 117 | } 118 | }, 119 | "com.unity.nuget.mono-cecil": { 120 | "version": "1.11.4", 121 | "depth": 2, 122 | "source": "registry", 123 | "dependencies": {}, 124 | "url": "https://packages.unity.com" 125 | }, 126 | "com.unity.nuget.newtonsoft-json": { 127 | "version": "3.2.1", 128 | "depth": 0, 129 | "source": "registry", 130 | "dependencies": {}, 131 | "url": "https://packages.unity.com" 132 | }, 133 | "com.unity.profiling.core": { 134 | "version": "1.0.2", 135 | "depth": 1, 136 | "source": "registry", 137 | "dependencies": {}, 138 | "url": "https://packages.unity.com" 139 | }, 140 | "com.unity.services.analytics": { 141 | "version": "6.0.2", 142 | "depth": 1, 143 | "source": "registry", 144 | "dependencies": { 145 | "com.unity.ugui": "1.0.0", 146 | "com.unity.services.core": "1.12.4", 147 | "com.unity.modules.jsonserialize": "1.0.0" 148 | }, 149 | "url": "https://packages.unity.com" 150 | }, 151 | "com.unity.services.core": { 152 | "version": "1.14.0", 153 | "depth": 2, 154 | "source": "registry", 155 | "dependencies": { 156 | "com.unity.modules.androidjni": "1.0.0", 157 | "com.unity.nuget.newtonsoft-json": "3.2.1", 158 | "com.unity.modules.unitywebrequest": "1.0.0" 159 | }, 160 | "url": "https://packages.unity.com" 161 | }, 162 | "com.unity.test-framework": { 163 | "version": "1.5.1", 164 | "depth": 0, 165 | "source": "builtin", 166 | "dependencies": { 167 | "com.unity.ext.nunit": "2.0.3", 168 | "com.unity.modules.imgui": "1.0.0", 169 | "com.unity.modules.jsonserialize": "1.0.0" 170 | } 171 | }, 172 | "com.unity.test-framework.performance": { 173 | "version": "3.1.0", 174 | "depth": 2, 175 | "source": "registry", 176 | "dependencies": { 177 | "com.unity.test-framework": "1.1.33", 178 | "com.unity.modules.jsonserialize": "1.0.0" 179 | }, 180 | "url": "https://packages.unity.com" 181 | }, 182 | "com.unity.timeline": { 183 | "version": "1.8.7", 184 | "depth": 0, 185 | "source": "registry", 186 | "dependencies": { 187 | "com.unity.modules.audio": "1.0.0", 188 | "com.unity.modules.director": "1.0.0", 189 | "com.unity.modules.animation": "1.0.0", 190 | "com.unity.modules.particlesystem": "1.0.0" 191 | }, 192 | "url": "https://packages.unity.com" 193 | }, 194 | "com.unity.ugui": { 195 | "version": "2.0.0", 196 | "depth": 0, 197 | "source": "builtin", 198 | "dependencies": { 199 | "com.unity.modules.ui": "1.0.0", 200 | "com.unity.modules.imgui": "1.0.0" 201 | } 202 | }, 203 | "com.unity.xr.legacyinputhelpers": { 204 | "version": "2.1.12", 205 | "depth": 0, 206 | "source": "registry", 207 | "dependencies": { 208 | "com.unity.modules.vr": "1.0.0", 209 | "com.unity.modules.xr": "1.0.0" 210 | }, 211 | "url": "https://packages.unity.com" 212 | }, 213 | "com.unity.modules.accessibility": { 214 | "version": "1.0.0", 215 | "depth": 0, 216 | "source": "builtin", 217 | "dependencies": {} 218 | }, 219 | "com.unity.modules.ai": { 220 | "version": "1.0.0", 221 | "depth": 0, 222 | "source": "builtin", 223 | "dependencies": {} 224 | }, 225 | "com.unity.modules.androidjni": { 226 | "version": "1.0.0", 227 | "depth": 0, 228 | "source": "builtin", 229 | "dependencies": {} 230 | }, 231 | "com.unity.modules.animation": { 232 | "version": "1.0.0", 233 | "depth": 0, 234 | "source": "builtin", 235 | "dependencies": {} 236 | }, 237 | "com.unity.modules.assetbundle": { 238 | "version": "1.0.0", 239 | "depth": 0, 240 | "source": "builtin", 241 | "dependencies": {} 242 | }, 243 | "com.unity.modules.audio": { 244 | "version": "1.0.0", 245 | "depth": 0, 246 | "source": "builtin", 247 | "dependencies": {} 248 | }, 249 | "com.unity.modules.cloth": { 250 | "version": "1.0.0", 251 | "depth": 0, 252 | "source": "builtin", 253 | "dependencies": { 254 | "com.unity.modules.physics": "1.0.0" 255 | } 256 | }, 257 | "com.unity.modules.director": { 258 | "version": "1.0.0", 259 | "depth": 0, 260 | "source": "builtin", 261 | "dependencies": { 262 | "com.unity.modules.audio": "1.0.0", 263 | "com.unity.modules.animation": "1.0.0" 264 | } 265 | }, 266 | "com.unity.modules.hierarchycore": { 267 | "version": "1.0.0", 268 | "depth": 1, 269 | "source": "builtin", 270 | "dependencies": {} 271 | }, 272 | "com.unity.modules.imageconversion": { 273 | "version": "1.0.0", 274 | "depth": 0, 275 | "source": "builtin", 276 | "dependencies": {} 277 | }, 278 | "com.unity.modules.imgui": { 279 | "version": "1.0.0", 280 | "depth": 0, 281 | "source": "builtin", 282 | "dependencies": {} 283 | }, 284 | "com.unity.modules.jsonserialize": { 285 | "version": "1.0.0", 286 | "depth": 0, 287 | "source": "builtin", 288 | "dependencies": {} 289 | }, 290 | "com.unity.modules.particlesystem": { 291 | "version": "1.0.0", 292 | "depth": 0, 293 | "source": "builtin", 294 | "dependencies": {} 295 | }, 296 | "com.unity.modules.physics": { 297 | "version": "1.0.0", 298 | "depth": 0, 299 | "source": "builtin", 300 | "dependencies": {} 301 | }, 302 | "com.unity.modules.physics2d": { 303 | "version": "1.0.0", 304 | "depth": 0, 305 | "source": "builtin", 306 | "dependencies": {} 307 | }, 308 | "com.unity.modules.screencapture": { 309 | "version": "1.0.0", 310 | "depth": 0, 311 | "source": "builtin", 312 | "dependencies": { 313 | "com.unity.modules.imageconversion": "1.0.0" 314 | } 315 | }, 316 | "com.unity.modules.subsystems": { 317 | "version": "1.0.0", 318 | "depth": 1, 319 | "source": "builtin", 320 | "dependencies": { 321 | "com.unity.modules.jsonserialize": "1.0.0" 322 | } 323 | }, 324 | "com.unity.modules.terrain": { 325 | "version": "1.0.0", 326 | "depth": 0, 327 | "source": "builtin", 328 | "dependencies": {} 329 | }, 330 | "com.unity.modules.terrainphysics": { 331 | "version": "1.0.0", 332 | "depth": 0, 333 | "source": "builtin", 334 | "dependencies": { 335 | "com.unity.modules.physics": "1.0.0", 336 | "com.unity.modules.terrain": "1.0.0" 337 | } 338 | }, 339 | "com.unity.modules.tilemap": { 340 | "version": "1.0.0", 341 | "depth": 0, 342 | "source": "builtin", 343 | "dependencies": { 344 | "com.unity.modules.physics2d": "1.0.0" 345 | } 346 | }, 347 | "com.unity.modules.ui": { 348 | "version": "1.0.0", 349 | "depth": 0, 350 | "source": "builtin", 351 | "dependencies": {} 352 | }, 353 | "com.unity.modules.uielements": { 354 | "version": "1.0.0", 355 | "depth": 0, 356 | "source": "builtin", 357 | "dependencies": { 358 | "com.unity.modules.ui": "1.0.0", 359 | "com.unity.modules.imgui": "1.0.0", 360 | "com.unity.modules.jsonserialize": "1.0.0", 361 | "com.unity.modules.hierarchycore": "1.0.0" 362 | } 363 | }, 364 | "com.unity.modules.umbra": { 365 | "version": "1.0.0", 366 | "depth": 0, 367 | "source": "builtin", 368 | "dependencies": {} 369 | }, 370 | "com.unity.modules.unityanalytics": { 371 | "version": "1.0.0", 372 | "depth": 0, 373 | "source": "builtin", 374 | "dependencies": { 375 | "com.unity.modules.unitywebrequest": "1.0.0", 376 | "com.unity.modules.jsonserialize": "1.0.0" 377 | } 378 | }, 379 | "com.unity.modules.unitywebrequest": { 380 | "version": "1.0.0", 381 | "depth": 0, 382 | "source": "builtin", 383 | "dependencies": {} 384 | }, 385 | "com.unity.modules.unitywebrequestassetbundle": { 386 | "version": "1.0.0", 387 | "depth": 0, 388 | "source": "builtin", 389 | "dependencies": { 390 | "com.unity.modules.assetbundle": "1.0.0", 391 | "com.unity.modules.unitywebrequest": "1.0.0" 392 | } 393 | }, 394 | "com.unity.modules.unitywebrequestaudio": { 395 | "version": "1.0.0", 396 | "depth": 0, 397 | "source": "builtin", 398 | "dependencies": { 399 | "com.unity.modules.unitywebrequest": "1.0.0", 400 | "com.unity.modules.audio": "1.0.0" 401 | } 402 | }, 403 | "com.unity.modules.unitywebrequesttexture": { 404 | "version": "1.0.0", 405 | "depth": 0, 406 | "source": "builtin", 407 | "dependencies": { 408 | "com.unity.modules.unitywebrequest": "1.0.0", 409 | "com.unity.modules.imageconversion": "1.0.0" 410 | } 411 | }, 412 | "com.unity.modules.unitywebrequestwww": { 413 | "version": "1.0.0", 414 | "depth": 0, 415 | "source": "builtin", 416 | "dependencies": { 417 | "com.unity.modules.unitywebrequest": "1.0.0", 418 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 419 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 420 | "com.unity.modules.audio": "1.0.0", 421 | "com.unity.modules.assetbundle": "1.0.0", 422 | "com.unity.modules.imageconversion": "1.0.0" 423 | } 424 | }, 425 | "com.unity.modules.vehicles": { 426 | "version": "1.0.0", 427 | "depth": 0, 428 | "source": "builtin", 429 | "dependencies": { 430 | "com.unity.modules.physics": "1.0.0" 431 | } 432 | }, 433 | "com.unity.modules.video": { 434 | "version": "1.0.0", 435 | "depth": 0, 436 | "source": "builtin", 437 | "dependencies": { 438 | "com.unity.modules.audio": "1.0.0", 439 | "com.unity.modules.ui": "1.0.0", 440 | "com.unity.modules.unitywebrequest": "1.0.0" 441 | } 442 | }, 443 | "com.unity.modules.vr": { 444 | "version": "1.0.0", 445 | "depth": 0, 446 | "source": "builtin", 447 | "dependencies": { 448 | "com.unity.modules.jsonserialize": "1.0.0", 449 | "com.unity.modules.physics": "1.0.0", 450 | "com.unity.modules.xr": "1.0.0" 451 | } 452 | }, 453 | "com.unity.modules.wind": { 454 | "version": "1.0.0", 455 | "depth": 0, 456 | "source": "builtin", 457 | "dependencies": {} 458 | }, 459 | "com.unity.modules.xr": { 460 | "version": "1.0.0", 461 | "depth": 0, 462 | "source": "builtin", 463 | "dependencies": { 464 | "com.unity.modules.physics": "1.0.0", 465 | "com.unity.modules.jsonserialize": "1.0.0", 466 | "com.unity.modules.subsystems": "1.0.0" 467 | } 468 | } 469 | } 470 | } 471 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_DisableAudio: 0 15 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/BurstAotSettings_Android.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "EnableBurstCompilation": true, 5 | "EnableOptimisations": true, 6 | "EnableSafetyChecks": false, 7 | "EnableDebugInAllBuilds": false, 8 | "CpuMinTargetX32": 0, 9 | "CpuMaxTargetX32": 0, 10 | "CpuMinTargetX64": 0, 11 | "CpuMaxTargetX64": 0, 12 | "OptimizeFor": 0 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/BurstAotSettings_StandaloneWindows.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "EnableBurstCompilation": true, 5 | "EnableOptimisations": true, 6 | "EnableSafetyChecks": false, 7 | "EnableDebugInAllBuilds": false, 8 | "UsePlatformSDKLinker": false, 9 | "CpuMinTargetX32": 0, 10 | "CpuMaxTargetX32": 0, 11 | "CpuMinTargetX64": 0, 12 | "CpuMaxTargetX64": 0, 13 | "CpuTargetsX32": 6, 14 | "CpuTargetsX64": 72, 15 | "OptimizeFor": 0 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/CommonBurstAotSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "DisabledWarnings": "" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | m_Gravity: {x: 0, y: -9.81000042, z: 0} 7 | m_DefaultMaterial: {fileID: 0} 8 | m_BounceThreshold: 2 9 | m_SleepThreshold: .00499999989 10 | m_DefaultContactOffset: .00999999978 11 | m_SolverIterationCount: 6 12 | m_RaycastsHitTriggers: 1 13 | m_EnableAdaptiveForce: 0 14 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 15 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 0 9 | path: Assets/ComputeShaderDev.unity 10 | guid: cbbd4c97a8726eb4497ad6a13d458f2e 11 | - enabled: 1 12 | path: Assets/Basic_Build_Sample.unity 13 | guid: f0f7e2a31852a6c419bc77cc899ee22f 14 | - enabled: 1 15 | path: Assets/Basic_Build_Sample_PC.unity 16 | guid: 6b09899ec332ee04eb46e280d0d6db69 17 | m_configObjects: {} 18 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_WebSecurityEmulationEnabled: 0 10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d 11 | m_DefaultBehaviorMode: 0 12 | m_SpritePackerMode: 2 13 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 40 | m_PreloadedShaders: [] 41 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 42 | type: 0} 43 | m_CustomRenderPipeline: {fileID: 0} 44 | m_TransparencySortMode: 0 45 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 46 | m_DefaultRenderingPath: 1 47 | m_DefaultMobileRenderingPath: 1 48 | m_TierSettings: [] 49 | m_LightmapStripping: 0 50 | m_FogStripping: 0 51 | m_InstancingStripping: 0 52 | m_LightmapKeepPlain: 1 53 | m_LightmapKeepDirCombined: 1 54 | m_LightmapKeepDynamicPlain: 1 55 | m_LightmapKeepDynamicDirCombined: 1 56 | m_LightmapKeepShadowMask: 1 57 | m_LightmapKeepSubtractive: 1 58 | m_FogKeepLinear: 1 59 | m_FogKeepExp: 1 60 | m_FogKeepExp2: 1 61 | m_AlbedoSwatchInfos: [] 62 | m_LightsUseLinearIntensity: 0 63 | m_LightsUseColorTemperature: 0 64 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: .00100000005 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: .00100000005 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: .00100000005 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: .00100000005 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left cmd 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: .00100000005 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: .00100000005 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: .100000001 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: .100000001 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: .100000001 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: .189999998 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: .189999998 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: .00100000005 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: .00100000005 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: .00100000005 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: .00100000005 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: .00100000005 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: .00100000005 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: .00100000005 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/MultiplayerManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!655991488 &1 4 | MultiplayerManager: 5 | m_ObjectHideFlags: 0 6 | m_EnableMultiplayerRoles: 0 7 | m_StrippingTypes: {} 8 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshAreas: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreReleasePackages: 1 16 | m_EnablePackageDependencies: 1 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | m_SeeAllPackageVersions: 0 20 | oneTimeWarningShown: 1 21 | m_Registries: 22 | - m_Id: main 23 | m_Name: 24 | m_Url: https://packages.unity.com 25 | m_Scopes: [] 26 | m_IsDefault: 1 27 | m_Capabilities: 7 28 | m_UserSelectedRegistryName: 29 | m_UserAddingNewScopedRegistry: 0 30 | m_RegistryInfoDraft: 31 | m_Modified: 0 32 | m_ErrorMessage: 33 | m_UserModificationsInstanceId: -824 34 | m_OriginalInstanceId: -826 35 | m_LoadAssets: 0 36 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/Packages/com.unity.services.core/Settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/Unity_Test_Project/ProjectSettings/Packages/com.unity.services.core/Settings.json -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | m_Gravity: {x: 0, y: -9.81000042} 7 | m_DefaultMaterial: {fileID: 0} 8 | m_VelocityIterations: 8 9 | m_PositionIterations: 3 10 | m_VelocityThreshold: 1 11 | m_MaxLinearCorrection: .200000003 12 | m_MaxAngularCorrection: 8 13 | m_MaxTranslationSpeed: 100 14 | m_MaxRotationSpeed: 360 15 | m_MinPenetrationForPenalty: .00999999978 16 | m_BaumgarteScale: .200000003 17 | m_BaumgarteTimeOfImpactScale: .75 18 | m_TimeToSleep: .5 19 | m_LinearSleepTolerance: .00999999978 20 | m_AngularSleepTolerance: 2 21 | m_RaycastsHitTriggers: 1 22 | m_RaycastsStartInColliders: 1 23 | m_ChangeStopsCallbacks: 0 24 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 6000.1.1f1 2 | m_EditorVersionWithRevision: 6000.1.1f1 (7197418f847b) 3 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 0 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Fastest 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 4 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 16 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | customRenderPipeline: {fileID: 0} 44 | excludedTargetPlatforms: [] 45 | - serializedVersion: 2 46 | name: Fast 47 | pixelLightCount: 0 48 | shadows: 0 49 | shadowResolution: 0 50 | shadowProjection: 1 51 | shadowCascades: 1 52 | shadowDistance: 20 53 | shadowNearPlaneOffset: 3 54 | shadowCascade2Split: 0.33333334 55 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 56 | shadowmaskMode: 0 57 | skinWeights: 2 58 | textureQuality: 0 59 | anisotropicTextures: 0 60 | antiAliasing: 0 61 | softParticles: 0 62 | softVegetation: 0 63 | realtimeReflectionProbes: 0 64 | billboardsFaceCameraPosition: 0 65 | vSyncCount: 0 66 | lodBias: 0.4 67 | maximumLODLevel: 0 68 | streamingMipmapsActive: 0 69 | streamingMipmapsAddAllCameras: 1 70 | streamingMipmapsMemoryBudget: 512 71 | streamingMipmapsRenderersPerFrame: 512 72 | streamingMipmapsMaxLevelReduction: 2 73 | streamingMipmapsMaxFileIORequests: 1024 74 | particleRaycastBudget: 16 75 | asyncUploadTimeSlice: 2 76 | asyncUploadBufferSize: 16 77 | asyncUploadPersistentBuffer: 1 78 | resolutionScalingFixedDPIFactor: 1 79 | customRenderPipeline: {fileID: 0} 80 | excludedTargetPlatforms: [] 81 | - serializedVersion: 2 82 | name: Simple 83 | pixelLightCount: 1 84 | shadows: 1 85 | shadowResolution: 0 86 | shadowProjection: 1 87 | shadowCascades: 1 88 | shadowDistance: 20 89 | shadowNearPlaneOffset: 3 90 | shadowCascade2Split: 0.33333334 91 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 92 | shadowmaskMode: 0 93 | skinWeights: 2 94 | textureQuality: 0 95 | anisotropicTextures: 1 96 | antiAliasing: 0 97 | softParticles: 0 98 | softVegetation: 0 99 | realtimeReflectionProbes: 0 100 | billboardsFaceCameraPosition: 0 101 | vSyncCount: 0 102 | lodBias: 0.7 103 | maximumLODLevel: 0 104 | streamingMipmapsActive: 0 105 | streamingMipmapsAddAllCameras: 1 106 | streamingMipmapsMemoryBudget: 512 107 | streamingMipmapsRenderersPerFrame: 512 108 | streamingMipmapsMaxLevelReduction: 2 109 | streamingMipmapsMaxFileIORequests: 1024 110 | particleRaycastBudget: 64 111 | asyncUploadTimeSlice: 2 112 | asyncUploadBufferSize: 16 113 | asyncUploadPersistentBuffer: 1 114 | resolutionScalingFixedDPIFactor: 1 115 | customRenderPipeline: {fileID: 0} 116 | excludedTargetPlatforms: [] 117 | - serializedVersion: 2 118 | name: Good 119 | pixelLightCount: 2 120 | shadows: 2 121 | shadowResolution: 1 122 | shadowProjection: 1 123 | shadowCascades: 2 124 | shadowDistance: 40 125 | shadowNearPlaneOffset: 3 126 | shadowCascade2Split: 0.33333334 127 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 128 | shadowmaskMode: 1 129 | skinWeights: 2 130 | textureQuality: 0 131 | anisotropicTextures: 1 132 | antiAliasing: 0 133 | softParticles: 0 134 | softVegetation: 1 135 | realtimeReflectionProbes: 1 136 | billboardsFaceCameraPosition: 1 137 | vSyncCount: 1 138 | lodBias: 1 139 | maximumLODLevel: 0 140 | streamingMipmapsActive: 0 141 | streamingMipmapsAddAllCameras: 1 142 | streamingMipmapsMemoryBudget: 512 143 | streamingMipmapsRenderersPerFrame: 512 144 | streamingMipmapsMaxLevelReduction: 2 145 | streamingMipmapsMaxFileIORequests: 1024 146 | particleRaycastBudget: 256 147 | asyncUploadTimeSlice: 2 148 | asyncUploadBufferSize: 16 149 | asyncUploadPersistentBuffer: 1 150 | resolutionScalingFixedDPIFactor: 1 151 | customRenderPipeline: {fileID: 0} 152 | excludedTargetPlatforms: [] 153 | - serializedVersion: 2 154 | name: Beautiful 155 | pixelLightCount: 3 156 | shadows: 2 157 | shadowResolution: 2 158 | shadowProjection: 1 159 | shadowCascades: 2 160 | shadowDistance: 70 161 | shadowNearPlaneOffset: 3 162 | shadowCascade2Split: 0.33333334 163 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 164 | shadowmaskMode: 1 165 | skinWeights: 4 166 | textureQuality: 0 167 | anisotropicTextures: 2 168 | antiAliasing: 2 169 | softParticles: 1 170 | softVegetation: 1 171 | realtimeReflectionProbes: 1 172 | billboardsFaceCameraPosition: 1 173 | vSyncCount: 1 174 | lodBias: 1.5 175 | maximumLODLevel: 0 176 | streamingMipmapsActive: 0 177 | streamingMipmapsAddAllCameras: 1 178 | streamingMipmapsMemoryBudget: 512 179 | streamingMipmapsRenderersPerFrame: 512 180 | streamingMipmapsMaxLevelReduction: 2 181 | streamingMipmapsMaxFileIORequests: 1024 182 | particleRaycastBudget: 1024 183 | asyncUploadTimeSlice: 2 184 | asyncUploadBufferSize: 16 185 | asyncUploadPersistentBuffer: 1 186 | resolutionScalingFixedDPIFactor: 1 187 | customRenderPipeline: {fileID: 0} 188 | excludedTargetPlatforms: [] 189 | - serializedVersion: 2 190 | name: Fantastic 191 | pixelLightCount: 4 192 | shadows: 2 193 | shadowResolution: 2 194 | shadowProjection: 1 195 | shadowCascades: 4 196 | shadowDistance: 150 197 | shadowNearPlaneOffset: 3 198 | shadowCascade2Split: 0.33333334 199 | shadowCascade4Split: {x: 0.06666667, y: 0.19999999, z: 0.46666664} 200 | shadowmaskMode: 1 201 | skinWeights: 4 202 | textureQuality: 0 203 | anisotropicTextures: 2 204 | antiAliasing: 2 205 | softParticles: 1 206 | softVegetation: 1 207 | realtimeReflectionProbes: 1 208 | billboardsFaceCameraPosition: 1 209 | vSyncCount: 0 210 | lodBias: 2 211 | maximumLODLevel: 0 212 | streamingMipmapsActive: 0 213 | streamingMipmapsAddAllCameras: 1 214 | streamingMipmapsMemoryBudget: 512 215 | streamingMipmapsRenderersPerFrame: 512 216 | streamingMipmapsMaxLevelReduction: 2 217 | streamingMipmapsMaxFileIORequests: 1024 218 | particleRaycastBudget: 4096 219 | asyncUploadTimeSlice: 2 220 | asyncUploadBufferSize: 16 221 | asyncUploadPersistentBuffer: 1 222 | resolutionScalingFixedDPIFactor: 1 223 | customRenderPipeline: {fileID: 0} 224 | excludedTargetPlatforms: [] 225 | m_PerPlatformDefaultQuality: 226 | Android: 0 227 | BlackBerry: 0 228 | Server: 0 229 | Standalone: 0 230 | WP8: 0 231 | Web: 0 232 | WebGL: 0 233 | Windows Store Apps: 0 234 | iPhone: 0 235 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/SceneTemplateSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "templatePinStates": [], 3 | "dependencyTypeInfos": [ 4 | { 5 | "userAdded": false, 6 | "type": "UnityEngine.AnimationClip", 7 | "defaultInstantiationMode": 0 8 | }, 9 | { 10 | "userAdded": false, 11 | "type": "UnityEditor.Animations.AnimatorController", 12 | "defaultInstantiationMode": 0 13 | }, 14 | { 15 | "userAdded": false, 16 | "type": "UnityEngine.AnimatorOverrideController", 17 | "defaultInstantiationMode": 0 18 | }, 19 | { 20 | "userAdded": false, 21 | "type": "UnityEditor.Audio.AudioMixerController", 22 | "defaultInstantiationMode": 0 23 | }, 24 | { 25 | "userAdded": false, 26 | "type": "UnityEngine.ComputeShader", 27 | "defaultInstantiationMode": 1 28 | }, 29 | { 30 | "userAdded": false, 31 | "type": "UnityEngine.Cubemap", 32 | "defaultInstantiationMode": 0 33 | }, 34 | { 35 | "userAdded": false, 36 | "type": "UnityEngine.GameObject", 37 | "defaultInstantiationMode": 0 38 | }, 39 | { 40 | "userAdded": false, 41 | "type": "UnityEditor.LightingDataAsset", 42 | "defaultInstantiationMode": 0 43 | }, 44 | { 45 | "userAdded": false, 46 | "type": "UnityEngine.LightingSettings", 47 | "defaultInstantiationMode": 0 48 | }, 49 | { 50 | "userAdded": false, 51 | "type": "UnityEngine.Material", 52 | "defaultInstantiationMode": 0 53 | }, 54 | { 55 | "userAdded": false, 56 | "type": "UnityEditor.MonoScript", 57 | "defaultInstantiationMode": 1 58 | }, 59 | { 60 | "userAdded": false, 61 | "type": "UnityEngine.PhysicMaterial", 62 | "defaultInstantiationMode": 0 63 | }, 64 | { 65 | "userAdded": false, 66 | "type": "UnityEngine.PhysicsMaterial", 67 | "defaultInstantiationMode": 0 68 | }, 69 | { 70 | "userAdded": false, 71 | "type": "UnityEngine.PhysicsMaterial2D", 72 | "defaultInstantiationMode": 0 73 | }, 74 | { 75 | "userAdded": false, 76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", 77 | "defaultInstantiationMode": 0 78 | }, 79 | { 80 | "userAdded": false, 81 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", 82 | "defaultInstantiationMode": 0 83 | }, 84 | { 85 | "userAdded": false, 86 | "type": "UnityEngine.Rendering.VolumeProfile", 87 | "defaultInstantiationMode": 0 88 | }, 89 | { 90 | "userAdded": false, 91 | "type": "UnityEditor.SceneAsset", 92 | "defaultInstantiationMode": 0 93 | }, 94 | { 95 | "userAdded": false, 96 | "type": "UnityEngine.Shader", 97 | "defaultInstantiationMode": 1 98 | }, 99 | { 100 | "userAdded": false, 101 | "type": "UnityEngine.ShaderVariantCollection", 102 | "defaultInstantiationMode": 1 103 | }, 104 | { 105 | "userAdded": false, 106 | "type": "UnityEngine.Texture", 107 | "defaultInstantiationMode": 0 108 | }, 109 | { 110 | "userAdded": false, 111 | "type": "UnityEngine.Texture2D", 112 | "defaultInstantiationMode": 0 113 | }, 114 | { 115 | "userAdded": false, 116 | "type": "UnityEngine.Timeline.TimelineAsset", 117 | "defaultInstantiationMode": 0 118 | } 119 | ], 120 | "defaultDependencyTypeInfo": { 121 | "userAdded": false, 122 | "type": "", 123 | "defaultInstantiationMode": 1 124 | }, 125 | "newSceneOverride": 0 126 | } -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: .0199999996 7 | Maximum Allowed Timestep: .333333343 8 | m_TimeScale: 1 9 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/TimelineSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | assetDefaultFramerate: 60 16 | m_DefaultFrameRate: 60 17 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/UnityAdsSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00000000000000008100000000000000 3 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 1 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | m_PackageRequiringCoreStatsPresent: 1 27 | UnityAdsSettings: 28 | m_Enabled: 0 29 | m_InitializeOnStartup: 1 30 | m_TestMode: 0 31 | m_IosGameId: 32 | m_AndroidGameId: 33 | m_GameIds: {} 34 | m_GameId: 35 | PerformanceReportingSettings: 36 | m_Enabled: 0 37 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /Unity_Test_Project/ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /Unity_Test_Project/UserSettings/EditorUserSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!162 &1 4 | EditorUserSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ConfigSettings: 8 | RecentlyUsedSceneGuid-0: 9 | value: 07090000520d5f590908597441220a4447154a7d7d7077352c2b4431b1b36039 10 | flags: 0 11 | RecentlyUsedSceneGuid-1: 12 | value: 07520756040c080d5b5c0e7746700a4417154178787020637b2f4861e7e3643e 13 | flags: 0 14 | RecentlyUsedSceneGuid-2: 15 | value: 005356025156500c0c565b7046265d44424e4f2b287e27617e2d4966bae6663d 16 | flags: 0 17 | RecentlyUsedSceneGuid-3: 18 | value: 05015251000708085c56597011755c44474e1a297b7f253375704436e7b2663e 19 | flags: 0 20 | RecentlyUsedSceneGuid-4: 21 | value: 5553045f5d0c505e0e5d5f7015260f4413154c7c297a7e6029791965e6e26261 22 | flags: 0 23 | RecentlyUsedSceneGuid-5: 24 | value: 50520d5750535f5d0c5d0f7747710d4417161e7e747d2469297a4867e7b16268 25 | flags: 0 26 | RecentlyUsedSceneGuid-6: 27 | value: 54040c02515158595b0d0d7340735d44424f1d79757e70312e7b4a30e0b56d61 28 | flags: 0 29 | RecentlyUsedSceneGuid-7: 30 | value: 0653030355045f0e5b59097012730d4441164828742a77327a794835b6e66d60 31 | flags: 0 32 | RecentlyUsedSceneGuid-8: 33 | value: 57050c54500559090e5a097042765e4441164f2b792975312f2d4f6ab1b9306b 34 | flags: 0 35 | RecentlyUsedSceneGuid-9: 36 | value: 000955545d010c025f5f5d7041210d441016492c7a7f73677a7f4e60bbb9646c 37 | flags: 0 38 | vcSharedLogLevel: 39 | value: 0d5e400f0650 40 | flags: 0 41 | m_VCAutomaticAdd: 1 42 | m_VCDebugCom: 0 43 | m_VCDebugCmd: 0 44 | m_VCDebugOut: 0 45 | m_SemanticMergeMode: 2 46 | m_DesiredImportWorkerCount: 2 47 | m_StandbyImportWorkerCount: 2 48 | m_IdleImportWorkerShutdownDelay: 60000 49 | m_VCShowFailedCheckout: 1 50 | m_VCOverwriteFailedCheckoutAssets: 1 51 | m_VCProjectOverlayIcons: 1 52 | m_VCHierarchyOverlayIcons: 1 53 | m_VCOtherOverlayIcons: 1 54 | m_VCAllowAsyncUpdate: 0 55 | m_VCScanLocalPackagesOnConnect: 1 56 | m_ArtifactGarbageCollection: 1 57 | m_CompressAssetsOnImport: 1 58 | -------------------------------------------------------------------------------- /Unity_Test_Project/UserSettings/Search.index: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Assets", 3 | "roots": ["Assets"], 4 | "includes": [], 5 | "excludes": [], 6 | "options": { 7 | "types": true, 8 | "properties": true, 9 | "extended": false, 10 | "dependencies": false 11 | }, 12 | "baseScore": 999 13 | } -------------------------------------------------------------------------------- /Unity_Test_Project/UserSettings/Search.settings: -------------------------------------------------------------------------------- 1 | trackSelection = true 2 | refreshSearchWindowsInPlayMode = false 3 | fetchPreview = true 4 | defaultFlags = 0 5 | keepOpen = false 6 | queryFolder = "Assets" 7 | onBoardingDoNotAskAgain = true 8 | showPackageIndexes = false 9 | showStatusBar = false 10 | scopes = { 11 | } 12 | providers = { 13 | performance = { 14 | active = false 15 | priority = 100 16 | defaultAction = null 17 | } 18 | log = { 19 | active = false 20 | priority = 210 21 | defaultAction = null 22 | } 23 | scene = { 24 | active = true 25 | priority = 50 26 | defaultAction = null 27 | } 28 | adb = { 29 | active = false 30 | priority = 2500 31 | defaultAction = null 32 | } 33 | store = { 34 | active = false 35 | priority = 100 36 | defaultAction = null 37 | } 38 | asset = { 39 | active = true 40 | priority = 25 41 | defaultAction = null 42 | } 43 | profilermarkers = { 44 | active = false 45 | priority = 100 46 | defaultAction = null 47 | } 48 | find = { 49 | active = true 50 | priority = 25 51 | defaultAction = null 52 | } 53 | packages = { 54 | active = false 55 | priority = 90 56 | defaultAction = null 57 | } 58 | } 59 | objectSelectors = { 60 | } 61 | recentSearches = [ 62 | ] 63 | searchItemFavorites = [ 64 | ] 65 | savedSearchesSortOrder = 0 66 | showSavedSearchPanel = false 67 | hideTabs = false 68 | expandedQueries = [ 69 | ] 70 | queryBuilder = true 71 | ignoredProperties = "id;name;classname;imagecontentshash" 72 | helperWidgetCurrentArea = "all" 73 | disabledIndexers = "" 74 | minIndexVariations = 2 75 | findProviderIndexHelper = true -------------------------------------------------------------------------------- /docs/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true -------------------------------------------------------------------------------- /docs/.eslintignore: -------------------------------------------------------------------------------- 1 | assets/js/index.js 2 | assets/js/katex.js 3 | assets/js/vendor 4 | node_modules -------------------------------------------------------------------------------- /docs/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "commonjs": true, 5 | "es6": true, 6 | "node": true 7 | }, 8 | "extends": "eslint:recommended", 9 | "globals": { 10 | "Atomics": "readonly", 11 | "SharedArrayBuffer": "readonly" 12 | }, 13 | "parserOptions": { 14 | "ecmaVersion": 2018, 15 | "sourceType": "module" 16 | }, 17 | "rules": { 18 | "no-console": 0, 19 | "quotes": ["error", "single"], 20 | "comma-dangle": [ 21 | "error", 22 | { 23 | "arrays": "always-multiline", 24 | "objects": "always-multiline", 25 | "imports": "always-multiline", 26 | "exports": "always-multiline", 27 | "functions": "ignore" 28 | } 29 | ] 30 | } 31 | } -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | public 3 | resources 4 | .netlify 5 | .hugo_build.lock -------------------------------------------------------------------------------- /docs/.markdownlint-cli2.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "default": true, 4 | "MD013": false, 5 | "MD024": false, 6 | "MD026": false, 7 | "MD033": false, 8 | "MD034": false 9 | }, 10 | "ignores": ["node_modules", "CHANGELOG.md", "README.md"] 11 | } -------------------------------------------------------------------------------- /docs/.npmrc: -------------------------------------------------------------------------------- 1 | enable-pre-post-scripts = true 2 | auto-install-peers = true 3 | node-linker = hoisted 4 | prefer-symlinked-executables = false -------------------------------------------------------------------------------- /docs/.stylelintignore: -------------------------------------------------------------------------------- 1 | assets/scss/components/_syntax.scss 2 | assets/scss/vendor 3 | node_modules -------------------------------------------------------------------------------- /docs/.stylelintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-standard-scss", 3 | "rules": { 4 | "no-empty-source": null, 5 | "string-quotes": "double", 6 | "scss/comment-no-empty": null, 7 | "max-line-length": null, 8 | "scss/at-extend-no-missing-placeholder": null, 9 | "scss/dollar-variable-colon-space-after": null, 10 | "scss/dollar-variable-empty-line-before": null, 11 | "color-function-notation": null, 12 | "alpha-value-notation": null, 13 | "selector-id-pattern": null, 14 | "selector-class-pattern": null, 15 | "scss/no-global-function-names": null, 16 | "number-max-precision": null, 17 | "hue-degree-notation": null, 18 | "value-no-vendor-prefix": null, 19 | "property-no-vendor-prefix": null, 20 | "at-rule-no-unknown": [ 21 | true, 22 | { 23 | "ignoreAtRules": [ 24 | "extend", 25 | "at-root", 26 | "debug", 27 | "warn", 28 | "error", 29 | "if", 30 | "else", 31 | "for", 32 | "each", 33 | "while", 34 | "mixin", 35 | "include", 36 | "content", 37 | "return", 38 | "function", 39 | "tailwind", 40 | "apply", 41 | "responsive", 42 | "variants", 43 | "screen" 44 | ] 45 | } 46 | ] 47 | } 48 | } -------------------------------------------------------------------------------- /docs/assets/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/assets/cover.png -------------------------------------------------------------------------------- /docs/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/assets/favicon.ico -------------------------------------------------------------------------------- /docs/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/assets/favicon.png -------------------------------------------------------------------------------- /docs/assets/images/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/assets/images/.gitkeep -------------------------------------------------------------------------------- /docs/assets/js/custom.js: -------------------------------------------------------------------------------- 1 | // Put your custom JS code here 2 | -------------------------------------------------------------------------------- /docs/assets/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "*": ["*", "..\\node_modules\\@hyas\\doks-core\\assets\\*"] 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /docs/assets/scss/common/_custom.scss: -------------------------------------------------------------------------------- 1 | // Put your custom SCSS code here 2 | -------------------------------------------------------------------------------- /docs/assets/scss/common/_variables-custom.scss: -------------------------------------------------------------------------------- 1 | // Put your custom SCSS variables here 2 | 3 | // Light mode 4 | $primary: hsl(163, 100%, 30%); 5 | 6 | // Dark mode 7 | $link-color-dark: hsl(163, 99%, 48%); 8 | $button-color-dark: hsl(163, 99%, 48%); 9 | 10 | :root, 11 | ::backdrop { 12 | --sl-color-accent-high: hsl(163, 99%, 48%); 13 | } -------------------------------------------------------------------------------- /docs/assets/svgs/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/assets/svgs/.gitkeep -------------------------------------------------------------------------------- /docs/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | [ 4 | '@babel/preset-env', 5 | { 6 | targets: { 7 | browsers: [ 8 | // Best practice: https://github.com/babel/babel/issues/7789 9 | '>=1%', 10 | 'not ie 11', 11 | 'not op_mini all' 12 | ] 13 | } 14 | } 15 | ] 16 | ] 17 | }; -------------------------------------------------------------------------------- /docs/config/_default/hugo.toml: -------------------------------------------------------------------------------- 1 | title = "Unity Geometry Sequence Player" 2 | baseurl = "https://localhost/" 3 | canonifyURLs = false 4 | disableAliases = true 5 | disableHugoGeneratorInject = true 6 | # disableKinds = ["taxonomy", "term"] 7 | enableEmoji = true 8 | enableGitInfo = false 9 | enableRobotsTXT = true 10 | languageCode = "en-US" 11 | paginate = 10 12 | rssLimit = 10 13 | summarylength = 20 # 70 (default) 14 | 15 | # Multilingual 16 | defaultContentLanguage = "en" 17 | disableLanguages = ["de", "nl"] 18 | defaultContentLanguageInSubdir = false 19 | 20 | copyRight = "Copyright (c) 2020-2024 Hyas" 21 | 22 | [build.buildStats] 23 | enable = true 24 | 25 | [outputs] 26 | home = ["HTML", "RSS", "searchIndex"] 27 | section = ["HTML", "RSS", "SITEMAP"] 28 | 29 | [outputFormats.searchIndex] 30 | mediaType = "application/json" 31 | baseName = "search-index" 32 | isPlainText = true 33 | notAlternative = true 34 | 35 | # Add output format for section sitemap.xml 36 | [outputFormats.SITEMAP] 37 | mediaType = "application/xml" 38 | baseName = "sitemap" 39 | isHTML = false 40 | isPlainText = true 41 | noUgly = true 42 | rel = "sitemap" 43 | 44 | [sitemap] 45 | changefreq = "monthly" 46 | filename = "sitemap.xml" 47 | priority = 0.5 48 | 49 | [caches] 50 | [caches.getjson] 51 | dir = ":cacheDir/:project" 52 | maxAge = -1 # "30m" 53 | 54 | [taxonomies] 55 | contributor = "contributors" 56 | category = "categories" 57 | tag = "tags" 58 | 59 | [permalinks] 60 | blog = "/blog/:slug/" 61 | docs = "/docs/:sections[1:]/:slug/" 62 | # docs = "/docs/1.0/:sections[1:]/:slug/" 63 | 64 | [minify.tdewolff.html] 65 | keepWhitespace = false 66 | 67 | [related] 68 | threshold = 80 69 | includeNewer = true 70 | toLower = false 71 | [[related.indices]] 72 | name = "categories" 73 | weight = 100 74 | [[related.indices]] 75 | name = "tags" 76 | weight = 80 77 | [[related.indices]] 78 | name = "date" 79 | weight = 10 80 | 81 | [imaging] 82 | anchor = "Center" 83 | bgColor = "#ffffff" 84 | hint = "photo" 85 | quality = 100 86 | resampleFilter = "Lanczos" -------------------------------------------------------------------------------- /docs/config/_default/languages.toml: -------------------------------------------------------------------------------- 1 | [en] 2 | languageName = "English" 3 | contentDir = "content/en" 4 | weight = 10 5 | [en.params] 6 | languageISO = "EN" 7 | languageTag = "en-US" -------------------------------------------------------------------------------- /docs/config/_default/markup.toml: -------------------------------------------------------------------------------- 1 | defaultMarkdownHandler = "goldmark" 2 | 3 | [goldmark] 4 | [goldmark.extensions] 5 | linkify = false 6 | [goldmark.parser] 7 | autoHeadingID = true 8 | autoHeadingIDType = "github" 9 | [goldmark.parser.attribute] 10 | block = true 11 | title = true 12 | [goldmark.renderer] 13 | unsafe = true 14 | 15 | [highlight] 16 | codeFences = true 17 | guessSyntax = false 18 | hl_Lines = "" 19 | lineNoStart = 1 20 | lineNos = false 21 | lineNumbersInTable = true 22 | noClasses = false 23 | style = "dracula" 24 | tabWidth = 4 25 | 26 | [tableOfContents] 27 | endLevel = 3 28 | ordered = false 29 | startLevel = 2 30 | -------------------------------------------------------------------------------- /docs/config/_default/menus/menus.en.toml: -------------------------------------------------------------------------------- 1 | #Sidebar menu items 2 | 3 | [[main]] 4 | name = "Get started" 5 | weight = 10 6 | identifier = "get-started" 7 | url = "/docs/quickstart/quick-start" 8 | 9 | [[main]] 10 | name = "Documentation" 11 | url = "/docs/tutorials/tutorial" 12 | identifier = "docs" 13 | weight = 20 14 | 15 | [[main]] 16 | name = "Quick Start" 17 | weight = 40 18 | identifier = "quick-start-menu" 19 | url = "/docs/quickstart/quick-start/" 20 | parent = "docs" 21 | 22 | [[main]] 23 | name = "Tutorials" 24 | weight = 50 25 | identifier = "tutorials-menu" 26 | url = "docs/tutorials/installation" 27 | parent = "docs" 28 | 29 | [[main]] 30 | name = "Help" 31 | weight = 60 32 | identifier = "help-menu" 33 | url = "docs/help/support" 34 | parent = "docs" 35 | 36 | [[main]] 37 | name = "About" 38 | weight = 70 39 | identifier = "about-menu" 40 | url = "docs/about/building-volumes" 41 | parent = "docs" 42 | 43 | # Documentation Sections 44 | 45 | [[docs]] 46 | name = "Quickstart" 47 | weight = 10 48 | identifier = "quick-start" 49 | url = "/docs/quickstart/" 50 | 51 | [[docs]] 52 | name = "Tutorial" 53 | weight = 20 54 | identifier = "tutorial" 55 | url = "/docs/tutorials/" 56 | 57 | [[docs]] 58 | name = "Help" 59 | weight = 30 60 | identifier = "help" 61 | url = "/docs/help/" 62 | 63 | [[docs]] 64 | name = "About" 65 | weight = 40 66 | identifier = "about" 67 | url = "/docs/about/" 68 | 69 | # Social links 70 | 71 | [[social]] 72 | name = "GitHub" 73 | pre = "" 74 | url = "https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player" 75 | post = "v0.1.0" 76 | weight = 10 77 | 78 | [[social]] 79 | name = "Unity Forums" 80 | pre = "" 81 | url = "https://assetstore.unity.com/packages/slug/307918" 82 | post = "v0.1.0" 83 | weight = 20 -------------------------------------------------------------------------------- /docs/config/_default/module.toml: -------------------------------------------------------------------------------- 1 | # mounts 2 | ## archetypes 3 | [[mounts]] 4 | source = "node_modules/@hyas/doks-core/archetypes" 5 | target = "archetypes" 6 | 7 | [[mounts]] 8 | source = "archetypes" 9 | target = "archetypes" 10 | 11 | ## assets 12 | [[mounts]] 13 | source = "node_modules/@hyas/core/assets" 14 | target = "assets" 15 | 16 | [[mounts]] 17 | source = "node_modules/@hyas/images/assets" 18 | target = "assets" 19 | 20 | [[mounts]] 21 | source = "node_modules/@hyas/doks-core/assets" 22 | target = "assets" 23 | 24 | [[mounts]] 25 | source = "node_modules/@tabler/icons/icons" 26 | target = "assets/svgs/tabler-icons" 27 | 28 | [[mounts]] 29 | source = "assets" 30 | target = "assets" 31 | 32 | ## content 33 | [[mounts]] 34 | source = "content" 35 | target = "content" 36 | 37 | ## data 38 | [[mounts]] 39 | source = "node_modules/@hyas/doks-core/data" 40 | target = "data" 41 | 42 | [[mounts]] 43 | source = "data" 44 | target = "data" 45 | 46 | ## i18n 47 | [[mounts]] 48 | source = "node_modules/@hyas/doks-core/i18n" 49 | target = "i18n" 50 | 51 | [[mounts]] 52 | source = "i18n" 53 | target = "i18n" 54 | 55 | ## layouts 56 | [[mounts]] 57 | source = "node_modules/@hyas/core/layouts" 58 | target = "layouts" 59 | 60 | [[mounts]] 61 | source = "node_modules/@hyas/seo/layouts" 62 | target = "layouts" 63 | 64 | [[mounts]] 65 | source = "node_modules/@hyas/images/layouts" 66 | target = "layouts" 67 | 68 | [[mounts]] 69 | source = "node_modules/@hyas/doks-core/layouts" 70 | target = "layouts" 71 | 72 | [[mounts]] 73 | source = "node_modules/@hyas/inline-svg/layouts" 74 | target = "layouts" 75 | 76 | [[mounts]] 77 | source = "layouts" 78 | target = "layouts" 79 | 80 | ## static 81 | [[mounts]] 82 | source = "node_modules/@hyas/doks-core/static" 83 | target = "static" 84 | 85 | [[mounts]] 86 | source = "static" 87 | target = "static" -------------------------------------------------------------------------------- /docs/config/_default/params.toml: -------------------------------------------------------------------------------- 1 | # Hugo 2 | title = "Unity Geometry Sequence Player" 3 | description = "This package allows you to playback large pointcloud and mesh sequences in the Unity Engine." 4 | images = ["cover.png"] 5 | 6 | # mainSections 7 | mainSections = ["docs"] 8 | 9 | [social] 10 | twitter = "getdoks" 11 | 12 | # Doks (@hyas/doks-core) 13 | [doks] 14 | # Color mode 15 | colorMode = "dark" # auto (default), light or dark 16 | colorModeToggler = true # true (default) or false (this setting is only relevant when colorMode = auto) 17 | 18 | # Navbar 19 | navbarSticky = true # true (default) or false 20 | containerBreakpoint = "lg" # "", "sm", "md", "lg" (default), "xl", "xxl", or "fluid" 21 | 22 | ## Button 23 | navBarButton = false # false (default) or true 24 | navBarButtonUrl = "/docs/prologue/introduction/" 25 | navBarButtonText = "Get started" 26 | 27 | # FlexSearch 28 | flexSearch = true # true (default) or false 29 | searchExclKinds = [] # list of page kinds to exclude from search indexing (e.g. ["home", "taxonomy", "term"] ) 30 | searchExclTypes = [] # list of content types to exclude from search indexing (e.g. ["blog", "docs", "legal", "contributors", "categories"]) 31 | showSearch = [] # [] (all pages, default) or homepage (optionally) and list of sections (e.g. ["homepage", "blog", "guides"]) 32 | indexSummary = false # true or false (default); whether to index only the `.Summary` instead of the full `.Content`; limits the respective JSON field size and thus increases loading time 33 | 34 | ## Search results 35 | showDate = false # false (default) or true 36 | showSummary = true # true (default) or false 37 | searchLimit = 99 # 0 (no limit, default) or natural number 38 | 39 | # Global alert 40 | alert = false # false (default) or true 41 | alertDismissable = true # true (default) or false 42 | 43 | # Bootstrap 44 | bootstrapJavascript = false # false (default) or true 45 | 46 | # Nav 47 | sectionNav = ["docs"] # ["docs"] (default) or list of sections (e.g. ["docs", "guides"]) 48 | toTopButton = false # false (default) or true 49 | breadcrumbTrail = false # false (default) or true 50 | headlineHash = true # true (default) or false 51 | scrollSpy = true # true (default) or false 52 | 53 | # Multilingual 54 | multilingualMode = false # false (default) or true 55 | showMissingLanguages = true # whether or not to show untranslated languages in the language menu; true (default) or false 56 | 57 | # Versioning 58 | docsVersioning = false # false (default) or true 59 | docsVersion = "1.0" 60 | 61 | # UX 62 | headerBar = false # true (default) or false 63 | backgroundDots = true # true (default) or false 64 | 65 | # Homepage 66 | sectionFooter = false # false (default) or true 67 | 68 | # Blog 69 | relatedPosts = false # false (default) or true 70 | imageList = true # true (default) or false 71 | imageSingle = true # true (default) or false 72 | 73 | # Repository 74 | editPage = false # false (default) or true 75 | lastMod = false # false (default) or true 76 | repoHost = "GitHub" # GitHub (default), Gitea, GitLab, Bitbucket, or BitbucketServer 77 | docsRepo = "https://github.com/h-enk/doks" 78 | docsRepoBranch = "main" # main (default), master, or 79 | docsRepoSubPath = "" # "" (none, default) or 80 | 81 | # SCSS colors 82 | # backGround = "yellowgreen" 83 | ## Dark theme 84 | # textDark = "#dee2e6" # "#dee2e6" (default), "#dee2e6" (orignal), or custom color 85 | # accentDark = "#5d2f86" # "#5d2f86" (default), "#5d2f86" (original), or custom color 86 | ## Light theme 87 | # textLight = "#1d2d35" # "#1d2d35" (default), "#1d2d35" (orignal), or custom color 88 | # accentLight = "#8ed6fb" # "#8ed6fb" (default), "#8ed6fb" (orignal), or custom color 89 | 90 | [doks.menu] 91 | [doks.menu.section] 92 | auto = true # true (default) or false 93 | collapsibleSidebar = true # true (default) or false 94 | 95 | # Debug 96 | [render_hooks.image] 97 | errorLevel = 'ignore' # ignore (default), warning, or error (fails the build) 98 | 99 | [render_hooks.link] 100 | errorLevel = 'ignore' # ignore (default), warning, or error (fails the build) 101 | highlightBroken = false # true or false (default) 102 | 103 | # Images (@hyas/images) 104 | [hyas_images] 105 | [hyas_images.defaults] 106 | decoding = "async" # sync, async, or auto (default) 107 | fetchpriority = "auto" # high, low, or auto (default) 108 | loading = "lazy" # eager or lazy (default) 109 | widths = [480, 576, 768, 1025, 1200, 1440] # [640, 768, 1024, 1366, 1600, 1920] for example 110 | sizes = "auto" # 100vw (default), 75vw, or auto for example 111 | process = "" # "fill 1600x900" or "fill 2100x900" for example 112 | lqip = "16x webp q20" # "16x webp q20" or "21x webp q20" for example 113 | 114 | # Inline SVG (@hyas/inline-svg) 115 | [inline_svg] 116 | iconSetDir = "tabler-icons" # "tabler-icons" (default) 117 | 118 | # SEO (@hyas/seo) 119 | [seo] 120 | [seo.title] 121 | separator = " | " 122 | suffix = "" 123 | [seo.favicons] 124 | sizes = [] 125 | icon = "favicon.png" # favicon.png (default) 126 | svgIcon = "favicon.svg" # favicon.svg (default) 127 | maskIcon = "mask-icon.svg" # mask-icon.svg (default) 128 | maskIconColor = "white" # white (default) 129 | [seo.schemas] 130 | type = "Person" # Organization (default) or Person 131 | logo = "favicon-512x512.png" # Logo of Organization — favicon-512x512.png (default) 132 | name = "Christopher Remde" # Name of Organization or Person 133 | sameAs = ["https://chrisrem.de/", "https://bsky.app/profile/rattix.bsky.social", "https://github.com/ChristopherRemde"] # E.g. ["https://github.com/gethyas/hyas", "https://fosstodon.org/@hyas"] 134 | images = ["cover.png"] # ["cover.png"] (default) 135 | article = [] # Article sections 136 | newsArticle = [] # NewsArticle sections 137 | blogPosting = ["blog"] # BlogPosting sections 138 | product = [] # Product sections -------------------------------------------------------------------------------- /docs/config/next/hugo.toml: -------------------------------------------------------------------------------- 1 | canonifyURLs = true 2 | baseurl = "https://buildingvolumes.github.io/Unity_Geometry_Sequence_Player/" -------------------------------------------------------------------------------- /docs/config/postcss.config.js: -------------------------------------------------------------------------------- 1 | const autoprefixer = require("autoprefixer"); 2 | const purgecss = require("@fullhuman/postcss-purgecss"); 3 | const whitelister = require("purgecss-whitelister"); 4 | 5 | module.exports = { 6 | plugins: [ 7 | autoprefixer(), 8 | purgecss({ 9 | content: ["./hugo_stats.json"], 10 | extractors: [ 11 | { 12 | extractor: (content) => { 13 | const els = JSON.parse(content).htmlElements; 14 | return els.tags.concat(els.classes, els.ids); 15 | }, 16 | extensions: ["json"] 17 | } 18 | ], 19 | dynamicAttributes: [ 20 | "aria-expanded", 21 | "data-bs-popper", 22 | "data-bs-target", 23 | "data-bs-theme", 24 | "data-dark-mode", 25 | "data-global-alert", 26 | "data-pane", // tabs.js 27 | "data-popper-placement", 28 | "data-sizes", 29 | "data-toggle-tab", // tabs.js 30 | "id", 31 | "size", 32 | "type" 33 | ], 34 | safelist: [ 35 | "active", 36 | "btn-clipboard", // clipboards.js 37 | "clipboard", // clipboards.js 38 | "disabled", 39 | "code", 40 | "hidden", 41 | "modal-backdrop", // search-modal.js 42 | "selected", // search-modal.js 43 | "show", 44 | "img-fluid", 45 | "blur-up", 46 | "lazyload", 47 | "lazyloaded", 48 | "alert-link", 49 | "container-fw ", 50 | "container-lg", 51 | "container-fluid", 52 | "offcanvas-backdrop", 53 | "figcaption", 54 | "dt", 55 | "dd", 56 | "showing", 57 | "hiding", 58 | "page-item", 59 | "page-link", 60 | ...whitelister(["./assets/scss/**/*.scss", "./node_modules/@hyas/doks-core/assets/scss/components/_code.scss", "./node_modules/@hyas/doks-core/assets/scss/components/_expressive-code.scss", "./node_modules/@hyas/doks-core/assets/scss/common/_syntax.scss"]) 61 | ] 62 | }) 63 | ] 64 | }; -------------------------------------------------------------------------------- /docs/config/production/hugo.toml: -------------------------------------------------------------------------------- 1 | canonifyURLs = false 2 | baseurl = "https://buildingvolumes.github.io/Unity_Geometry_Sequence_Player/" -------------------------------------------------------------------------------- /docs/content/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Unity Geometry Sequence Player" 3 | description: "Pointcloud and mesh sequence playback for the Unity game engine." 4 | lead: "Pointcloud and mesh sequence playback for the Unity game engine." 5 | date: 2020-10-06T08:47:36+00:00 6 | lastmod: 2020-10-06T08:47:36+00:00 7 | draft: false 8 | images: [] 9 | --- 10 | -------------------------------------------------------------------------------- /docs/content/docs/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "autoplay", 4 | "datapath", 5 | "pointcloud" 6 | ] 7 | } -------------------------------------------------------------------------------- /docs/content/docs/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Docs" 3 | description: "Plugin Docs" 4 | lead: "" 5 | date: 2020-10-06T08:48:23+00:00 6 | lastmod: 2020-10-06T08:48:23+00:00 7 | draft: false 8 | images: [] 9 | --- 10 | -------------------------------------------------------------------------------- /docs/content/docs/about/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "About" 3 | description: "GSS About" 4 | lead: "" 5 | date: 2020-10-06T08:48:45+00:00 6 | lastmod: 2020-10-06T08:48:45+00:00 7 | draft: false 8 | images: [] 9 | weight: 400 10 | --- 11 | -------------------------------------------------------------------------------- /docs/content/docs/about/building-volumes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Building Volumes" 3 | description: "Our initiave for open-source volumetric video creation" 4 | lead: "Our initiave for open-source volumetric video creation" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "about" 12 | weight: 410 13 | toc: true 14 | --- 15 | 16 | BuildingVolumes is a global initiative by creatives, software engineers, teachers, and artists with the aim to create a free and open-source volumetric capture and playback pipeline. The initative is led by [Ciny Poremba](https://www2.ocadu.ca/bio/cindy-poremba) and [Andrew Hogue](https://ontariotechu.ca/experts/fbit/andrew-hogue.php). 17 | 18 | We want to create free and sustainable tools for small artists, creatives, filmographers, game artists and everyone interested in the creation of Volumetric Video. 19 | 20 | If you want to join us, or get in touch, [please head over to our community discord 🙂](https://discord.gg/BvQdJdJqu6) 21 | -------------------------------------------------------------------------------- /docs/content/docs/about/changelog.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Changelog" 3 | description: "All releases" 4 | lead: "All releases" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "about" 12 | weight: 420 13 | toc: true 14 | --- 15 | 16 | ### Version 1.1.0 17 | 18 | Added features: 19 | 20 | - Huge overhaul of the playback system. Performance is enhanced by up to 10x-20x. 21 | - Pointcloud geometry shaders have been replaced by a compute shader system 22 | - Mac, Iphone, Ipad and VisionOS support 23 | - Compressed .astc textures for mobile devices are now supported 24 | - Converter Tool supports reduction of pointcloud sizes 25 | - More reliable playback. Lags, or low framerates don't affect the playback speed anymore 26 | - Added frame debugging/performance tools 27 | - URP and HDRP render pipelines support 28 | - Unity 6 support 29 | - The package is now available on the Unity Asset Store 🙂 30 | 31 | Fixed Issues: 32 | 33 | [#7 "visionOS Support"](https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player/issues/7) 34 | 35 | [#5 "Pointcloud shader not working on Metal/OpenGL](https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player/issues/5) 36 | 37 | ### Version 1.0.3 38 | 39 | Added features: 40 | 41 | - Thumbnails will now show when adding a sequence via the editor 42 | - Looping is now much smoother and should not lag anymore 43 | - Added Playback Events that can be used to see when a scene has been loaded, started playing ect. 44 | - Added more refined media loading via script API 45 | - Added Stop functionality to the player 46 | 47 | ### Version 1.0.2 48 | 49 | Added features: 50 | 51 | - A parent transform for the streamed mesh can be set 52 | - Pointcloud meshes are now mirrorable 53 | - Added better documentation in some parts 54 | - Added Unity Test Project to the main repository 55 | 56 | Fixed Issues: 57 | 58 | [#6 "The transform of Streamed Meshes should be settable before going into play mode"](https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player/issues/6) 59 | 60 | [#3 "Meshes/Pointclouds are mirrored on the X-Axis"](https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player/issues/3) 61 | 62 | Releases: 63 | [Package release v1.0.2](https://github.com/BuildingVolumes/Geometry_Sequence_Player_Package/releases/tag/v1.0.2) 64 | 65 | ### Version 1.0.1 (Package only) 66 | 67 | Fixed Issues: 68 | 69 | [#1 "Cannot build as AssetDatabase cannot be used outside the editor"](https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player/issues/1) 70 | 71 | [#2 "Android /WebGL cannot load data from StreamingAssets Path"](https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player/issues/2) 72 | 73 | Releases: 74 | [Package release v1.0.1](https://github.com/BuildingVolumes/Geometry_Sequence_Player_Package/releases/tag/v1.0.1) 75 | 76 | ### Version 1.0.0 77 | 78 | Initial Release, this plugin supersedes the [Pointcloud Player Package](https://github.com/ExperimentalSurgery/Unity_Geometry_Sequence_Player) 79 | 80 | [Converter release v1.0.0](https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player/releases/tag/v1.0.0) 81 | [Package release v1.0.1](https://github.com/BuildingVolumes/Geometry_Sequence_Streaming_Package/releases/tag/v1.0.0) 82 | -------------------------------------------------------------------------------- /docs/content/docs/about/license-credits.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "License and credits" 3 | description: "" 4 | lead: "" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "about" 12 | weight: 430 13 | toc: true 14 | --- 15 | 16 | ## Open source license 17 | 18 | The open source Unity package, the Converter tool, the example data and this website is licensed under the [***Creative Commons Attribution-NonCommercial 4.0 International.***](https://creativecommons.org/licenses/by-nc/4.0/) 19 | 20 | **If you use this package in a non-commercial project, please be sure to credit us properly with the following text:** 21 | 22 | > Geometry Sequence playback is provided by the 'Geometry Sequence Player' package for Unity: tinyurl.cc/GSGIT © Christopher Remde 23 | 24 | ## Unity Asset Store license 25 | 26 | The Unity Asset Store version of the package is licensed under the [Unity Standard Asset Store license](https://unity.com/legal/as-terms) 27 | 28 | ## Credits 29 | 30 | The sequences in the showreel, from the landing page and on Github, were created by: 31 | 32 | ["A Windy Day2 by Loic Norgeot](https://sketchfab.com/3d-models/a-windy-day-fb78f4cc938144e6902dd5cff354d525) 33 | 34 | ["Galactic Incident2 by Loic Norgeot](https://sketchfab.com/3d-models/galactic-incident-397b266af9604b9fbf0a4e5446cf864b) 35 | -------------------------------------------------------------------------------- /docs/content/docs/help/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Help" 3 | description: "GSS Help" 4 | lead: "" 5 | date: 2020-10-06T08:49:15+00:00 6 | lastmod: 2020-10-06T08:49:15+00:00 7 | draft: false 8 | images: [] 9 | weight: 200 10 | --- 11 | -------------------------------------------------------------------------------- /docs/content/docs/help/contact.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Contact" 3 | description: "" 4 | lead: "" 5 | date: 2020-11-12T13:26:54+01:00 6 | lastmod: 2020-11-12T13:26:54+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "help" 12 | weight: 320 13 | toc: true 14 | --- 15 | 16 | > 🆘 Do you need help with the package? [Please see here](/Unity_Geometry_Sequence_Player/docs/help/support/) 17 | 18 | For anything besides support, like Pull Requests, collaborations, or special feature requests, please contact us here: 19 | 20 | 📧 [Send a mail to the author (Christopher Remde):](mailto:hey@chrisrem.de) hey [at] chrisrem.de 21 | 22 | 👾 [Join us in our BuildingVolumes community discord server](https://discord.gg/BvQdJdJqu6) 23 | -------------------------------------------------------------------------------- /docs/content/docs/help/issues.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Support" 3 | description: "" 4 | lead: "" 5 | date: 2020-10-06T08:49:31+00:00 6 | lastmod: 2020-10-06T08:49:31+00:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "help" 12 | weight: 310 13 | toc: true 14 | --- 15 | 16 | #### ⭐ Priority support (Unity Asset Store version) 17 | 18 | If you've bought the package on the Unity Asset Store, you can always contact us to get help quickly! Please click on the **Get Support** button inside the **Geometry Sequence Player component** to see how to contact us! ![Support](support.png) 19 | 20 | #### General support 21 | 22 | For the open-source and free version, please feel free to ask anything in our: 23 | 24 | [Unity Forums thread](https://forum.unity.com/threads/released-geometry-sequence-streaming.1453765/). 25 | 26 | Bugs and issues can also be reported [here in the main Github repository](https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player/issues) 🪲 27 | 28 | >💡 Do a quick search first, if your issue has already been reported. If not, please open a new one, and we'll get back to you! 29 | -------------------------------------------------------------------------------- /docs/content/docs/help/support.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/help/support.png -------------------------------------------------------------------------------- /docs/content/docs/quickstart/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Quickstart" 3 | description: "GSS Quickstart" 4 | lead: "" 5 | date: 2020-10-06T08:48:45+00:00 6 | lastmod: 2020-10-06T08:48:45+00:00 7 | draft: false 8 | images: [] 9 | weight: 10 10 | --- 11 | -------------------------------------------------------------------------------- /docs/content/docs/quickstart/own-data-usage/Converter_Start_Threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/quickstart/own-data-usage/Converter_Start_Threads.png -------------------------------------------------------------------------------- /docs/content/docs/quickstart/own-data-usage/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Use your own sequences" 3 | description: "Summary of how to get your own sequences into Unity" 4 | lead: "Summary of how to get your own sequences into Unity" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "quickstart" 12 | weight: 30 13 | toc: true 14 | --- 15 | 16 | > ⤴️ Sequences that were created before package version 1.1.0 are not compatible with the current package. Please re-convert these files with the latest Converter. 17 | 18 | ## Convert your sequence 19 | 20 | 1. Ensure that in your input sequence, each frame file is numbered in an ascending order 21 | 22 | 2. Almost all commonly used pointcloud (.ply, .xyz, ect), mesh (.fbx, .obj, .gltf, etc) and image (.jpeg .png .tga, ect.) formats can be used as source material. Ensure that your sequence is in such a format 23 | 24 | 3. Download the latest converter [binaries for windows here](https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player/releases) (The file named Geometry_Sequence_Converter_Win64.zip) 25 | 26 | 4. Unzip, open the converter, and set the **input folder** to the folder containing your sequence. You can optionally set an output folder, otherwise a new folder will be automatically created. Click on **Start Conversion**. 27 | 28 | ![The converter](Converter_Start_Threads.png) 29 | 30 | [More infos](/Unity_Geometry_Sequence_Player/docs/tutorials/preparing-your-sequences/) 31 | 32 | ## Playback your sequence 33 | 34 | 1. Open your project and scene in Unity. 35 | 36 | 2. Add a **GeometrySequencePlayer** component to any gameobject. 37 | 38 | 3. Click on **Open Sequence** and open the ***sequence.json*** file contained in the converted sequence folder (the output folder). 39 | 40 | 4. Click on Play in Unity. 41 | 42 | [More infos](/Unity_Geometry_Sequence_Player/docs/tutorials/playback/) 43 | -------------------------------------------------------------------------------- /docs/content/docs/quickstart/quick-start/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Quick Start" 3 | description: "One page summary of how to playback your first sequence" 4 | lead: "One page summary of how to playback your first sequence" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "quickstart" 12 | weight: 20 13 | toc: true 14 | --- 15 | 16 | > 👉 The package has recently been renamed from _Unity Geometry Sequence Streamer_ to _Unity Geometry Sequence Player_. 17 | If you still have the old version, we recommend to remove it and then reinstall the new version 18 | 19 | ## Install the package 20 | 21 | > 👇 For installation of the Unity Store Version, see section below 22 | 23 | 1. Open your Unity project, and in the **toolbar** go to **Windows –> Package Manager**. 24 | 25 | 2. In the **Package Manager window**, go into the upper left corner and click on the **"+" Button –> Add package from Git URL**. 26 | 27 | 3. Copy and paste the following URL into the field and click **Add**: `https://github.com/BuildingVolumes/Geometry_Sequence_Player_Package.git` 28 | 29 | [More info](/Unity_Geometry_Sequence_Player/docs/tutorials/installation/) 30 | 31 | ### Install the package (From Unity Store) 32 | 33 | 1. Open your Unity project, and in the **toolbar** go to **Windows –> Package Manager**. 34 | 35 | 2. In the **Package Manager window**, go to **My Assets** and select the **Geometry Sequence Player** package. 36 | 37 | 3. Click on the **Install** Button. 38 | 39 | [More info](/Unity_Geometry_Sequence_Player/docs/tutorials/installation/#package-installation-unity-store-version) 40 | 41 | ## Play a sample sequence 42 | 43 | 1. Open the Package Manager (Window -> Package Manager) 44 | 45 | 2. Select the **In Project** category on the left side. Select the **Geometry Sequence Player package** and open the **Sample foldout**. Then click on **Import**. The samples are now being imported into your projects asset folder. 46 | 47 | 3. In your assets folder, go to `Samples -> Geometry Sequence Player -> 1.X.X -> Streaming Samples` and open the Sample scene **01_Basic_Example** 48 | 49 | 3. Click on the **"Play"-Button** in Unity. You should now see an animated blob. 50 | 51 | ![Blob](https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExYmVvbXVpazdyanR0dmxyNDhjazNkM3owcnV3NHlwMWFseDRpemoyeiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/XuN1lmgwobrU8eWgsb/giphy.gif) 52 | 53 | [More info](/Unity_Geometry_Sequence_Player/docs/tutorials/samples/) 54 | -------------------------------------------------------------------------------- /docs/content/docs/quickstart/quick-start/package_manager_git.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/quickstart/quick-start/package_manager_git.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Tutorials" 3 | description: "GSS Tutorials" 4 | lead: "" 5 | date: 2020-10-06T08:48:45+00:00 6 | lastmod: 2020-10-06T08:48:45+00:00 7 | draft: false 8 | images: [] 9 | weight: 100 10 | --- 11 | -------------------------------------------------------------------------------- /docs/content/docs/tutorials/distribution/create_streamingassets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/distribution/create_streamingassets.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/distribution/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Distribution & Platforms" 3 | description: "Build and playback on other devices" 4 | lead: "Build and playback on other devices" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "tutorials" 12 | weight: 170 13 | toc: true 14 | --- 15 | 16 | ## Build and ship 17 | 18 | If you intent to distribute your Application built with the Unity Geometry Sequence Player, you need to consider where you store your geometry sequence. 19 | In Unity, you need to store all assets loaded at runtime in a [**Streamingassets**](https://docs.unity3d.com/Manual/StreamingAssets.html) folder ([except for Android Builds](#android)), located inside of the Asset path root, and store all geometry sequences in there. This folder will be copied into your build as-is. 20 | 21 | 1. Inside of the Unity project view, go to the "Assets" folder and create a **Streamingsassets** folder there: 22 | 23 | ![Add Streamingassets folder in Assets directory](create_streamingassets.png) 24 | 25 | 2. Copy all your geometry sequences into this folder 26 | 27 | 3. In your Geometry Sequence Player, either set the sequence via **Open Sequence** and then choose the folder inside of your streamingassets path *or* set the **Path Relation** to **Relative to Streamingassets** and then enter the path to your sequence, relative to the Streamingassets folder: 28 | 29 | ![Set the streamingassets path relation and path](set_streamingassets_path.png) 30 | 31 | 4. Test your changes and path in play mode, then you can build and distribute your application as usual. 32 | 33 | ## Android 34 | 35 | On Android, the StreamingAssets path is a special case. Data stored into this path, will be compressed into the .apk and needs to be decompressed on load. For large files, like geometry sequences, this will make a noticeable impact on playback performance, therefore we don't support the Streamingassets path. On Android, you have to use the applications [**Persistent Data Path**](https://docs.unity3d.com/ScriptReference/Application-persistentDataPath.html). The persistent data path is a special path, reserved for application data on the device. Unlike the StreamingAssets path, Unity won't copy your files automatically to the persistent data path, instead, you have to **copy them manually**, or on distribution in the Play Store, let your application download them from a server. 36 | 37 | > ⚠️The persistent data path will only be generated on the applications first run on the device. So you need to run the application once, then copy the files and then run the application again, or let the app download the files onto the device before the Geometry Sequence Player runs. 38 | 39 | 1. Inside of your Geometry Sequence Player, set the **Path Relation** to **Relative to Persistent Data Path** and enter the relative path in which you later want to store your sequence, in this example we choose *"Sequence/MySequence"*. 40 | 41 | ![Set the persistent data path relation and path](set_persistentdata_path.png) 42 | 43 | 2. Build the android app, install it on your Android device and run it, then quit the app. The Geometry Sequence won't be playing at this point. 44 | 45 | 3. Connect your device to your PC via USB, enable File transfer and then go to the following path on the device: 46 | *"\Android\data\com.myCompanyName.myProductName\files"*. This is your applications **Persistent Data Path**. 47 | 48 | 4. Copy your sequence files in the same relative path you set in the Geometry Sequence Player. In our example, the geometry files would be copied into this folder *"\Android\data\com.myCompanyName.myProductName\files\Sequence\MySequence"* 49 | 50 | 5. Now run your app again, you should now see the sequence streaming successfully. 51 | 52 | ## Apple Vision Pro 53 | 54 | Unity Apps can run in three distinct modes on the Apple Vision Pro: A **flat 2D mode**, where apps appear on a virtual screen, the **bounded mode**, and the **immersive mode**. 55 | All modes are supported by this plugin. While the **flat mode** runs like an IPhone or IPad application, there are stark differences between the **bounded** and **immersive** mode. 56 | We generally recommended to use the **immersive** mode whenever you can, due to it's much higher performance capabilities. 57 | 58 | ### Bounded mode 59 | 60 | The bounded mode lets the users run an app along other apps, inside a limited volume, comparable to a 3D window. Apps running in this mode face many restrictions, including not being able to render their content natively. Unity needs to translate all meshes, textures, materials and shaders to RealityKit equivalents, this is called the **PolySpatial** pipeline. Due to these restrictions, playback performance suffers and works only for smaller sequences. Pointclouds sequences should stay under **50.000 points per frame**, mesh sequences under **30.000 polygons per frame**, and textures at or under **2048x2048 texture resolution** per frame. Additionally, there might be a performance ditch when the sequence starts, especially for pointcloud sequences. These are gradually streamed in to not overload the system. 61 | 62 | Bounded mode should be detected automatically by the package. If it does not work and you get playback errors while running on the device, you need to have a volume camera component inside your scene. 63 | 64 | > ☝️ Due to some lower level code in this package, the playback might not work correctly in the AVP simulator 65 | 66 | ### Immersive mode 67 | 68 | Immersive mode lets the application take over the full rendering on the Apple Vision Pro, which is much more comparable to how apps are run on other headsets, such as the Meta Quest. While no other content than the application can exist in the same space, this mode **increases performance** by a huge margin compared to the bounded mode. We were able to run sequences with 1.5 millions points per frame and more! Please ensure that **no volume camera exists** in your scene if you use this mode, otherwise the bounded rendering path might get erroneously activated by the package. 69 | -------------------------------------------------------------------------------- /docs/content/docs/tutorials/distribution/set_persistentdata_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/distribution/set_persistentdata_path.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/distribution/set_streamingassets_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/distribution/set_streamingassets_path.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/editor-playback/editor_playback_add_component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/editor-playback/editor_playback_add_component.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/editor-playback/editor_playback_fps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/editor-playback/editor_playback_fps.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/editor-playback/editor_playback_gameobject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/editor-playback/editor_playback_gameobject.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/editor-playback/editor_playback_open_sequence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/editor-playback/editor_playback_open_sequence.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/editor-playback/editor_playback_player_component.afphoto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/editor-playback/editor_playback_player_component.afphoto -------------------------------------------------------------------------------- /docs/content/docs/tutorials/editor-playback/editor_playback_player_component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/editor-playback/editor_playback_player_component.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/editor-playback/editor_playback_stream_component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/editor-playback/editor_playback_stream_component.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/editor-playback/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Playback" 3 | description: "Fast playback of your sequences in the editor" 4 | lead: "Easy and quick playback of your sequences" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "tutorials" 12 | weight: 140 13 | toc: true 14 | --- 15 | 16 | 17 | ## Intro 18 | 19 | After you've prepared and converted your sequence, you can now play them back in Unity! This section shows you how to use the streaming and playback components inside of the editor and how to setup a simple playback scene. 20 | 21 | > 💡 All of the features explained here in this tutorial can also be found in the Sample Scene [01_Basic_Sample](/Unity_Geometry_Sequence_Player/docs/tutorials/samples/#sample-01-basic-playback) 22 | 23 | ## Playback 24 | 25 | 1. Open your Unity scene in which you want to implement the playback. We recommend that you create a new Gameobject, onto which you can attach the playback components, but you can use any Gameobject of your choice. 26 | ![New gameobject](editor_playback_gameobject.png) 27 | 28 | 2. In the inspector, click on **"Add Component"**, search for **"Geometry Sequence Player"** and add this component. 29 | ![Add component](editor_playback_add_component.png) 30 | 31 | 3. You should now see a Geometry Sequence Player and Geometry Sequence Stream component attached to your Gameobject. Click on **"Open Sequence"** in the Player script, and open the **sequence.json** from the folder in which your converted sequence is stored. It is strongly recommended to store your sequence on the fastest drive available, preferably an SSD. 32 | > ⚠️ When you're just testing, or you don't intent to distribute your app to other PCs than your own, it's fine to store the sequence anywhere on disk. However, if you plan to distribute your application, [please take a look here](/Unity_Geometry_Sequence_Player/docs/tutorials/distribution-platforms/)! 33 | 34 | ![Open Sequence](editor_playback_open_sequence.png) 35 | 36 | 4. The first frame of your sequence should now appear in the scene / game view. If you can't see anything, try pressing ***F*** to focus on your sequence. Sometimes, it might be scaled surprisingly small or large. 37 | 38 | 5. Set the **playback framerate** of your sequence. The framerate is not automatically detected, so you need to set it every time. The default is 30 FPS. 39 | ![Set FPS](editor_playback_fps.png) 40 | 41 | 6. Click Play. Your sequence should automatically start playing back once the play mode has been entered! 42 | 43 | ## Controls & Settings explained 44 | 45 | Detailed explanation of all the settings and controls inside of the player and stream scripts 46 | 47 | ### Player component 48 | 49 | ![All player settings](editor_playback_player_component.png) 50 | 51 | **Path relation:** Choose if your path to the sequence is relative to the [Data path](https://docs.unity3d.com/ScriptReference/Application-dataPath.html), [Persistent Data Path](https://docs.unity3d.com/ScriptReference/Application-persistentDataPath.html), [Streaming Assets path](https://docs.unity3d.com/Manual/StreamingAssets.html), or is an **absolute path**. This gets set automatically if you open a sequence with the **Open Sequence** button. If you enter the path yourself, you need to set this field manually! 52 | 53 | **Path to sequence:** Enter your relative or absolute path to the folder containing the sequence 54 | 55 | **Open Sequence / Clear Sequence:** Use the file explorer to choose the folder where your converted sequence is located, or clear the path from the player. 56 | 57 | **Target Playback FPS:** This is the framerate at which you want to playback your sequence. 58 | 59 | **Play at Start:** Should the playback of the sequence start directly when the scene is started/you entered play mode? If deactivated, you need to start the sequence manually via script or the editor controls. 60 | 61 | **Loop playback:** If activated, repeats the animation indefinitely 62 | 63 | **Events:** With this Unity Event control, you can assign scripts that should receive events from the player. [More on Events](/Unity_Geometry_Sequence_Player/docs/tutorials/scripting-api/#events) 64 | 65 | **Playback controls:** Use the slider to skip to any time in the sequence, just like in a regular video player. On the right, you can see at which frame the playback is right now, and how many frames there are in total in the sequence. Use the **|<** Button to go back to the start of the sequence, the **<<** and **>>** to scroll forwards/backwards for a few frames, the **Stop** Button to stop playback and the **Play/Pause** button to pause/resume the playback. These controls are only available in the editor. 66 | 67 | ### Stream component 68 | 69 | ![All player settings](editor_playback_stream_component.png) 70 | 71 | **Pointcloud Settings:** These settings only affect pointcloud based sequences. 72 | 73 | - **Point Size:** Set the size of the individual points with the modifier (in Unity units). 74 | - **Point Type:** Set the shape of the points. They can either be displayed as **Quads**, **Circles** or **Splats** (experimental, not recommended)**. 75 | 76 | **Mesh Settings:** These settings only affect mesh based sequences. 77 | 78 | - **Mesh Material:** Set an alternative material for your mesh sequence. If left empty, a default unlit material will be used. 79 | - **Material slots:** Set to which material slots the texture of your sequence should apply. Options are **Main texture**, **Emissive** and **Detail** 80 | - **Custom texture slots:** If the material should apply to other slots, add them here. Add the name of the texture slot as defined in the shader. 81 | 82 | **Buffer options:** Advanced settings for optimizing the performance, especially in regard to the playback buffer. 83 | 84 | - **Buffer Size:** The higher the buffer size, the more frames are preloaded. Increasing this value can improve playback performance, at the cost of higher memory usage. 85 | - **Use All Threads:** All worker threads can be used by the streamer. If you use other scripts heavily dependent on the job system, you can try to disable this option to free some threads, at the cost of playback performance 86 | - **Thread Count:** If **Use all threads** is disabled, you can set the amount of threads used by the playback system here. More threads usually increase performance. 87 | 88 | **Frame Info:** Various performance metrics 89 | 90 | **Frame Debugger:** If your sequence doesn't perform well, or as expected, you can use the frame debugger to analyze the playback performance. 91 | 92 | - **Attach Debugger (Editor only):** Enable this option, to show the frame debugger on screen when the sequence is playing. Only works in the Editor 93 | - **Manually attach debugger:** You can optionally use the **GSFrameDebugger Prefab** found in the package files to manually place the frame debugger in your scene. Helpful in case you need to place it in the world space, or in your XR scenes. By setting this value, you attach the debugger to your sequence. 94 | -------------------------------------------------------------------------------- /docs/content/docs/tutorials/installation/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Installation" 3 | description: "Install the Unity package into your project" 4 | lead: "Install the Unity package into your project" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "tutorials" 12 | weight: 110 13 | toc: true 14 | --- 15 | 16 | > 👉 The package has recently been renamed from _Unity Geometry Sequence Streamer_ to _Unity Geometry Sequence Player_. 17 | If you still have the old version, we recommend to remove it and then reinstall the new version 18 | 19 | ## Package Installation 20 | 21 | > ⭐ For installation of the Unity Store Version, see section below 22 | 23 | 1. Open your Unity project, and in the toolbar, go to **Windows --> Package Manager** 24 | 25 | 2. In the Package Manager window, go into the upper left corner and click on the **"+" Button --> Add package from Git URL** ![Add package with git](package_manager_git.png) 26 | 27 | 3. Copy and paste the following URL and click **Add**: `https://github.com/BuildingVolumes/Geometry_Sequence_Player_Package.git` ![Installing a package](package_manager_add.png) 28 | 29 | 4. Unity now installs the package, and after a short time it should show up in your manager. Done! We strongly recommend that you also install the [Samples](/Unity_Geometry_Sequence_Player/docs/tutorials/unity-package-installation/#importing-the-samples) 30 | 31 | ## Package Installation (Unity Store Version) 32 | 33 | 1. Open your Unity project, and in the toolbar, go to **Windows --> Package Manager**. 34 | 35 | 2. In the Package Manager window, go to **My Assets**, select the **Geometry Sequence Player Package** and click on **Install** ![Select Unity Store Version](package_manager_install_storebought.png) 36 | 37 | 3. Unity now installs the package, and after a short time it should show up in your manager. Done! We strongly recommend that you also install the [Samples](/Unity_Geometry_Sequence_Player/docs/tutorials/samples) 38 | -------------------------------------------------------------------------------- /docs/content/docs/tutorials/installation/package_manager_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/installation/package_manager_add.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/installation/package_manager_git.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/installation/package_manager_git.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/installation/package_manager_install_storebought.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/installation/package_manager_install_storebought.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/prepare-data/Converter_Options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/prepare-data/Converter_Options.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/prepare-data/Converter_SelectFolder_newfolder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/prepare-data/Converter_SelectFolder_newfolder.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/prepare-data/Converter_SelectInput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/prepare-data/Converter_SelectInput.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/prepare-data/Converter_SelectOutput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/prepare-data/Converter_SelectOutput.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/prepare-data/Converter_Start_Threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/prepare-data/Converter_Start_Threads.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/prepare-data/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Preparing your sequences" 3 | description: "How to convert your own sequences into the right format" 4 | lead: "How to convert your own sequences into the right format" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "tutorials" 12 | weight: 130 13 | toc: true 14 | --- 15 | 16 | ## Intro 17 | 18 | To guarantee high realtime performance, the Geometry Sequence Player can only read sequences that are in a certain file format (.ply for meshes/pointclouds, .dds/.astc for textures). However, to support a broad spectrum of input formats and make the usage of this plugin as easy as possible, we provide a small converter tool which takes in almost all widely used mesh and image formats, and converts them into the correct format for the plugin. 19 | 20 | > 👉🏻 Even when your files are already in the .ply/.dds format, they might need to be run through the converter to be encoded correctly! 21 | > 22 | > ⤴️ Sequences that were created before package version 1.1.0 are not compatible with the current package. Please re-convert these files with the latest Converter 23 | 24 | ## Preparation for the conversion 25 | 26 | ### Naming 27 | 28 | In general, you should export your animated mesh or pointcloud sequences from your tool of choice in a way, that each frame of it is saved in a single, independent file. The files should be numbered in some kind of ascending order. This applies to both your models and also textures, if you have any. Save all files into one folder, without subfolders. Example: 29 | 30 | ```txt 31 | frame_1.obj 32 | frame_2.obj 33 | frame_3.obj 34 | ... 35 | 36 | frame_00001.obj 37 | frame_00002.obj 38 | frame_00003.obj 39 | ... 40 | 41 | 1_image.png 42 | 2_image.png 43 | 3_image.png 44 | ... 45 | ``` 46 | 47 | Ensure that the matching images and models for each frame have the same number! 48 | 49 | ### Supported file formats 50 | 51 | The format in which you export your sequence shouldn't matter too much, as a wide variety of the most commonly used formats is supported. 52 | These are all supported file formats for pointclouds/meshes: 53 | 54 | ```txt 55 | .3ds .asc .bre .ctm .dae .e57 .es .fbx .glb .gltf .obj .off .pdb .ply .pts .ptx .qobj .stl .tri vmi .wrl .x3d .xyz 56 | ``` 57 | 58 | And for images: 59 | 60 | ```txt 61 | .jpg .png .tga 62 | ``` 63 | 64 | ## Converting your sequences 65 | 66 | ### Installing the converter 67 | 68 | 1. Download the latest version of the [converter tool from here](https://github.com/BuildingVolumes/Unity_Geometry_Sequence_Player/releases). (File named "Geometry_Sequence_Converter_Win64.zip") Currently only windows is supported. 69 | 2. Unpack the file 70 | 3. Open the converter. Go into the unpacked folder and open "GeometrySequenceConverter.exe". Windows might throw a warning that it prevented the app from running, in this case click on "Run anyway" or "More info" and then "Run anyway". 71 | 72 | ### Using the converter 73 | 74 | 1. Click on ***Select Input Directory*** and select the folder containing the files. ![Converter Select Input](Converter_SelectInput.png) 75 | 76 | 2. You can now optionally choose an output directory. If you don't choose one, a folder named *converted* will be created inside your sequence directory. ![Converter Select Drive](Converter_SelectOutput.png) 77 | 78 | 3. The converter provides some settings which can be used to modify the sequence: ![Converter Select Input](Converter_Options.png) 79 | 80 | - **Generate textures for desktop devices (DDS):** This converts the textures into a format for desktop GPUs. Recommended to leave on, even when you only build for mobile devices, otherwise textures won't show up in the Unity editor. 81 | - **Generate textures for mobile devices (ASTC):** If you plan to distribute your application on mobile devices (Android, IPhone, Meta Quest, Apple Vision Pro) and use textured meshes, you need to also generate .astc textures. You only need to transfer the .astc textures to your device, but not the .dds textures. 82 | - **Convert to SRGB profile:** Activate when your textures look noticably darker / brighter after the conversion 83 | - **Decimate Pointcloud:** You can downsize your pointcloud sequence with this option. The value determines the percentage of points left after conversion. E.g. setting the value to 30% will decrease the points of the sequence by 70%. 84 | 85 | 4. When you've set your input/output folders, click on ***Start Conversion***. You can optionally choose the amount of threads used for the conversion, which might come in handy for heavy/large sequences. ![Converter Select Drive](Converter_Start_Threads.png) 86 | 87 | 5. The converter will now process your files and show a progress bar. If you want to cancel the process, click on ***Cancel***. Cancelling might take a bit of time. When the process is done, you'll have the converted sequence inside of the output folder. 88 | 89 | ## For developers: Format specification 90 | 91 | If you want to export your data into the correct format directly, without using the converter, you can do so! The format used here is not proprietory, but uses the open [*Stanford Polygon File Format* (.ply)](http://paulbourke.net/dataformats/ply/ ) for meshes and pointclouds and the [*DirectDraw Surface* (.dds)*](https://en.wikipedia.org/wiki/DirectDraw_Surface), as well as [*Adaptive Scalable texture compression*](https://en.wikipedia.org/wiki/Adaptive_scalable_texture_compression) file format for textures/images. However, all formats allow a large variety of encoding settings, and the Geometry Sequence Player expects a special encoding. Additionally, the Player needs to be supplied with a ***sequence.json*** file, which contains metadata about the sequence. The following sections assume that you are a bit familiar with all formats. 92 | 93 | ### Pointcloud .ply files 94 | 95 | For .ply files containing pointclouds, use the normal **little endian binary** .ply standard, but be sure to encode the **vertex positions as 32-bit floats** (not doubles), and use the **vertex colors as uchar RGBA**. You always need to provide the red, green, blue and alpha channel, even when your sequence doesn't use alpha values or colors at all. The alpha channel isn't used in the plugin right now, but it allows for faster file reads, as RGBA is the native Unity vertex color format. Don't include any vertex indices! Here is an example of how the header of a ply looks that is correctly formatted: 96 | 97 | ```ply 98 | ply 99 | format binary_little_endian 1.0 100 | comment How the header of a correctly formated .ply file with a pointcloud looks like 101 | element vertex 50000 102 | property float x 103 | property float y 104 | property float z 105 | property uchar red 106 | property uchar green 107 | property uchar blue 108 | property uchar alpha 109 | end_header 110 | ``` 111 | 112 | As an example for how the data for a a single vertex (line) could look like this. Three XZY-Float values are followed by four RGBA byte/uchar values: 113 | 114 | ```ply 115 | 0.323434 0.55133 1.44322 255 255 255 0 116 | ``` 117 | 118 | ### Mesh .ply files 119 | 120 | For .ply files containing meshes, you use the same **little endian binary** format as for the pointclouds, with the **vertex positions encoded as 32-bit floats**. Encode the **face indices as a uchar uint list**, as it is commonly done in the ply format. Only encode **faces as triangles**, so the uchar component of the face indices list should always be "3", the uInts should be 32-bit. 121 | If you want to use textures/UV-coordinates, include the **U and V-coordinates as additional float propertys (property s and property t)** right behind the xyz properties. 122 | An example header of a correctly formatted mesh ply file with UV-coordinates would look like this: 123 | 124 | ```ply 125 | ply 126 | format binary_little_endian 1.0 127 | comment Exported for use in Unity Geometry Streaming Plugin 128 | element vertex 73200 129 | property float x 130 | property float y 131 | property float z 132 | property float s 133 | property float t 134 | element face 138844 135 | property list uchar uint vertex_indices 136 | end_header 137 | ``` 138 | 139 | The data for a single vertex (line) would look like this. Three XYZ-float values, followed by two float values for the UV-coordinates: 140 | 141 | ```ply 142 | 0.323434 0.55133 1.44322 0.231286 0.692901 143 | ``` 144 | 145 | The data for a single indice (line) in the index list could look like this: 146 | 147 | ```ply 148 | 3 56542 56543 56544 149 | ``` 150 | 151 | ### Textures/Images 152 | 153 | The textures should be encoded with **BC1/DXT1** encoding and **no mip-maps** for the *.dds format* and the **6x6 blocks** and **linear LDR color profile** for .astc textures. Please ensure that the resolution and encoding stays consistent for all textures in one sequence. 154 | 155 | ### Sequence.json 156 | 157 | The sequence.json file contains information about your sequence in the following format and should be saved in the sequence folder: 158 | 159 | ```JSON 160 | 161 | //This is an example sequence.json for a textured mesh sequence with 162 | //three frames 163 | 164 | { 165 | "geometryType": 2, //0 = Pointcloud, 1 = Mesh, 2 = Textured Mesh 166 | "textureMode": 2, //0 = No Textures, 1 = One texture, 2 = Per Frame textures 167 | "DDS": true, //Does this sequence have .dds textures? 168 | "ASTC": false, //Does this sequence have .astc textures? 169 | "hasUVs": true, //If using a mesh, does it have UVs? 170 | "maxVertexCount": 26545, //The vertice count of the mesh/pointcloud with the highest vertice count in the whole sequence 171 | "maxIndiceCount": 55423, //The indice count of the mesh/pointcloud with the highest indice count in the whole sequence 172 | "maxBounds": [325.8575134277344, 295.0, 2103.5478515625, -18.240554809570312, -238.74757385253906, 0], //Bounds of the mesh in the format: MaxboundX, MaxboundY, MaxboundZ, MinboundX, MinboundY, MinboundZ 173 | "textureWidth": 512, //The width of the texture(s) 174 | "textureHeight": 512, //The hight of the texture(s) 175 | "textureSizeDDS": 2097152, //The size of a single .dds texture in bytes 176 | "textureSizeASTC": 0, //The size of a single .astc texture in bytes 177 | "headerSizes": [260, 260, 260], //The size of the .ply header in bytes, for each frame 178 | "verticeCounts": [25434, 26545, 24554], //The vertice counts of each frame 179 | "indiceCounts": [55423, 54543, 45443] //The indice counts of each frame 180 | } 181 | ``` 182 | -------------------------------------------------------------------------------- /docs/content/docs/tutorials/samples/API-Example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/samples/API-Example.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/samples/index.bck: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Example Scenes" 3 | description: "Get to know the package through sample scenes" 4 | lead: "Get to know the package through sample scenes" 5 | date: 2025-06-25T13:59:39+01:00 6 | lastmod: 2025-06-25T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "tutorials" 12 | weight: 115 13 | toc: true 14 | --- 15 | 16 | ## Importing the samples 17 | 18 | The samples contain a short demo sequence and some scenes, that you can refer to for how to set up your own scenes and playback your own sequences. If you've never used the plugin before, we strongly recommend to take a look at the samples! 19 | 20 | To install the samples, select the **Geometry Sequence Player** Package in the **In Projects** tab and open the **Samples** tab. Then click on **import**. ![Add package with git](package_manager_samples.png) 21 | 22 | The sample data is now in your Unity assets folder. You can open the sample scenes to take a look how _mesh playback_, _pointcloud playback_, _timeline playback_ and the _scripting API_ works. When you open the scene, you should now either see an animated blob mesh, or a winking cat pointcloud! 23 | 24 | ![Blob](https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExYmVvbXVpazdyanR0dmxyNDhjazNkM3owcnV3NHlwMWFseDRpemoyeiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/XuN1lmgwobrU8eWgsb/giphy.gif) 25 | 26 | ![Cat](https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExdXNtOGozb3d5ZmVwamRjam9zMnBsOXlucXVmemNoanBlN3VlZ2k0YiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/rIT9ggXMG212tkuaIE/giphy.gif) 27 | -------------------------------------------------------------------------------- /docs/content/docs/tutorials/samples/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Samples 3 | description: "Get to know the package through sample scenes" 4 | lead: "Get to know the package through sample scenes" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "tutorials" 12 | weight: 120 13 | toc: true 14 | --- 15 | 16 | The samples contain demo scenes, that you can refer to for how to set up your own scenes and playback your own sequences. If you've never used the plugin before, we highly recommend to take a look at the samples! 17 | 18 | ## Importing the samples 19 | 20 | As this package is distributed as a UPM package, you need to install the samples into your projects first: 21 | 22 | 1: Open the Package Manager from **Window -> Package Manager** 23 | 24 | 2: Click on **In Project** on the left side of the window, and then select the **Geometry Sequence Player** package. 25 | 26 | 3: Click on the **Samples** tab to the right 27 | 28 | 4: **Import** the Sequence Samples. They will now be installed in your projects Asset Directory in the **Assets -> Samples** folder. 29 | 30 | ![Add package with git](package_manager_samples.png) 31 | 32 | You can now open the sample scenes to take a look how [mesh playback](#sample-01-basic-playback), [pointcloud playback](#sample-02-pointcloud-playback), [timeline playback](#sample-03-timeline-playback) and the [scripting API](#sample-04-scripting-api) works. 33 | 34 | ## Samples 35 | 36 | ### Sample 01: Basic Playback 37 | 38 | ![Blob](https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExYmVvbXVpazdyanR0dmxyNDhjazNkM3owcnV3NHlwMWFseDRpemoyeiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/XuN1lmgwobrU8eWgsb/giphy.gif) 39 | 40 | This scene contains a simple mesh sequence with per frame textures. When you open the scene, you should see a static 3D thumbnail of the first frame of the sequence in the editor viewport. Press Play in Unity to enter the game mode and start playback of the sequence. In the game window, you can move the camera around the sequence by clicking and holding the left mouse button and moving the mouse, and zoom with the scrollwheel. The scene setup includes: 41 | 42 | - A Gameobject **Sequence Player** which contains the **Geometry Sequence Player** and **Geometry Sequence Stream** components neccessary for playback 43 | - The **path to the sequence** has already been added to the **Geometry Sequence Player** component 44 | - The **Play at start** and **Loop** options have been enabled in the **Geometry Sequence Player** component 45 | 46 | You can inspect the sequence that has been used at: 47 | 48 | `Assets\Samples\Geometry Sequence Player\1.1.0\Sequence Samples\ExampleData\TexturedMesh_Sequence_Sample` 49 | 50 | > Try playing around with the media controls on the **Geometry Sequence Player** component 51 | 52 | [More info](/Unity_Geometry_Sequence_Player/docs/tutorials/playback/) 53 | 54 | ### Sample 02: Pointcloud Playback 55 | 56 | ![Cat](https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExdXNtOGozb3d5ZmVwamRjam9zMnBsOXlucXVmemNoanBlN3VlZ2k0YiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/rIT9ggXMG212tkuaIE/giphy.gif) 57 | 58 | The pointcloud playback sample is identical in setup to the basic playback scene, the only difference is that a **pointcloud sequence** instead of a mesh sequence has been used. 59 | 60 | You can inspect the sequence at: 61 | 62 | `Assets\Samples\Geometry Sequence Player\1.1.0\Sequence Samples\ExampleData\Pointcloud_Sequence_Sample` 63 | 64 | > Try changing the **point size** and **point type** options on the **Geometry Sequence Stream** component 65 | 66 | [More info](/Unity_Geometry_Sequence_Player/docs/tutorials/playback/) 67 | 68 | ### Sample 03: Timeline Playback 69 | 70 | ![Timeline Playback in Editor](timeline-playback.png) 71 | 72 | This scene shows how to setup and control sequence playback from the Unity Timeline. Open the Unity timeline window and select the **Sequence Player** to see how the timeline is setup. Press the **Play** Button to go into game mode and see the timeline playback in action. The scene contains: 73 | 74 | - A Gameobject **Sequence Player** which contains a **Geometry Sequence Stream** component (**but not a Geometry Sequence Player** component!) 75 | - This gameobject also contains a **Playable Director** component, to which the timeline is attached (the playable director is automatically added when a new Timeline asset is created from the timeline window) 76 | - A **Geometry Sequence Track** has been added to the timeline, and the **Sequence Player** Gameobject has been assigned to the track 77 | - A **Geometry Sequence Clip** was added to the **Geometry Sequence Track**. The sample mesh sequence from the [basic playback sample](#sample-01-basic-playback) is being used in this clip 78 | 79 | > Try adding the pointcloud sequence to the timeline, so that it plays after the mesh sequence has finished 80 | 81 | [More info](/Unity_Geometry_Sequence_Player/docs/tutorials/timeline-integration/) 82 | 83 | 84 | ### Sample 04: Scripting API 85 | 86 | ![The API Example Script](API-Example.png) 87 | 88 | This scene is mostly identical to the [basic playback scene](#sample-01-basic-playback), but the **Sequence Player** Gameobject additionally contains the **Geometry Sequence API Example** script, which shows how to use the Scripting API for playback control and how to listen to playback events. The script is well-commented, so we recommend to read it to see how the playback API works. Press **Play** to enter the game mode. The sequence should play halfway three times before stopping, just as programmed in the script. 89 | 90 | [More info](/Unity_Geometry_Sequence_Player/docs/tutorials/scripting-api/) 91 | -------------------------------------------------------------------------------- /docs/content/docs/tutorials/samples/package_manager_samples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/samples/package_manager_samples.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/samples/timeline-playback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/samples/timeline-playback.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/scripting-api/api_disable_startloop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/scripting-api/api_disable_startloop.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/scripting-api/editor_playback_add_event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/scripting-api/editor_playback_add_event.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/scripting-api/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Scripting API" 3 | description: "Advanced control of your playback via script" 4 | lead: "Advanced control of your playback via script" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "tutorials" 12 | weight: 160 13 | toc: true 14 | --- 15 | 16 | ## Intro 17 | 18 | Besides playback from the timeline and the editor controls, this package also features a API, so that you can control playback from your own scripts. This is for example useful, if you want to let the user control playback via UI buttons, or you want to interactively integrate the player into your experience! 19 | 20 | > 💡 All of the features explained here in this tutorial can also be found in the Sample Scene [04_API_Example](/Unity_Geometry_Sequence_Player/docs/tutorials/samples/#sample-04-scripting-api) 21 | 22 | ## Setup 23 | 24 | To use the Scripting API, you need to have a gameobject in the scene that has the **Geometry Sequence Player** and **Geometry Sequence Stream** components attached to it. 25 | 26 | First, include the BuildingVolumes namespace inside your script with: 27 | 28 | ```C# 29 | using BuildingVolumes.Player; 30 | ``` 31 | 32 | In your script, you then have to get the **Geometry Sequence Player** component, ideally directly in the start function: 33 | 34 | ```C# 35 | void Start() 36 | { 37 | //Get our player. 38 | player = GetComponent(); 39 | } 40 | ``` 41 | 42 | Then, we recommend that you disable **Play at Start** and **Loop Playback** either directly through in the **Geometry Sequence Player** component: 43 | 44 | ![Unchecking the auto start and loop options inside of the editor](api_disable_startloop.png) 45 | 46 | or via script inside of the start function: 47 | 48 | ```C# 49 | void Start() 50 | { 51 | //Get our player. 52 | player = GetComponent(); 53 | 54 | //Disable automatic looping and automatic playback. 55 | player.SetLoopPlay(false); 56 | player.SetAutoStart(false); 57 | } 58 | ``` 59 | 60 | This ensures that you have full control over when and how you want to play your sequence. 61 | You can the load your sequence with the **OpenSequence()** function at any point: 62 | 63 | ```C# 64 | //Load our sequence from an absolute path, set its framerate to 30 and play it directly after loading 65 | player.OpenSequence("C:\MySequences\MyOwnSequence\", GeometrySequencePlayer.PathType.AbsolutePath, 30, true); 66 | ``` 67 | 68 | 👉 For an overview about the API Features, take a look at the [Scripting Reference](/Unity_Geometry_Sequence_Player/docs/tutorials/scripting-api/#scripting-reference) 69 | 70 | ## Events 71 | 72 | Events can be used to react to certain actions of the Playback, such as when Playback has started, stopped, or buffering has finished. 73 | 74 | ### Receive events 75 | 76 | To receive an event, you need to define a function in your code, which can receive a `GeometrySequencePlayer` object and a `GeometrySequencePlayer.GSPlayerEvents` enum. Use the `GSPlayerEvents` enum to receive the information which event has been triggered, and the player object to determine which player has fired the event. 77 | 78 | ```C# 79 | //A sample event receiver 80 | public void PlaybackEventListener(GeometrySequencePlayer player, GeometrySequencePlayer.GSPlayerEvents events) 81 | { 82 | switch (events) 83 | { 84 | case GeometrySequencePlayer.GSPlayerEvents.PlaybackFinished: 85 | print("Playback Finished!"); 86 | break; 87 | case GeometrySequencePlayer.GSPlayerEvents.SequenceChanged: 88 | print("Sequence has been changed!"); 89 | break; 90 | } 91 | } 92 | ``` 93 | 94 | To actually receive the events, you need to subscribe to them. You can either do this by adding a reference to your function inside the GeometrySequencePlayer **in the editor**, or subscribing to a Players events **inside your script (recommended)**. 95 | 96 | ### Subscribe to event in Editor 97 | 98 | To subscribe to events via the Editor, go to your GeometrySequencePlayer into the events foldout, click on **+** and drag and drop your script into the event subscription box. Now, select your function. 99 | 100 | ![Adding event subscription inside the editor](editor_playback_add_event.png) 101 | 102 | ### Subscribe to event in Code 103 | 104 | To subscribe to an event via code, get a reference to the player you want to subscribe to, and then add a Listener to the event. Don't forget to unsubscribe when the script gets destroyed/disabled! 105 | 106 | ```C# 107 | 108 | void Start() 109 | { 110 | //Get our player reference 111 | player = GetComponent(); 112 | 113 | //Subscribe to the player events 114 | player.playbackEvents.AddListener(PlaybackEventListener); 115 | } 116 | 117 | //Event receiver 118 | void PlaybackEventListener(GeometrySequencePlayer player, GeometrySequencePlayer.GSPlayerEvents events) 119 | { 120 | //Do stuff with your event 121 | } 122 | 123 | void OnDisable() 124 | { 125 | player.playbackEvents.RemoveListener(PlaybackEventListener); 126 | } 127 | 128 | ``` 129 | 130 | ## Scripting Reference 131 | 132 | ### OpenSequence() 133 | 134 | `OpenSequence(string path, PathType relativeTo, float playbackFPS , (optional) bool autoplay = false, (optional) bool buffer = true)` 135 | Loads a sequence from the specified path, and start playback if autoplay is enabled. 136 | Parameters: 137 | 138 | - `path`: The relative or absolute path to the folder containing the directory. Should end with a slash 139 | - `relativeTo`: Is the path relative to the [Data path](https://docs.unity3d.com/ScriptReference/Application-dataPath.html), [Persistent Data Path](https://docs.unity3d.com/ScriptReference/Application-persistentDataPath.html), [Streaming Assets path](https://docs.unity3d.com/Manual/StreamingAssets.html), or is an absolute path? 140 | - `playbackFPS`: The framerate in which your animated sequence was exported in. 141 | - `autoplay` : Optional parameter, start playback directly after it has been loaded 142 | - `buffer` : Optional parameter, immediately start buffering the first frames of the sequence after opening it 143 | 144 | Returns: 145 | 146 | - **True** when sequence could successfully be loaded, **false** when an error has occurred while loading. Take a look in the Unity console in this case 147 | 148 | ### LoadCurrentSequence() 149 | 150 | `LoadCurrentSequence((optional) bool autoplay = false, (optional) bool buffer = true)` 151 | (Re)loads the sequence which is currently set in the player, optionally starts playback. 152 | 153 | - `autoplay` : Optional parameter, if set to true, playback starts directly after it has been loaded 154 | - `buffer` : Optional parameter, immediately start buffering the first frames of the sequence after opening it 155 | 156 | Returns: 157 | 158 | - **True** when sequence could successfully be loaded, **false** when an error has occurred while loading. Take a look in the Unity console in this case 159 | 160 | ### SetPath() 161 | 162 | `SetPath(string path, PathType relativeTo)` 163 | Set a new path in the player, but don't load the sequence. Use `LoadCurrentSequence()` to actually load it, or LoadSequence() to do both at once. 164 | Parameters: 165 | 166 | - `path`: The relative or absolute path to the folder containing the directory. Should end with a slash 167 | - `relativeTo`: Is the path relative to the [Data path](https://docs.unity3d.com/ScriptReference/Application-dataPath.html), [Persistent Data Path](https://docs.unity3d.com/ScriptReference/Application-persistentDataPath.html), [Streaming Assets path](https://docs.unity3d.com/Manual/StreamingAssets.html), or is an absolute path? 168 | 169 | ### ClearSequence() 170 | 171 | `void ClearSequence()` 172 | 'Ejects' the sequence from the player. If a sequence is currently played, it is stopped and then disposed. 173 | 174 | ### Play() 175 | 176 | `void Play()` 177 | Start Playback from the current location. 178 | 179 | ### Pause 180 | 181 | `void Pause()` 182 | Pause current playback 183 | 184 | ### Stop 185 | 186 | `void Stop()` 187 | Stops the current playback, and resets the player to the first frame 188 | 189 | ### SetLoopPlay() 190 | 191 | `void SetLoopPlay(bool enabled)` 192 | Activate or deactivate looped playback 193 | 194 | Parameters: 195 | 196 | - `enabled` : Set to true/false to enable/disable looped playback 197 | 198 | ### SetAutoStart() 199 | 200 | `void SetAutoStart(bool enabled)` 201 | Activate or deactivate automatic playback (when the scene starts) 202 | 203 | Parameters: 204 | 205 | - `enabled` : Set to true/false to enable/disable automatic playback when the scene has started 206 | 207 | ### PlayFromStart() 208 | 209 | `bool PlayFromStart()` 210 | Seeks to the start of the sequence and then starts playback 211 | 212 | Returns: 213 | 214 | - `True`, when the sequence could be started from the beginning `False` when there has been an error. 215 | 216 | ### GoToFrame() 217 | 218 | `bool GoToFrame(int frame)` 219 | Goes to a specific frame. Use GetTotalFrames() to check how many frames the clip contains 220 | 221 | Parameters: 222 | 223 | - `enabled` 224 | 225 | Returns: 226 | 227 | - `True` when skipping was successful `False` if there has been an error, or the desired frame index was out of range 228 | 229 | ### GoToTime() 230 | 231 | `void GoToTime(float timeInSeconds)` 232 | Goes to a specific time in a clip. The time is dependent on the framerate e.g. the same clip at 30 FPS is twice as long as at 60 FPS. 233 | 234 | Parameters: 235 | 236 | - `timeInSeconds` : The desired timestamp of the sequence to which you want to jump. 237 | 238 | ### Hide() 239 | 240 | `void Hide()` 241 | Hides the currently playing mesh sequence (disables the mesh renderer). The sequences will continue playing. 242 | 243 | ### Show() 244 | 245 | `void Show()` 246 | Shows the currently playing mesh sequence (enables the mesh renderer). 247 | 248 | ### GetAbsoluteSequencePath() 249 | 250 | `string GetAbsoluteSequencePath()` 251 | Gets the absolute path to the folder containing the sequence 252 | 253 | Returns: 254 | 255 | - The absolute path to the Sequence currently used 256 | 257 | ### GetRelativeSequencePath() 258 | 259 | `string GetRelativeSequencePath()` 260 | Gets the relative path to the folder containing the sequence. Use `GetRelativeTo()` to see which path it is relative to. 261 | 262 | Returns: 263 | 264 | - The relative path to the Sequence currently used, relative to the path in `GetRelativeTo()` 265 | 266 | ### GetRelativeTo() 267 | 268 | `GeometrySequenceStream.PathType GetRelativeTo()` 269 | Get the location to to which the relativePath is relative to. Use [Application.datapath](https://docs.unity3d.com/ScriptReference/Application-dataPath.html), [Application.persistentDataPath](https://docs.unity3d.com/ScriptReference/Application-persistentDataPath.html) or [Application.streamingAssetsPath](https://docs.unity3d.com/Manual/StreamingAssets.html) to get the actual path string, depending on the return type. 270 | 271 | Returns 272 | 273 | - The relative location 274 | 275 | ### IsInitialized() 276 | 277 | `bool IsInitialized()` 278 | Is a sequence currently loaded and ready to play? 279 | 280 | Returns: 281 | 282 | - `True` if a sequence is initialized and ready to play, `False` if not 283 | 284 | ### IsPlaying() 285 | 286 | `bool IsPlaying()` 287 | Is the current clip playing? 288 | 289 | Returns: 290 | 291 | - `True` if the clip is playing `False` if it is paused, stopped or not loaded 292 | 293 | ### GetLoopingEnabled() 294 | 295 | `bool GetLoopingEnabled()` 296 | Is looped playback enabled? 297 | 298 | Returns: 299 | 300 | - `True` if the playback is enabled `False` if it is disabled 301 | 302 | ### GetCurrentFrameIndex() 303 | 304 | `int GetCurrentFrameIndex()` 305 | At which frame is the playback currently? 306 | 307 | Returns: 308 | 309 | - The frame index which is currently being played/shown 310 | 311 | ### GetCurrentTime() 312 | 313 | `float GetCurrentTime()` 314 | At which time is the playback currently in seconds? 315 | Note that the time is dependent on the framerate e.g. the same clip at 30 FPS is twice as long as at 60 FPS. 316 | 317 | Returns: 318 | 319 | - The current timestamp of the clip in seconds 320 | 321 | ### GetTotalFrames() 322 | 323 | `int GetTotalFrames()` 324 | How many frames are there in total in the whole sequence? 325 | 326 | Returns: 327 | 328 | - The total number of frames in the sequence 329 | 330 | ### GetTotalTime() 331 | 332 | `float GetTotalTime()` 333 | How long is the sequence in total? 334 | Note that the time is dependent on the framerate e.g. the same clip at 30 FPS is twice as long as at 60 FPS. 335 | 336 | Returns: 337 | 338 | - The length of the sequence in seconds 339 | 340 | ### GetTargetFPS() 341 | 342 | `float GetTargetFPS()` 343 | The target fps is the framerate we _want_ to achieve in playback. However, this is not guaranteed, if system resources 344 | are too low. Use GetActualFPS() to see if you actually achieve this framerate 345 | 346 | Returns: 347 | 348 | - The playback framerate used currently for this clip 349 | 350 | ### GetActualFPS() 351 | 352 | `float GetActualFPS()` 353 | What is the actual current playback framerate? If the framerate is much lower than the target framerate, 354 | consider reducing the complexity of your sequence, and don't forget to disable any V-Sync (VSync, FreeSync, GSync) methods! 355 | 356 | Returns: 357 | 358 | - The actual FPS at which your sequence is playing. 359 | 360 | ### GetFrameDropped() 361 | 362 | `bool GetFrameDropped()` 363 | Check if there have been frame drops since you last checked this function. You should pull this data every frame. 364 | Too many frame drops mean the system can't keep up with the playback 365 | and you should reduce your Geometric complexity or framerate. 366 | 367 | Returns: 368 | 369 | - `True` When there has been a frame dropped since the last time you checked it, `False` if there has been no frame drop 370 | 371 | ### IsCacheFilled() 372 | 373 | `bool GetCacheFilled()` 374 | Checks if the playback cache has been filled and is ready to play. If it is, playback starts immediately once you call Play() 375 | -------------------------------------------------------------------------------- /docs/content/docs/tutorials/timeline-integration/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Timeline integration" 3 | description: "Control playback via the Unity Timeline" 4 | lead: "Control playback via the Unity Timeline" 5 | date: 2020-11-16T13:59:39+01:00 6 | lastmod: 2020-11-16T13:59:39+01:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "tutorials" 12 | weight: 150 13 | toc: true 14 | --- 15 | 16 | ## Intro 17 | 18 | For playback scenarios, where a precise control of the playback, or cohesive animation with other objects is needed, the package also supports the playback from the Unity Timeline. 19 | 20 | > 💡 All of the features explained here in this tutorial can also be found in the Sample Scene [03_Timeline_Example](/Unity_Geometry_Sequence_Player/docs/tutorials/samples/#sample-03-timeline-playback) 21 | 22 | ## Setting up a timeline clip 23 | 24 | 1. Open the timeline window by going to **Window --> Sequencing --> Timeline** in the main toolbar ![Open timeline](timeline-open.png) 25 | 26 | 2. Create a new empty gameobject, or select the one you want to attach the timeline to. ![Add a gameobject](timeline-newgo.png) 27 | 28 | 3. Add a **"Geometry Sequence Stream"** component to the gameobject. 29 | > ⚠️ Check that there is no "Geometry Sequence Player" component attached to the gameobject, when you use the Geometry Sequence Stream component for timeline playback! 30 | 31 | ![Add a Geometry Sequence Stream component](timeline_add_component.png) 32 | 33 | 4. Go into the Timeline window and click on **Create**. Save the timeline director file anywhere in your assets folder. ![Creating a director](timeline_create.png) 34 | 35 | 5. Add a geometry sequence track by clicking on the **"+"-Button** in the top left corner. Click on **GeomeotrySequence.Streaming --> Geometry Sequence Track** ![Add a track](timeline_create_track.png) 36 | 37 | 6. Drag and drop the gameobject that contains your Geometry Sequence Stream component into the empty field on the track ![Assigning a Stream component to the track](timeline_assign_stream.png) 38 | 39 | 7. Right-click anywhere on the empty track field and add a clip by clicking on **Geometry Sequence Clip** ![Add a timeline clip](timeline_add_Clip.png) 40 | 41 | 8. With the new clip still selected, go into the inspector and click on **Open Sequence**. Choose the folder, where your converted sequence is stored in. ![Set a sequence](timeline_open_sequence.png) 42 | 43 | 9. Due to a missing feature in Unity, the clip doesn't auto-adjust it's length, so the clip might be (a lot) shorter or longer than it actually is. Adjust the duration of the clip manually by dragging on it's end cap, or set the duration in the inspector. ![Adjusting the lenght](timeline_adjust_duration.png) 44 | 45 | 10. Done! The clip will only playback when you're in play mode, so if you want to see your sequence, you need to go into it first. 46 | 47 | 11. You can now add more clips on the same track, or play two clips at the same time, by adding a **second Geometry Sequence Stream** component, and assigning it to a second track. 48 | -------------------------------------------------------------------------------- /docs/content/docs/tutorials/timeline-integration/timeline-newgo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/timeline-integration/timeline-newgo.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/timeline-integration/timeline-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/timeline-integration/timeline-open.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/timeline-integration/timeline_add_Clip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/timeline-integration/timeline_add_Clip.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/timeline-integration/timeline_add_component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/timeline-integration/timeline_add_component.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/timeline-integration/timeline_adjust_duration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/timeline-integration/timeline_adjust_duration.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/timeline-integration/timeline_assign_stream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/timeline-integration/timeline_assign_stream.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/timeline-integration/timeline_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/timeline-integration/timeline_create.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/timeline-integration/timeline_create_track.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/timeline-integration/timeline_create_track.png -------------------------------------------------------------------------------- /docs/content/docs/tutorials/timeline-integration/timeline_open_sequence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/content/docs/tutorials/timeline-integration/timeline_open_sequence.png -------------------------------------------------------------------------------- /docs/content/versions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Versions" 3 | description: "" 4 | lead: "An appendix of hosted documentation for nearly every release of Doks, from v0 through v3." 5 | date: 2021-09-24T08:50:23+02:00 6 | lastmod: 2021-09-24T08:50:23+02:00 7 | draft: true 8 | images: [] 9 | layout: versions 10 | url: "/docs/versions/" 11 | --- 12 | -------------------------------------------------------------------------------- /docs/data/docs-versions.yml: -------------------------------------------------------------------------------- 1 | # - group: v1.x 2 | # baseurl: "https://getbootstrap.com" 3 | # description: "Every minor and patch release from v1 is listed below." 4 | # versions: 5 | # - v: "1.0.0" 6 | # - v: "1.1.0" 7 | # - v: "1.1.1" 8 | # - v: "1.2.0" 9 | # - v: "1.3.0" 10 | # - v: "1.4.0" 11 | # 12 | # - group: v2.x 13 | # baseurl: "https://getbootstrap.com" 14 | # description: "Every minor and patch release from v2 is listed below." 15 | # versions: 16 | # - v: "2.0.0" 17 | # - v: "2.0.1" 18 | # - v: "2.0.2" 19 | # - v: "2.0.3" 20 | # - v: "2.0.4" 21 | # - v: "2.1.0" 22 | # - v: "2.1.1" 23 | # - v: "2.2.0" 24 | # - v: "2.2.1" 25 | # - v: "2.2.2" 26 | # - v: "2.3.0" 27 | # - v: "2.3.1" 28 | # - v: "2.3.2" 29 | # 30 | # - group: v3.x 31 | # baseurl: "https://getbootstrap.com/docs" 32 | # description: "Every minor and patch release from v3 is listed below. Last update was v3.4.1." 33 | # versions: 34 | # - v: "3.3" 35 | # - v: "3.4" 36 | # 37 | # - group: v4.x 38 | # baseurl: "https://getbootstrap.com/docs" 39 | # description: "Our previous major release with its minor releases. Last update was v4.6.0." 40 | # versions: 41 | # - v: "4.0" 42 | # - v: "4.1" 43 | # - v: "4.2" 44 | # - v: "4.3" 45 | # - v: "4.4" 46 | # - v: "4.5" 47 | # - v: "4.6" 48 | 49 | - group: v0.x 50 | baseurl: "/docs" 51 | description: "Current major release. Last update was v0.2.0." 52 | versions: 53 | - v: "0.1" 54 | - v: "0.2" 55 | 56 | - group: v1.x 57 | baseurl: "/docs" 58 | description: "Every minor and patch release from v1 is listed below. Last update was v1.0.0." 59 | versions: 60 | - v: "1.0" 61 | -------------------------------------------------------------------------------- /docs/functions/hi-from-lambda.js: -------------------------------------------------------------------------------- 1 | exports.handler = (event, context, callback) => { 2 | callback (null, { 3 | statusCode: 200, 4 | headers: { 5 | 'Content-Type': 'application/json', 6 | }, 7 | body: JSON.stringify({ 8 | message: 'Hi from Lambda.', 9 | }), 10 | }); 11 | } 12 | -------------------------------------------------------------------------------- /docs/hugo_stats.json: -------------------------------------------------------------------------------- 1 | { 2 | "htmlElements": { 3 | "tags": [ 4 | "a", 5 | "article", 6 | "aside", 7 | "b", 8 | "base", 9 | "blockquote", 10 | "body", 11 | "button", 12 | "circle", 13 | "code", 14 | "details", 15 | "div", 16 | "em", 17 | "figcaption", 18 | "figure", 19 | "footer", 20 | "form", 21 | "g", 22 | "h1", 23 | "h2", 24 | "h3", 25 | "h4", 26 | "h5", 27 | "head", 28 | "header", 29 | "html", 30 | "iframe", 31 | "img", 32 | "input", 33 | "kbd", 34 | "label", 35 | "li", 36 | "line", 37 | "link", 38 | "main", 39 | "meta", 40 | "nav", 41 | "noscript", 42 | "ol", 43 | "p", 44 | "path", 45 | "pre", 46 | "script", 47 | "section", 48 | "small", 49 | "span", 50 | "strong", 51 | "style", 52 | "summary", 53 | "svg", 54 | "template", 55 | "time", 56 | "title", 57 | "ul" 58 | ], 59 | "classes": [ 60 | "DocSearch-Label", 61 | "active", 62 | "anchor", 63 | "bg-dots", 64 | "border-0", 65 | "btn", 66 | "btn-close", 67 | "btn-cta", 68 | "btn-lg", 69 | "btn-link", 70 | "btn-primary", 71 | "card", 72 | "card-body", 73 | "card-list", 74 | "categories", 75 | "chroma", 76 | "col-lg-10", 77 | "col-lg-11", 78 | "col-lg-12", 79 | "col-lg-5", 80 | "col-lg-8", 81 | "col-lg-9", 82 | "col-md-12", 83 | "col-xl-3", 84 | "col-xl-4", 85 | "col-xl-8", 86 | "col-xl-9", 87 | "container", 88 | "container-fluid", 89 | "container-lg", 90 | "content", 91 | "contributors", 92 | "created-date", 93 | "d-flex", 94 | "d-lg-block", 95 | "d-lg-none", 96 | "d-md-block", 97 | "d-md-none", 98 | "d-none", 99 | "d-xl-block", 100 | "d-xl-none", 101 | "docs", 102 | "docs-content", 103 | "docs-links", 104 | "docs-sidebar", 105 | "docs-toc", 106 | "doks-sidebar", 107 | "dropdown", 108 | "dropdown-item", 109 | "dropdown-menu", 110 | "dropdown-toggle", 111 | "error404", 112 | "expressive-code", 113 | "feather", 114 | "feather-github", 115 | "flex-column", 116 | "flex-grow-1", 117 | "flex-lg-row", 118 | "flex-md-row", 119 | "flex-row", 120 | "flex-sm-row", 121 | "flex-xl-nowrap", 122 | "footer", 123 | "form-control", 124 | "form-control-lg", 125 | "frame", 126 | "fs-5", 127 | "h-auto", 128 | "h4", 129 | "h5", 130 | "header", 131 | "highlight", 132 | "home", 133 | "icon", 134 | "icon-tabler", 135 | "icon-tabler-arrow-left", 136 | "icon-tabler-arrow-right", 137 | "icon-tabler-brand-unity", 138 | "icon-tabler-chevron-down", 139 | "icon-tabler-dots-vertical", 140 | "icon-tabler-menu", 141 | "icon-tabler-search", 142 | "icon-tabler-x", 143 | "icons-tabler-outline", 144 | "justify-content-between", 145 | "justify-content-center", 146 | "justify-content-end", 147 | "justify-content-start", 148 | "lead", 149 | "list", 150 | "list-inline", 151 | "list-inline-item", 152 | "list-nested", 153 | "list-unstyled", 154 | "list-view", 155 | "m-2", 156 | "mb-0", 157 | "me-2", 158 | "me-auto", 159 | "me-lg-3", 160 | "message", 161 | "meta", 162 | "modal", 163 | "modal-body", 164 | "modal-content", 165 | "modal-dialog", 166 | "modal-dialog-scrollable", 167 | "modal-footer", 168 | "modal-fullscreen-md-down", 169 | "modal-header", 170 | "modal-title", 171 | "ms-2", 172 | "ms-3", 173 | "ms-auto", 174 | "mt-3", 175 | "mt-n3", 176 | "mx-2", 177 | "mx-auto", 178 | "my-3", 179 | "nav", 180 | "nav-item", 181 | "nav-link", 182 | "navbar", 183 | "navbar-brand", 184 | "navbar-expand-lg", 185 | "navbar-nav", 186 | "not-content", 187 | "offcanvas", 188 | "offcanvas-body", 189 | "offcanvas-end", 190 | "offcanvas-header", 191 | "offcanvas-start", 192 | "offcanvas-title", 193 | "order-3", 194 | "order-lg-4", 195 | "p-0", 196 | "p-2", 197 | "page-footer-meta", 198 | "page-links", 199 | "page-nav", 200 | "pb-3", 201 | "px-0", 202 | "query-no-results", 203 | "rounded", 204 | "rounded-pill", 205 | "row", 206 | "search-form", 207 | "search-input", 208 | "search-loading", 209 | "search-no-recent", 210 | "search-no-results", 211 | "search-result", 212 | "search-results", 213 | "search-text", 214 | "section", 215 | "section-features", 216 | "section-md", 217 | "section-nav", 218 | "shadow", 219 | "single", 220 | "social-link", 221 | "status", 222 | "sticky-top", 223 | "stretched-link", 224 | "submitted", 225 | "tags", 226 | "taxonomy", 227 | "text-body-secondary", 228 | "text-center", 229 | "text-decoration-none", 230 | "text-end", 231 | "text-lg-end", 232 | "text-lg-start", 233 | "text-muted", 234 | "text-reset", 235 | "title", 236 | "title-submitted", 237 | "toc-mobile", 238 | "visually-hidden", 239 | "w-100", 240 | "wrap" 241 | ], 242 | "ids": [ 243 | "-priority-support-unity-asset-store-version", 244 | "TableOfContents", 245 | "android", 246 | "apple-vision-pro", 247 | "bounded-mode", 248 | "build-and-ship", 249 | "clearsequence", 250 | "controls--settings-explained", 251 | "convert-your-sequence", 252 | "converting-your-sequences", 253 | "credits", 254 | "doks-docs-nav", 255 | "events", 256 | "for-developers-format-specification", 257 | "general-support", 258 | "getabsolutesequencepath", 259 | "getactualfps", 260 | "getcurrentframeindex", 261 | "getcurrenttime", 262 | "getframedropped", 263 | "getloopingenabled", 264 | "getrelativesequencepath", 265 | "getrelativeto", 266 | "gettargetfps", 267 | "gettotalframes", 268 | "gettotaltime", 269 | "gotoframe", 270 | "gototime", 271 | "h-rh-i-0", 272 | "h-rh-i-1", 273 | "h-rh-i-2", 274 | "h-rh-i-3", 275 | "h-rh-i-4", 276 | "h-rh-i-5", 277 | "h-rh-i-6", 278 | "h-rh-i-7", 279 | "h-rh-i-8", 280 | "hide", 281 | "immersive-mode", 282 | "importing-the-samples", 283 | "install-the-package", 284 | "install-the-package-from-unity-store", 285 | "installing-the-converter", 286 | "intro", 287 | "iscachefilled", 288 | "isinitialized", 289 | "isplaying", 290 | "loadcurrentsequence", 291 | "mesh-ply-files", 292 | "naming", 293 | "offcanvasNavMain", 294 | "offcanvasNavMainLabel", 295 | "offcanvasNavSection", 296 | "offcanvasNavSectionLabel", 297 | "open-source-license", 298 | "opensequence", 299 | "package-installation", 300 | "package-installation-unity-store-version", 301 | "pause", 302 | "play", 303 | "play-a-sample-sequence", 304 | "playback", 305 | "playback-your-sequence", 306 | "player-component", 307 | "playfromstart", 308 | "pointcloud-ply-files", 309 | "preparation-for-the-conversion", 310 | "query", 311 | "receive-events", 312 | "sample-01-basic-playback", 313 | "sample-01-mesh-playback", 314 | "sample-02-pointcloud-playback", 315 | "sample-03-timeline-playback", 316 | "sample-04-scripting-api", 317 | "samples", 318 | "scripting-reference", 319 | "search-form", 320 | "searchModal", 321 | "searchModalLabel", 322 | "searchResults", 323 | "searchToggleDesktop", 324 | "searchToggleMobile", 325 | "sequencejson", 326 | "setautostart", 327 | "setloopplay", 328 | "setpath", 329 | "setting-up-a-timeline-clip", 330 | "setup", 331 | "show", 332 | "socialMenu", 333 | "stop", 334 | "stream-component", 335 | "subscribe-to-event-in-code", 336 | "subscribe-to-event-in-editor", 337 | "supported-file-formats", 338 | "texturesimages", 339 | "the-samples", 340 | "toc", 341 | "unity-asset-store-license", 342 | "using-the-converter", 343 | "version-100", 344 | "version-101-package-only", 345 | "version-102", 346 | "version-103", 347 | "version-110" 348 | ] 349 | } 350 | } 351 | -------------------------------------------------------------------------------- /docs/i18n/en.yaml: -------------------------------------------------------------------------------- 1 | - id: get-started 2 | translation: "Get Started" 3 | 4 | - id: on-this-page 5 | translation: "On this page" 6 | 7 | - id: search-text 8 | translation: "Search docs..." 9 | 10 | - id: 404-title 11 | translation: "Page not found :(" 12 | 13 | - id: 404-text 14 | translation: "The page you are looking for doesn't exist or has been moved." 15 | 16 | - id: browse 17 | translation: "Browse" 18 | -------------------------------------------------------------------------------- /docs/layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |
5 |

{{ "Geometry Sequence Player" }}

6 |
7 |
8 |

{{ "Pointcloud and mesh sequence playback for the Unity game engine" | safeHTML }}

9 | 10 |

This package is provided open-source and free for non-commercial projects. If you want to use the package in a commercial project, or support the development, you can buy also the package in the Unity Asset Store.

11 | Get Started now 12 |

______________________________________

13 | 14 | Buy in Unity Asset Store 15 |

Thank you very much for your support 💚

16 | {{ .Content }} 17 |
18 |
19 |
20 | {{ end }} 21 | 22 | {{ define "sidebar-prefooter" }} 23 | {{ if site.Params.doks.backgroundDots -}} 24 |
25 |
26 |
27 | {{ end -}} 28 | {{ if eq $.Site.Language.LanguageName "English" }} 29 |
30 |
31 |
32 |
33 |

Pointclouds

34 | 35 |
36 |
37 |

Meshes

38 | 39 |
40 |
41 |

Textured Meshes

42 | 43 |
44 |

45 |

Credits

46 |
47 |
48 |
49 | {{ end }} 50 | {{ end }} 51 | 52 | {{ define "sidebar-footer" }} 53 | {{ if site.Params.doks.sectionFooter -}} 54 |
55 |
56 |
57 |

Start building with Doks today

58 | {{ i18n "get-started" }} 59 |
60 |
61 |
62 | {{ end -}} 63 | {{ end }} 64 | -------------------------------------------------------------------------------- /docs/layouts/partials/footer/script-footer-custom.html: -------------------------------------------------------------------------------- 1 | {{/* Put your custom tags here */}} 2 | 3 | {{/* EXAMPLE - only load script for production 4 | {{ if eq (hugo.Environment) "production" -}} 5 | {{ partial "footer/esbuild" (dict "src" "js/instantpage.js" "load" "async" "transpile" false) -}} 6 | {{ end -}} 7 | */}} 8 | 9 | {{/* EXAMPLE - only load script for a page type e.g. contact or gallery 10 | {{ if eq .Type "gallery" -}} 11 | {{ partial "footer/esbuild" (dict "src" "js/gallery.js" "load" "async" "transpile" false) -}} 12 | {{ end -}} 13 | */}} 14 | -------------------------------------------------------------------------------- /docs/layouts/partials/head/custom-head.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/layouts/partials/head/script-header.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "public" 3 | functions = "functions" 4 | 5 | [build.environment] 6 | NODE_VERSION = "16.16.0" 7 | NPM_VERSION = "8.11.0" 8 | 9 | [context.production] 10 | command = "npm run build" 11 | 12 | [context.deploy-preview] 13 | command = "npm run build -- -b $DEPLOY_PRIME_URL" 14 | 15 | [context.branch-deploy] 16 | command = "npm run build -- -b $DEPLOY_PRIME_URL" 17 | 18 | [context.next] 19 | command = "npm run build" 20 | 21 | [context.next.environment] 22 | HUGO_ENV = "next" 23 | 24 | [[plugins]] 25 | package = "netlify-plugin-submit-sitemap" 26 | 27 | [plugins.inputs] 28 | baseUrl = "https://doks-child-theme.netlify.app/" 29 | sitemapPath = "/sitemap.xml" 30 | ignorePeriod = 0 31 | providers = [ 32 | "google", 33 | "yandex" 34 | ] 35 | 36 | [dev] 37 | framework = "#custom" 38 | command = "npm run start" 39 | targetPort = 1313 40 | port = 8888 41 | publish = "public" 42 | autoLaunch = false 43 | -------------------------------------------------------------------------------- /docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "doks", 3 | "version": "1.6.2", 4 | "description": "Doks theme", 5 | "author": "Hyas", 6 | "license": "MIT", 7 | "scripts": { 8 | "dev": "exec-bin node_modules/.bin/hugo/hugo server --bind=0.0.0.0 --disableFastRender --baseURL=http://localhost --noHTTPCache", 9 | "dev:drafts": "exec-bin node_modules/.bin/hugo/hugo server --bind=0.0.0.0 --disableFastRender --baseURL=http://localhost --noHTTPCache --buildDrafts", 10 | "create": "exec-bin node_modules/.bin/hugo/hugo new", 11 | "lint": "npm run lint:scripts && npm run lint:styles && npm run lint:markdown", 12 | "lint:scripts": "eslint --cache assets/js", 13 | "lint:styles": "stylelint --cache \"assets/scss/**/*.{css,sass,scss}\"", 14 | "lint:markdown": "markdownlint-cli2 \"*.md\" \"content/**/*.md\"", 15 | "test": "echo \"Error: no test specified\" && exit 1", 16 | "build": "exec-bin node_modules/.bin/hugo/hugo --minify", 17 | "preview": "http-server --gzip --brotli --ext=html --cors", 18 | "clean": "npm run clean:build && npm run clean:lint && npm run clean:install", 19 | "clean:build": "shx rm -rf public resources .hugo_build.lock", 20 | "clean:install": "shx rm -rf node_modules package-lock.json yarn.lock pnpm-lock.yaml", 21 | "clean:lint": "shx rm -rf .eslintcache .stylelintcache", 22 | "preinfo": "npm version", 23 | "info": "npm list", 24 | "postinfo": "exec-bin node_modules/.bin/hugo/hugo version", 25 | "postinstall": "hugo-installer --version otherDependencies.hugo --extended --destination node_modules/.bin/hugo" 26 | }, 27 | "dependencies": { 28 | "@hyas/doks-core": "^1.6.1", 29 | "@hyas/images": "^3.2.0", 30 | "@hyas/inline-svg": "^1.0.5", 31 | "@hyas/seo": "^2.3.0", 32 | "@tabler/icons": "^2.47.0", 33 | "exec-bin": "^1.0.0", 34 | "gethyas": "^2.2.2", 35 | "hugo-installer": "^4.0.1" 36 | }, 37 | "devDependencies": { 38 | "shx": "^0.3.4" 39 | }, 40 | "otherDependencies": { 41 | "hugo": "0.121.1" 42 | }, 43 | "overrides": { 44 | "semver": "^7.5.4" 45 | }, 46 | "engines": { 47 | "node": ">=18.14.1", 48 | "pnpm": ">=8.10.0" 49 | }, 50 | "packageManager": "pnpm@8.12.0" 51 | } 52 | -------------------------------------------------------------------------------- /docs/static/Unity_Package_OpenGraph_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuildingVolumes/Unity_Geometry_Sequence_Player/f8940008f4b8df640407530ceec5afd6b4785966/docs/static/Unity_Package_OpenGraph_logo.png -------------------------------------------------------------------------------- /docs/theme.toml: -------------------------------------------------------------------------------- 1 | name = "Doks child theme" 2 | license = "MIT" 3 | licenselink = "https://github.com/h-enk/doks/blob/master/LICENSE" 4 | description = "Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default." 5 | 6 | homepage = "https://github.com/h-enk/doks-child-theme" 7 | demosite = "https://doks-child-theme.netlify.app" 8 | 9 | tags = ["landing page", "documentation", "blog", "minimal", "modern", "customizable", "search", "dark mode", "bootstrap"] 10 | features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "dark mode"] 11 | 12 | [author] 13 | name = "Henk Verlinde" 14 | homepage = "https://henkverlinde.com" 15 | --------------------------------------------------------------------------------