浏览代码
Merge branch 'master' into schema-0.1.0
Merge branch 'master' into schema-0.1.0
# Conflicts: # com.unity.perception/Documentation~/Schema/Synthetic_Dataset_Schema.md/schema-0.1.0
You-Cyuan Jhang
3 年前
当前提交
ac95b33f
共有 1389 个文件被更改,包括 7387 次插入 和 1982 次删除
-
17.github/pull_request_template.md
-
6.gitignore
-
43.yamato/upm-ci-testprojects.yml
-
125.yamato/upm-ci-full.yml
-
143.yamato/promote.yml
-
2LICENSE.md
-
87README.md
-
11TestProjects/PerceptionHDRP/Packages/manifest.json
-
2TestProjects/PerceptionHDRP/ProjectSettings/EditorSettings.asset
-
5TestProjects/PerceptionHDRP/ProjectSettings/EditorBuildSettings.asset
-
31TestProjects/PerceptionHDRP/ProjectSettings/ProjectSettings.asset
-
4TestProjects/PerceptionHDRP/ProjectSettings/ProjectVersion.txt
-
74TestProjects/PerceptionHDRP/Assets/HDRenderPipelineAsset.asset
-
492TestProjects/PerceptionHDRP/Assets/Scenes/SampleScene.unity
-
2TestProjects/PerceptionURP/ProjectSettings/EditorSettings.asset
-
2TestProjects/PerceptionURP/ProjectSettings/GraphicsSettings.asset
-
4TestProjects/PerceptionURP/ProjectSettings/UnityConnectSettings.asset
-
49TestProjects/PerceptionURP/ProjectSettings/ProjectSettings.asset
-
4TestProjects/PerceptionURP/ProjectSettings/ProjectVersion.txt
-
3TestProjects/PerceptionURP/Assets/Settings/ForwardRenderer.asset
-
2TestProjects/PerceptionURP/Assets/Settings/ForwardRenderer.asset.meta
-
5TestProjects/PerceptionURP/Assets/Settings/UniversalRPAsset.asset
-
559TestProjects/PerceptionURP/Assets/Scenes/SampleScene.unity
-
9TestProjects/PerceptionURP/Packages/manifest.json
-
414com.unity.perception/CHANGELOG.md
-
163com.unity.perception/Documentation~/Schema/Synthetic_Dataset_Schema.md
-
35com.unity.perception/Documentation~/SetupSteps.md
-
366com.unity.perception/Documentation~/images/MainCameraLabelConfig.PNG
-
125com.unity.perception/Documentation~/images/IDLabelingConfigurationFinished.PNG
-
28com.unity.perception/Editor/Unity.Perception.Editor.asmdef
-
3com.unity.perception/Editor/GroundTruth/InstanceSegmentationPassEditor.cs
-
934com.unity.perception/Editor/GroundTruth/LabelingEditor.cs
-
2com.unity.perception/Editor/GroundTruth/LabelingEditor.cs.meta
-
2com.unity.perception/Editor/GroundTruth/SemanticSegmentationPassEditor.cs
-
2com.unity.perception/Editor/GroundTruth/IdLabelConfigEditor.cs.meta
-
2com.unity.perception/LICENSE.md
-
1com.unity.perception/Runtime/AssemblyInfo.cs
-
16com.unity.perception/Runtime/Unity.Perception.Runtime.asmdef
-
45com.unity.perception/Runtime/GroundTruth/GroundTruthRendererFeature.cs
-
25com.unity.perception/Runtime/GroundTruth/RenderedObjectInfo.cs
-
10com.unity.perception/Runtime/GroundTruth/Resources/InstanceSegmentation.shader
-
18com.unity.perception/Runtime/GroundTruth/Resources/LabeledObjectHistogram.compute
-
29com.unity.perception/Runtime/GroundTruth/Resources/SemanticSegmentation.shader
-
18com.unity.perception/Runtime/GroundTruth/SimulationState_Json.cs
-
5com.unity.perception/Runtime/GroundTruth/Ego.cs
-
23com.unity.perception/Runtime/GroundTruth/IGroundTruthGenerator.cs
-
121com.unity.perception/Runtime/GroundTruth/RenderedObjectInfoGenerator.cs
-
2com.unity.perception/Runtime/GroundTruth/Labeling/StartingLabelId.cs
-
64com.unity.perception/Runtime/GroundTruth/Labeling/Labeling.cs
-
69com.unity.perception/Runtime/GroundTruth/RenderTextureReader.cs
-
871com.unity.perception/Runtime/GroundTruth/PerceptionCamera.cs
-
210com.unity.perception/Runtime/GroundTruth/SimulationState.cs
-
123com.unity.perception/Runtime/GroundTruth/DatasetCapture.cs
-
2com.unity.perception/Tests/Runtime/Unity.Perception.Runtime.Tests.asmdef
-
11com.unity.perception/Tests/Runtime/GroundTruthTests/DatasetJsonUtilityTests.cs
-
36com.unity.perception/Tests/Runtime/GroundTruthTests/TestHelper.cs
-
40com.unity.perception/Tests/Runtime/GroundTruthTests/GroundTruthTestBase.cs
-
122com.unity.perception/Tests/Runtime/GroundTruthTests/PerceptionCameraIntegrationTests.cs
-
520com.unity.perception/Tests/Runtime/GroundTruthTests/SegmentationGroundTruthTests.cs
-
16com.unity.perception/Tests/Editor/Unity.Perception.Editor.Tests.asmdef
-
175com.unity.perception/Tests/Editor/PerceptionCameraEditorTests.cs
-
6com.unity.perception/Tests/Editor/BuildPerceptionPlayer.cs
-
46com.unity.perception/Tests/Editor/DatasetCaptureEditorTests.cs
-
32com.unity.perception/package.json
-
8com.unity.perception/Tests/Runtime/GroundTruthTests/DatasetCaptureSensorSchedulingTests.cs.meta
-
2com.unity.perception/Runtime/GroundTruth/Labelers/BoundingBoxLabeler.cs.meta
-
35com.unity.perception/Runtime/GroundTruth/RenderPasses/HdrpPasses/GroundTruthPass.cs
-
14com.unity.perception/Runtime/GroundTruth/RenderPasses/HdrpPasses/InstanceSegmentationPass.cs
-
25com.unity.perception/Runtime/GroundTruth/RenderPasses/HdrpPasses/SemanticSegmentationPass.cs
-
2com.unity.perception/Runtime/GroundTruth/RenderPasses/HdrpPasses/SemanticSegmentationPass.cs.meta
-
2com.unity.perception/Runtime/GroundTruth/RenderPasses/CrossPipelinePasses/SemanticSegmentationCrossPipelinePass.cs.meta
-
2com.unity.perception/Runtime/GroundTruth/RenderPasses/CrossPipelinePasses/GroundTruthCrossPipelinePass.cs.meta
-
8com.unity.perception/Tests/Runtime/GroundTruthTests/DatasetCaptureTests.cs.meta
-
34.yamato/publish.yml
-
83.yamato/upm-ci-performance.yml
-
95.yamato/environments.yml
-
5CONTRIBUTING.md
-
2TestProjects/PerceptionHDRP/PerceptionHDRP.sln.DotSettings
-
474TestProjects/PerceptionHDRP/Packages/packages-lock.json
-
38TestProjects/PerceptionHDRP/ProjectSettings/PackageManagerSettings.asset
-
8TestProjects/PerceptionHDRP/Assets/SemanticSegmentationLabelingConfiguration.asset.meta
-
1TestProjects/PerceptionHDRP/Assets/csc.rsp
-
7TestProjects/PerceptionHDRP/Assets/csc.rsp.meta
-
27TestProjects/PerceptionHDRP/Assets/IdLabelConfig.asset
-
8TestProjects/PerceptionHDRP/Assets/IdLabelConfig.asset.meta
-
1001TestProjects/PerceptionHDRP/Assets/Scenes/SampleSceneLensDistortion.unity
-
7TestProjects/PerceptionHDRP/Assets/Scenes/SampleSceneLensDistortion.unity.meta
-
8TestProjects/PerceptionHDRP/Assets/Scenes/SampleSceneLensDistortion.meta
-
7TestProjects/PerceptionHDRP/Assets/Scenes/PoseSample.unity.meta
-
8TestProjects/PerceptionHDRP/Assets/Scenes/SampleScene.meta
-
698TestProjects/PerceptionHDRP/Assets/Scenes/PoseSample.unity
-
260TestProjects/PerceptionHDRP/Assets/CrateMaterial.mat
-
8TestProjects/PerceptionHDRP/Assets/CrateMaterial.mat.meta
-
8TestProjects/PerceptionHDRP/Assets/StreamingAssets.meta
-
3TestProjects/PerceptionHDRP/Assets/Terrain Data.asset
-
8TestProjects/PerceptionHDRP/Assets/Terrain Data.asset.meta
-
8TestProjects/PerceptionHDRP/Assets/Human Pose Labeling and Randomization.meta
-
52TestProjects/PerceptionHDRP/Assets/BoxKeypointTemplate.asset
|
|||
# Peer Review Information: |
|||
Information on any code, feature, documentation changes here |
|||
**Editor Version Target (i.e. 19.3, 20.1)**: 2019.3 |
|||
**Editor Version Target**: 2019.4 |
|||
<br> |
|||
**Package Tests (Pass/Fail)**: |
|||
[X] - Make sure automation passes |
|||
<br> |
|||
|
|||
<br> |
|||
|
|||
<br> |
|||
**Notes + Expectations**: |
|||
|
|||
## Checklist |
|||
- [ ] - Updated docs |
|||
- [ ] - Updated changelog |
|||
- [ ] - Updated test rail |
|
|||
# The Yamato build step `publish` will publish the com.unity.perception package to the `upm-candidates` registry. To see which versions of the package have been published, see |
|||
# * https://artifactory.prd.cds.internal.unity3d.com/artifactory/webapp/#/artifacts/browse/tree/General/upm-candidates/com.unity.perception |
|||
# * https://bintray.com/unity |
|||
#test_editors: |
|||
# - version: 2019.1 |
|||
#test_platforms: |
|||
# - name: win |
|||
# type: Unity::VM |
|||
# image: package-ci/win10:stable |
|||
# flavor: b1.large |
|||
#--- |
|||
#{% for editor in test_editors %} |
|||
#{% for platform in test_platforms %} |
|||
#promotion_test_{{ platform.name }}_{{ editor.version }}: |
|||
# name : Promotion Test {{ editor.version }} on {{ platform.name }} |
|||
# agent: |
|||
# type: {{ platform.type }} |
|||
# image: {{ platform.image }} |
|||
# flavor: {{ platform.flavor}} |
|||
# variables: |
|||
# UPMCI_PROMOTION: 1 |
|||
# commands: |
|||
# - npm install upm-ci-utils@latest -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm |
|||
# - upm-ci package test --unity-version {{ editor.version }} |
|||
# artifacts: |
|||
# logs: |
|||
# paths: |
|||
# - "upm-ci~/test-results/**/*" |
|||
# dependencies: |
|||
# - .yamato/upm-ci.yml#pack |
|||
#{% endfor %} |
|||
#{% endfor %} |
|||
# |
|||
#promotion_test_trigger: |
|||
# name: Promotion Tests Trigger |
|||
# agent: |
|||
# type: Unity::VM |
|||
# image: package-ci/win10:stable |
|||
# flavor: b1.large |
|||
# artifacts: |
|||
# logs: |
|||
# paths: |
|||
# - "upm-ci~/test-results/**/*" |
|||
# packages: |
|||
# paths: |
|||
# - "upm-ci~/packages/**/*" |
|||
# dependencies: |
|||
#{% for editor in test_editors %} |
|||
#{% for platform in test_platforms %} |
|||
# - .yamato/promotion.yml#promotion_test_{{platform.name}}_{{editor.version}} |
|||
#{% endfor %} |
|||
#{% endfor %} |
|||
# |
|||
#promote: |
|||
# name: Promote to Production |
|||
# agent: |
|||
# type: Unity::VM |
|||
# image: package-ci/win10:stable |
|||
# flavor: b1.large |
|||
# variables: |
|||
# UPMCI_PROMOTION: 1 |
|||
# commands: |
|||
# - npm install upm-ci-utils@latest -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm |
|||
# - upm-ci package promote |
|||
{% metadata_file .yamato/environments.yml %} |
|||
|
|||
--- |
|||
{% for variant in package_variants %} |
|||
{% for editor in complete_editors %} |
|||
{% for platform in test_platforms %} |
|||
promotion_test_{{ platform.name }}_{{ editor.version }}: |
|||
name : Package promotion tests ({{variant.name}} pkg, {{ editor.version }}, {{ platform.name }}) |
|||
agent: |
|||
type: {{ platform.type }} |
|||
image: {{ platform.image }} |
|||
flavor: {{ platform.flavor}} |
|||
variables: |
|||
UPMCI_PROMOTION: 1 |
|||
commands: |
|||
- git submodule update --init --recursive |
|||
- npm install upm-ci-utils@stable -g --registry {{ upmci_registry }} |
|||
- upm-ci package test -u {{ editor.version }} --package-path ./com.unity.perception --type vetting-tests |
|||
artifacts: |
|||
logs: |
|||
paths: |
|||
- "upm-ci~/test-results/**/*" |
|||
dependencies: |
|||
- .yamato/upm-ci-full.yml#pack_{{ variant.name }} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
|
|||
promotion_test_trigger: |
|||
name: Promotion Tests Trigger |
|||
dependencies: |
|||
{% for editor in complete_editors %} |
|||
{% for platform in publish_platforms %} |
|||
{% for suite in suites %} |
|||
{% for project in projects %} |
|||
- .yamato/promote.yml#promotion_test_{{platform.name}}_{{editor.version}} |
|||
- .yamato/upm-ci-full.yml#pkg_test_Perception_{{platform.name}}_{{editor.version}} |
|||
- .yamato/upm-ci-testprojects.yml#{{project.name}}_windows_{{suite.name}}_{{editor.version}} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
|
|||
|
|||
promote: |
|||
name: Promote to Production |
|||
agent: |
|||
type: Unity::VM |
|||
image: package-ci/win10:stable |
|||
flavor: b1.large |
|||
variables: |
|||
UPMCI_PROMOTION: 1 |
|||
commands: |
|||
- npm install upm-ci-utils@stable -g --registry {{ upmci_registry }} |
|||
- upm-ci package promote --package-path ./com.unity.perception |
|||
# artifacts: |
|||
# artifacts: |
|||
# paths: |
|||
# - "upm-ci~/packages/*.tgz" |
|||
# dependencies: |
|||
# - .yamato/upm-ci.yml#pack |
|||
#{% for editor in test_editors %} |
|||
#{% for platform in test_platforms %} |
|||
# - .yamato/promotion.yml#promotion_test_{{ platform.name }}_{{ editor.version }} |
|||
#{% endfor %} |
|||
#{% endfor %} |
|||
artifacts: |
|||
artifacts: |
|||
paths: |
|||
- "upm-ci~/packages/*.tgz" |
|||
dependencies: |
|||
{% for variant in package_variants %} |
|||
{% for editor in complete_editors %} |
|||
{% for platform in publish_platforms %} |
|||
- .yamato/upm-ci-full.yml#pack_{{ variant.name }} |
|||
- .yamato/promote.yml#promotion_test_{{ platform.name }}_{{ editor.version }} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
{% endfor %} |
|
|||
<img src="com.unity.perception/Documentation~/images/unity-wide.png" align="middle" width="3000"/> |
|||
<img src="com.unity.perception/Documentation~/images/unity-wide-whiteback.png" align="middle" width="3000"/> |
|||
# Perception |
|||
The Perception package provides a toolkit for generating large-scale datasets for perception-based machine learning training and validation. It is focused on a handful of camera-based use cases for now and will ultimately expand to other forms of sensors and machine learning tasks. |
|||
![ReleaseBadge](https://badge-proxy.cds.internal.unity3d.com/5ab9a162-9dd0-4ba1-ba41-cf25378a927a) |
|||
## Documenation |
|||
**Click [here](com.unity.perception/Documentation~/SetupSteps.md) to set up a Perception project** |
|||
<img src="https://img.shields.io/badge/unity-2019.4-green.svg?style=flat-square" alt="unity 2019.4"> |
|||
<img src="https://img.shields.io/badge/unity-2020.2-green.svg?style=flat-square" alt="unity 2020.2"> |
|||
|
|||
> com.unity.perception is in active development. Its features and API are subject to significant change as development progresses. |
|||
|
|||
|
|||
# Perception Package ([Unity Computer Vision](https://unity.com/computer-vision)) |
|||
|
|||
The Perception package provides a toolkit for generating large-scale datasets for computer vision training and validation. It is focused on a handful of camera-based use cases for now and will ultimately expand to other forms of sensors and machine learning tasks. |
|||
|
|||
Visit the [Unity Computer Vision](https://unity.com/computer-vision) page for more information on our tools and offerings! |
|||
|
|||
## Getting Started |
|||
|
|||
**[Quick Installation Instructions](com.unity.perception/Documentation~/SetupSteps.md)** |
|||
Get your local Perception workspace up and running quickly. Recommended for users with prior Unity experience. |
|||
|
|||
**[Perception Tutorial](com.unity.perception/Documentation~/Tutorial/TUTORIAL.md)** |
|||
Detailed instructions covering all the important steps from installing Unity Editor, to creating your first computer vision data generation project, building a randomized Scene, and generating large-scale synthetic datasets by leveraging the power of Unity Simulation. No prior Unity experience required. |
|||
|
|||
**[Human Pose Labeling and Randomization Tutorial](com.unity.perception/Documentation~/HPTutorial/TUTORIAL.md)** |
|||
Step by step instructions for using the keypoint, pose, and animation randomization tools included in the Perception package. It is recommended that you finish Phase 1 of the Perception Tutorial above before starting this tutorial. |
|||
|
|||
## Documentation |
|||
In-depth documentation on individual components of the package. |
|||
|
|||
|Feature|Description| |
|||
|---|---| |
|||
|[Labeling](com.unity.perception/Documentation~/GroundTruthLabeling.md)|A component that marks a GameObject and its descendants with a set of labels| |
|||
|[Label Config](com.unity.perception/Documentation~/GroundTruthLabeling.md#label-config)|An asset that defines a taxonomy of labels for ground truth generation| |
|||
|[Perception Camera](com.unity.perception/Documentation~/PerceptionCamera.md)|Captures RGB images and ground truth from a [Camera](https://docs.unity3d.com/Manual/class-Camera.html).| |
|||
|[Dataset Capture](com.unity.perception/Documentation~/DatasetCapture.md)|Ensures sensors are triggered at proper rates and accepts data for the JSON dataset.| |
|||
|[Randomization](com.unity.perception/Documentation~/Randomization/Index.md)|The Randomization tool set lets you integrate domain randomization principles into your simulation.| |
|||
|
|||
## Community and Support |
|||
|
|||
For setup problems or discussions about leveraging the Perception package in your project, please create a new thread on the **[Unity Computer Vision forum](https://forum.unity.com/forums/computer-vision.626/)** and make sure to include as much detail as possible. If you run into any other problems with the Perception package or have a specific feature request, please submit a **[GitHub issue](https://github.com/Unity-Technologies/com.unity.perception/issues)**. |
|||
|
|||
For any other questions or feedback, connect directly with the Computer Vision team at [computer-vision@unity3d.com](mailto:computer-vision@unity3d.com). |
|||
|
|||
## Example Projects |
|||
|
|||
### SynthDet |
|||
|
|||
<img src="com.unity.perception/Documentation~/images/synthdet.png"/> |
|||
|
|||
[SynthDet](https://github.com/Unity-Technologies/SynthDet) is an end-to-end solution for training a 2D object detection model using synthetic data. |
|||
**Click [here](com.unity.perception/Documentation~/GettingStarted.md) to get the started with Perception** |
|||
### Unity Simulation Smart Camera example |
|||
<img src="com.unity.perception/Documentation~/images/smartcamera.png"/> |
|||
|
|||
The [Unity Simulation Smart Camera Example](https://github.com/Unity-Technologies/Unity-Simulation-Smart-Camera-Outdoor) illustrates how the Perception package could be used in a smart city or autonomous vehicle simulation. You can generate datasets locally or at scale in [Unity Simulation](https://unity.com/products/unity-simulation). |
|||
|
|||
|
|||
### Robotics Object Pose Estimation Demo |
|||
<img src="com.unity.perception/Documentation~/images/robotics_pose.png"/> |
|||
|
|||
The [Robotics Object Pose Estimation Demo & Tutorial](https://github.com/Unity-Technologies/Robotics-Object-Pose-Estimation) demonstrates pick-and-place with a robot arm in Unity. It includes using ROS with Unity, importing URDF models, collecting labeled training data using the Perception package, and training and deploying a deep learning model. |
|||
|
|||
## Local development |
|||
The repository includes two projects for local development in `TestProjects` folder, one set up for HDRP and the other for URP. |
|||
## Suggested IDE Setup |
|||
### Suggested IDE Setup |
|||
* To get automatic feedback and fixups on formatting and naming convention violations, set up Rider/JetBrains with our Unity standard .dotsettings file by following [these instructions](https://github.cds.internal.unity3d.com/unity/com.unity.coding/tree/master/UnityCoding/Packages/com.unity.coding/Coding~/Configs/JetBrains). |
|||
* If you use VS Code, install the Editorconfig extension to get automatic code formatting according to our convention |
|||
|
|||
## Known issues |
|||
|
|||
* The Linux Editor 2019.4.7f1 and 2019.4.8f1 might hang when importing HDRP-based Perception projects. For Linux Editor support, use 2019.4.6f1 or 2020.1 |
|||
|
|||
## Citation |
|||
If you find this package useful, consider citing it using: |
|||
``` |
|||
@misc{com.unity.perception2021, |
|||
title={Unity {P}erception Package}, |
|||
author={{Unity Technologies}}, |
|||
howpublished={\url{https://github.com/Unity-Technologies/com.unity.perception}}, |
|||
year={2020} |
|||
} |
|||
``` |
|
|||
m_EditorVersion: 2019.3.13f1 |
|||
m_EditorVersionWithRevision: 2019.3.13f1 (d4ddf0d95db9) |
|||
m_EditorVersion: 2019.4.19f1 |
|||
m_EditorVersionWithRevision: 2019.4.19f1 (ca5b14067cec) |
|
|||
m_EditorVersion: 2019.3.13f1 |
|||
m_EditorVersionWithRevision: 2019.3.13f1 (d4ddf0d95db9) |
|||
m_EditorVersion: 2019.4.19f1 |
|||
m_EditorVersionWithRevision: 2019.4.19f1 (ca5b14067cec) |
|
|||
# Setup for local development |
|||
* Clone the [Perception](https://github.com/Unity-Technologies/com.unity.perception) repository |
|||
* Install and use Unity latest [2019.3 Unity editor](https://unity.com/releases/2019-3) |
|||
# Installing the Perception package in your project |
|||
## Setting up a Project |
|||
Below are two options for getting started using the Perception package. Option 1 is opening existing test projects in the repository. Option 2 new Unity project and integrate the Perception package. |
|||
![ReleaseBadge](https://badge-proxy.cds.internal.unity3d.com/5ab9a162-9dd0-4ba1-ba41-cf25378a927a) |
|||
### Option 1: PerceptionHDRP & PerceptionURP Projects |
|||
The repository includes two projects for local development in `TestProjects` folder, one set up for HDRP and the other for URP. You can open these with the Unity |
|||
editor you installed in Setup instructions. |
|||
This page provides brief instructions on installing the Perception package. Head over to the [Perception Tutorial](Tutorial/TUTORIAL.md) for more detailed instructions and steps for building a sample project. |
|||
|
|||
<img src="images/TestProjects.PNG" align="middle"/> |
|||
1. Install the latest version of **2020.2.x** Unity Editor from [here](https://unity3d.com/get-unity/download/archive). (The Perception package has not been fully tested on newer Unity versions) |
|||
1. Create a new HDRP or URP project, or open an existing project. |
|||
1. Open `Window` -> `Package Manager` |
|||
1. In the Package Manager window find and click the ***+*** button in the upper lefthand corner of the window |
|||
1. Select ***Add package from git URL...*** |
|||
1. Enter `com.unity.perception` and click ***Add*** |
|||
### Option 2: Create a new Project |
|||
These option is walkthrough in creating a new project, then adding the Perception SDK package to the project for development use. |
|||
*The following instructions reference the Unity doc's page on [installing a local package](https://docs.unity3d.com/Manual/upm-ui-local.html)* |
|||
Note that although the Perception package is compatible with both URP and HDRP, Unity Simulation currently only supports URP projects, therefore a URP project is recommended. |
|||
#### Create a new project |
|||
1. Create a new HDRP project or open an existing project |
|||
1. Creating anew HDRP project can be done by creating a new project using the HDRP template |
|||
2. Back in Unity editor, got Window -> Package Manager |
|||
1. Add the High Definition RP package, version 7.1.2 or later from the packages list |
|||
2. In the Package Manager window find and click the ***+*** button in the upper lefthand corner of the window |
|||
3. Select the ***add package from disk*** option |
|||
4. Navigate to the com.unity.perception folder in your cloned repository and select the package.json file |
|||
3. Once you have a project with Perception SDK installed you can move forward to the Getting Started walkthrough |
|||
If you want a specific version of the package, append the version to the end of the "git URL". Ex. `com.unity.perception@0.8.0-preview.1` |
|||
Once completed you can move on to the getting started steps, click [here](Documentation~/GettingStarted.md) to start project setup. |
|||
To install from a local clone of the repository, see [installing a local package](https://docs.unity3d.com/Manual/upm-ui-local.html) in the Unity manual. |
|
|||
using UnityEditorInternal; |
|||
using System; |
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using UnityEditor.UIElements; |
|||
using UnityEngine.UIElements; |
|||
using Button = UnityEngine.UIElements.Button; |
|||
using Toggle = UnityEngine.UIElements.Toggle; |
|||
[CustomEditor(typeof(Labeling))] |
|||
[CustomEditor(typeof(Labeling)), CanEditMultipleObjects] |
|||
const int k_Indent = 7; |
|||
ReorderableList m_LabelsList; |
|||
VisualElement m_Root; |
|||
VisualElement m_ManualLabelingContainer; |
|||
VisualElement m_AutoLabelingContainer; |
|||
VisualElement m_FromLabelConfigsContainer; |
|||
VisualElement m_SuggestedLabelsContainer; |
|||
VisualElement m_SuggestedOnNamePanel; |
|||
VisualElement m_SuggestedOnPathPanel; |
|||
ListView m_CurrentLabelsListView; |
|||
ListView m_SuggestedLabelsListViewFromName; |
|||
ListView m_SuggestedLabelsListViewFromPath; |
|||
ScrollView m_LabelConfigsScrollView; |
|||
PopupField<string> m_LabelingSchemesPopup; |
|||
Button m_AddButton; |
|||
Button m_AddAutoLabelToConfButton; |
|||
Toggle m_AutoLabelingToggle; |
|||
Label m_CurrentAutoLabel; |
|||
Label m_CurrentAutoLabelTitle; |
|||
Label m_AddManualLabelsTitle; |
|||
|
|||
Labeling m_Labeling; |
|||
|
|||
string m_UxmlDir = "Packages/com.unity.perception/Editor/GroundTruth/Uxml/"; |
|||
string m_UxmlPath; |
|||
|
|||
List<string> m_SuggestedLabelsBasedOnName = new List<string>(); |
|||
List<string> m_SuggestedLabelsBasedOnPath = new List<string>(); |
|||
|
|||
public List<string> CommonLabels { get; private set; } = new List<string>(); |
|||
|
|||
List<Type> m_LabelConfigTypes; |
|||
readonly List<ScriptableObject> m_AllLabelConfigsInProject = new List<ScriptableObject>(); |
|||
|
|||
readonly List<AssetLabelingScheme> m_LabelingSchemes = new List<AssetLabelingScheme>(); |
|||
|
|||
/// <summary>
|
|||
/// List of separator characters used for parsing asset names for auto labeling or label suggestion purposes
|
|||
/// </summary>
|
|||
public static readonly string[] NameSeparators = {".", "-", "_"}; |
|||
/// <summary>
|
|||
/// List of separator characters used for parsing asset paths for auto labeling or label suggestion purposes
|
|||
/// </summary>
|
|||
public static readonly string[] PathSeparators = {"/"}; |
|||
|
|||
void OnEnable() |
|||
{ |
|||
m_LabelConfigTypes = AddToConfigWindow.FindAllSubTypes(typeof(LabelConfig<>)); |
|||
|
|||
var mySerializedObject = new SerializedObject(serializedObject.targetObjects[0]); |
|||
m_Labeling = mySerializedObject.targetObject as Labeling; |
|||
|
|||
m_UxmlPath = m_UxmlDir + "Labeling_Main.uxml"; |
|||
m_Root = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(m_UxmlPath).CloneTree(); |
|||
|
|||
m_CurrentLabelsListView = m_Root.Q<ListView>("current-labels-listview"); |
|||
m_SuggestedLabelsListViewFromName = m_Root.Q<ListView>("suggested-labels-name-listview"); |
|||
m_SuggestedLabelsListViewFromPath = m_Root.Q<ListView>("suggested-labels-path-listview"); |
|||
m_LabelConfigsScrollView = m_Root.Q<ScrollView>("label-configs-scrollview"); |
|||
m_SuggestedOnNamePanel = m_Root.Q<VisualElement>("suggested-labels-from-name"); |
|||
m_SuggestedOnPathPanel = m_Root.Q<VisualElement>("suggested-labels-from-path"); |
|||
m_AddButton = m_Root.Q<Button>("add-label"); |
|||
m_CurrentAutoLabel = m_Root.Q<Label>("current-auto-label"); |
|||
m_CurrentAutoLabelTitle = m_Root.Q<Label>("current-auto-label-title"); |
|||
m_AutoLabelingToggle = m_Root.Q<Toggle>("auto-or-manual-toggle"); |
|||
m_ManualLabelingContainer = m_Root.Q<VisualElement>("manual-labeling"); |
|||
m_AutoLabelingContainer = m_Root.Q<VisualElement>("automatic-labeling"); |
|||
m_FromLabelConfigsContainer = m_Root.Q<VisualElement>("from-label-configs"); |
|||
m_SuggestedLabelsContainer = m_Root.Q<VisualElement>("suggested-labels"); |
|||
m_AddAutoLabelToConfButton = m_Root.Q<Button>("add-auto-label-to-config"); |
|||
m_AddManualLabelsTitle = m_Root.Q<Label>("add-manual-labels-title"); |
|||
var dropdownParent = m_Root.Q<VisualElement>("drop-down-parent"); |
|||
|
|||
m_ItIsPossibleToAddMultipleAutoLabelsToConfig = false; |
|||
InitializeLabelingSchemes(dropdownParent); |
|||
AssesAutoLabelingStatus(); |
|||
|
|||
m_FirstItemLabelsArray = serializedObject.FindProperty(nameof(Labeling.labels)); |
|||
|
|||
if (serializedObject.targetObjects.Length > 1) |
|||
{ |
|||
var addedTitle = m_Root.Q<Label>("added-labels-title"); |
|||
addedTitle.text = "Common Labels of Selected Items"; |
|||
|
|||
m_SuggestedOnNamePanel.style.display = DisplayStyle.None; |
|||
|
|||
m_AddAutoLabelToConfButton.text = "Add Automatic Labels of All Selected Assets to Config..."; |
|||
} |
|||
else |
|||
{ |
|||
m_AddAutoLabelToConfButton.text = "Add to Label Config..."; |
|||
} |
|||
|
|||
m_AddAutoLabelToConfButton.clicked += () => |
|||
{ |
|||
AddToConfigWindow.ShowWindow(CreateUnionOfAllLabels().ToList()); |
|||
}; |
|||
|
|||
m_AddButton.clicked += () => |
|||
{ |
|||
var labelsUnion = CreateUnionOfAllLabels(); |
|||
var newLabel = FindNewLabelValue(labelsUnion); |
|||
foreach (var targetObject in targets) |
|||
{ |
|||
if (targetObject is Labeling labeling) |
|||
{ |
|||
var serializedLabelingObject2 = new SerializedObject(labeling); |
|||
var serializedLabelArray2 = serializedLabelingObject2.FindProperty(nameof(Labeling.labels)); |
|||
serializedLabelArray2.InsertArrayElementAtIndex(serializedLabelArray2.arraySize); |
|||
serializedLabelArray2.GetArrayElementAtIndex(serializedLabelArray2.arraySize-1).stringValue = newLabel; |
|||
serializedLabelingObject2.ApplyModifiedProperties(); |
|||
serializedLabelingObject2.SetIsDifferentCacheDirty(); |
|||
serializedObject.SetIsDifferentCacheDirty(); |
|||
} |
|||
} |
|||
ChangesHappeningInForeground = true; |
|||
RefreshManualLabelingData(); |
|||
}; |
|||
|
|||
m_AutoLabelingToggle.RegisterValueChangedCallback(evt => |
|||
{ |
|||
AutoLabelToggleChanged(); |
|||
}); |
|||
|
|||
ChangesHappeningInForeground = true; |
|||
m_Root.schedule.Execute(CheckForModelChanges).Every(30); |
|||
} |
|||
|
|||
int m_PreviousLabelsArraySize = -1; |
|||
/// <summary>
|
|||
/// This boolean is used to signify when changes in the model are triggered directly from the inspector UI by the user.
|
|||
/// In these cases, the scheduled model checker does not need to update the UI again.
|
|||
/// </summary>
|
|||
public bool ChangesHappeningInForeground { get; set; } |
|||
|
|||
SerializedProperty m_FirstItemLabelsArray; |
|||
|
|||
void CheckForModelChanges() |
|||
{ |
|||
if (ChangesHappeningInForeground) |
|||
{ |
|||
ChangesHappeningInForeground = false; |
|||
m_PreviousLabelsArraySize = m_FirstItemLabelsArray.arraySize; |
|||
return; |
|||
} |
|||
|
|||
if (m_FirstItemLabelsArray.arraySize != m_PreviousLabelsArraySize) |
|||
{ |
|||
AssesAutoLabelingStatus(); |
|||
RefreshManualLabelingData(); |
|||
m_PreviousLabelsArraySize = m_FirstItemLabelsArray.arraySize; |
|||
} |
|||
} |
|||
|
|||
bool SerializedObjectHasValidLabelingScheme(SerializedObject serObj) |
|||
{ |
|||
var schemeName = serObj.FindProperty(nameof(Labeling.autoLabelingSchemeType)).stringValue; |
|||
return IsValidLabelingSchemeName(schemeName); |
|||
} |
|||
|
|||
bool IsValidLabelingSchemeName(string schemeName) |
|||
{ |
|||
return schemeName != string.Empty && |
|||
m_LabelingSchemes.FindAll(scheme => scheme.GetType().Name == schemeName).Count > 0; |
|||
} |
|||
|
|||
bool m_ItIsPossibleToAddMultipleAutoLabelsToConfig; |
|||
|
|||
void UpdateUiAspects() |
|||
{ |
|||
m_ManualLabelingContainer.SetEnabled(!m_AutoLabelingToggle.value); |
|||
m_AutoLabelingContainer.SetEnabled(m_AutoLabelingToggle.value); |
|||
|
|||
m_AddManualLabelsTitle.style.display = m_AutoLabelingToggle.value ? DisplayStyle.None : DisplayStyle.Flex; |
|||
m_FromLabelConfigsContainer.style.display = m_AutoLabelingToggle.value ? DisplayStyle.None : DisplayStyle.Flex; |
|||
m_SuggestedLabelsContainer.style.display = m_AutoLabelingToggle.value ? DisplayStyle.None : DisplayStyle.Flex; |
|||
|
|||
m_CurrentLabelsListView.style.minHeight = m_AutoLabelingToggle.value ? 70 : 120; |
|||
|
|||
if (!m_AutoLabelingToggle.value || serializedObject.targetObjects.Length > 1 || |
|||
!SerializedObjectHasValidLabelingScheme(new SerializedObject(serializedObject.targetObjects[0]))) |
|||
{ |
|||
m_CurrentAutoLabel.style.display = DisplayStyle.None; |
|||
m_AddAutoLabelToConfButton.SetEnabled(false); |
|||
} |
|||
else |
|||
{ |
|||
m_CurrentAutoLabel.style.display = DisplayStyle.Flex; |
|||
m_AddAutoLabelToConfButton.SetEnabled(true); |
|||
} |
|||
|
|||
if(m_AutoLabelingToggle.value && serializedObject.targetObjects.Length > 1 && m_ItIsPossibleToAddMultipleAutoLabelsToConfig) |
|||
{ |
|||
m_AddAutoLabelToConfButton.SetEnabled(true); |
|||
} |
|||
|
|||
|
|||
if (serializedObject.targetObjects.Length == 1) |
|||
{ |
|||
m_AutoLabelingToggle.text = "Use Automatic Labeling"; |
|||
} |
|||
else |
|||
{ |
|||
m_CurrentAutoLabelTitle.text = "Select assets individually to inspect their automatic labels."; |
|||
m_AutoLabelingToggle.text = "Use Automatic Labeling for All Selected Items"; |
|||
} |
|||
} |
|||
|
|||
void UpdateCurrentAutoLabelValue(SerializedObject serObj) |
|||
{ |
|||
var array = serObj.FindProperty(nameof(Labeling.labels)); |
|||
if (array.arraySize > 0) |
|||
{ |
|||
m_CurrentAutoLabel.text = array.GetArrayElementAtIndex(0).stringValue; |
|||
} |
|||
} |
|||
|
|||
bool AreSelectedAssetsCompatibleWithAutoLabelScheme(AssetLabelingScheme scheme) |
|||
{ |
|||
foreach (var asset in serializedObject.targetObjects) |
|||
{ |
|||
string label = scheme.GenerateLabel(asset); |
|||
if (label == null) |
|||
{ |
|||
return false; |
|||
} |
|||
} |
|||
return true; |
|||
} |
|||
|
|||
void InitializeLabelingSchemes(VisualElement parent) |
|||
{ |
|||
//this function should be called only once during the lifecycle of the editor element
|
|||
AssetLabelingScheme labelingScheme = new AssetNameLabelingScheme(); |
|||
if (AreSelectedAssetsCompatibleWithAutoLabelScheme(labelingScheme)) m_LabelingSchemes.Add(labelingScheme); |
|||
|
|||
labelingScheme = new AssetFileNameLabelingScheme(); |
|||
if (AreSelectedAssetsCompatibleWithAutoLabelScheme(labelingScheme)) m_LabelingSchemes.Add(labelingScheme); |
|||
|
|||
labelingScheme = new CurrentOrParentsFolderNameLabelingScheme(); |
|||
if (AreSelectedAssetsCompatibleWithAutoLabelScheme(labelingScheme)) m_LabelingSchemes.Add(labelingScheme); |
|||
|
|||
var descriptions = m_LabelingSchemes.Select(scheme => scheme.Description).ToList(); |
|||
descriptions.Insert(0, "<Select Scheme>"); |
|||
m_LabelingSchemesPopup = new PopupField<string>(descriptions, 0) {label = "Labeling Scheme"}; |
|||
m_LabelingSchemesPopup.style.marginLeft = 0; |
|||
parent.Add(m_LabelingSchemesPopup); |
|||
|
|||
m_LabelingSchemesPopup.RegisterValueChangedCallback(evt => AssignAutomaticLabelToSelectedAssets()); |
|||
} |
|||
|
|||
void AutoLabelToggleChanged() |
|||
{ |
|||
UpdateUiAspects(); |
|||
|
|||
if (!m_AutoLabelingToggle.value) |
|||
{ |
|||
m_ItIsPossibleToAddMultipleAutoLabelsToConfig = false; |
|||
|
|||
foreach (var targetObj in serializedObject.targetObjects) |
|||
{ |
|||
var serObj = new SerializedObject(targetObj); |
|||
serObj.FindProperty(nameof(Labeling.useAutoLabeling)).boolValue = false; |
|||
|
|||
if (SerializedObjectHasValidLabelingScheme(serObj)) |
|||
{ |
|||
//asset already had a labeling scheme before auto labeling was disabled, which means it has auto label(s) attached. these should be cleared now.
|
|||
serObj.FindProperty(nameof(Labeling.labels)).ClearArray(); |
|||
} |
|||
|
|||
serObj.FindProperty(nameof(Labeling.autoLabelingSchemeType)).stringValue = string.Empty; |
|||
m_LabelingSchemesPopup.index = 0; |
|||
|
|||
serObj.ApplyModifiedProperties(); |
|||
serObj.SetIsDifferentCacheDirty(); |
|||
} |
|||
} |
|||
|
|||
ChangesHappeningInForeground = true; |
|||
RefreshManualLabelingData(); |
|||
} |
|||
|
|||
void AssignAutomaticLabelToSelectedAssets() |
|||
{ |
|||
//the 0th index of this popup is "<Select Scheme>" and should not do anything
|
|||
if (m_LabelingSchemesPopup.index == 0) |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
m_ItIsPossibleToAddMultipleAutoLabelsToConfig = true; |
|||
|
|||
var labelingScheme = m_LabelingSchemes[m_LabelingSchemesPopup.index - 1]; |
|||
|
|||
foreach (var targetObj in serializedObject.targetObjects) |
|||
{ |
|||
var serObj = new SerializedObject(targetObj); |
|||
serObj.FindProperty(nameof(Labeling.useAutoLabeling)).boolValue = true; //only set this flag once the user has actually chosen a scheme, otherwise, we will not touch the flag
|
|||
serObj.FindProperty(nameof(Labeling.autoLabelingSchemeType)).stringValue = labelingScheme.GetType().Name; |
|||
var serLabelsArray = serObj.FindProperty(nameof(Labeling.labels)); |
|||
serLabelsArray.ClearArray(); |
|||
serLabelsArray.InsertArrayElementAtIndex(0); |
|||
var label = labelingScheme.GenerateLabel(targetObj); |
|||
serLabelsArray.GetArrayElementAtIndex(0).stringValue = label; |
|||
if (targetObj == serializedObject.targetObjects[0] && serializedObject.targetObjects.Length == 1) |
|||
{ |
|||
UpdateCurrentAutoLabelValue(serObj); |
|||
} |
|||
serObj.ApplyModifiedProperties(); |
|||
serObj.SetIsDifferentCacheDirty(); |
|||
} |
|||
|
|||
UpdateUiAspects(); |
|||
ChangesHappeningInForeground = true; |
|||
RefreshManualLabelingData(); |
|||
} |
|||
|
|||
void AssesAutoLabelingStatus() |
|||
{ |
|||
var enabledOrNot = true; |
|||
if (serializedObject.targetObjects.Length == 1) |
|||
{ |
|||
var serObj = new SerializedObject(serializedObject.targetObjects[0]); |
|||
var enabled = serObj.FindProperty(nameof(Labeling.useAutoLabeling)).boolValue; |
|||
m_AutoLabelingToggle.value = enabled; |
|||
var currentLabelingSchemeName = serObj.FindProperty(nameof(Labeling.autoLabelingSchemeType)).stringValue; |
|||
if (IsValidLabelingSchemeName(currentLabelingSchemeName)) |
|||
{ |
|||
m_LabelingSchemesPopup.index = |
|||
m_LabelingSchemes.FindIndex(scheme => scheme.GetType().Name.ToString() == currentLabelingSchemeName) + 1; |
|||
} |
|||
UpdateCurrentAutoLabelValue(serObj); |
|||
} |
|||
else |
|||
{ |
|||
string unifiedLabelingScheme = null; |
|||
var allAssetsUseSameLabelingScheme = true; |
|||
|
|||
foreach (var targetObj in serializedObject.targetObjects) |
|||
{ |
|||
var serObj = new SerializedObject(targetObj); |
|||
var enabled = serObj.FindProperty(nameof(Labeling.useAutoLabeling)).boolValue; |
|||
enabledOrNot &= enabled; |
|||
|
|||
var schemeName = serObj.FindProperty(nameof(Labeling.autoLabelingSchemeType)).stringValue; |
|||
if (schemeName == string.Empty) |
|||
{ |
|||
//if any of the selected assets does not have a labeling scheme, they can't all have the same valid scheme
|
|||
allAssetsUseSameLabelingScheme = false; |
|||
} |
|||
|
|||
if (allAssetsUseSameLabelingScheme) |
|||
{ |
|||
if (unifiedLabelingScheme == null) |
|||
{ |
|||
unifiedLabelingScheme = schemeName; |
|||
} |
|||
else if (unifiedLabelingScheme != schemeName) |
|||
{ |
|||
allAssetsUseSameLabelingScheme = false; |
|||
} |
|||
} |
|||
} |
|||
m_AutoLabelingToggle.value = enabledOrNot; |
|||
public void OnEnable() |
|||
if (allAssetsUseSameLabelingScheme) |
|||
{ |
|||
//all selected assets have the same scheme recorded in their serialized objects
|
|||
m_LabelingSchemesPopup.index = |
|||
m_LabelingSchemes.FindIndex(scheme => scheme.GetType().Name.ToString() == unifiedLabelingScheme) + 1; |
|||
|
|||
m_ItIsPossibleToAddMultipleAutoLabelsToConfig = enabledOrNot; |
|||
//if all selected assets have the same scheme recorded in their serialized objects, and they all
|
|||
//have auto labeling enabled, we can now add all auto labels to a config
|
|||
} |
|||
else |
|||
{ |
|||
//the selected DO NOT have the same scheme recorded in their serialized objects
|
|||
m_LabelingSchemesPopup.index = 0; |
|||
} |
|||
} |
|||
|
|||
UpdateUiAspects(); |
|||
} |
|||
|
|||
HashSet<string> CreateUnionOfAllLabels() |
|||
m_LabelsList = new ReorderableList(serializedObject, serializedObject.FindProperty(nameof(global::UnityEngine.Perception.GroundTruth.Labeling.labels)), true, false, true, true); |
|||
m_LabelsList.drawElementCallback = DrawElement; |
|||
m_LabelsList.onAddCallback += OnAdd; |
|||
m_LabelsList.onRemoveCallback += OnRemove; |
|||
HashSet<String> result = new HashSet<string>(); |
|||
foreach (var obj in targets) |
|||
{ |
|||
if (obj is Labeling labeling) |
|||
{ |
|||
result.UnionWith(labeling.labels); |
|||
} |
|||
} |
|||
return result; |
|||
void OnRemove(ReorderableList list) |
|||
string FindNewLabelValue(HashSet<string> labels) |
|||
if (list.index != -1) |
|||
Labeling.labels.RemoveAt(list.index); |
|||
string baseLabel = "New Label"; |
|||
string label = baseLabel; |
|||
int count = 1; |
|||
while (labels.Contains(label)) |
|||
{ |
|||
label = baseLabel + "_" + count++; |
|||
} |
|||
return label; |
|||
Labeling Labeling => (Labeling)target; |
|||
public override VisualElement CreateInspectorGUI() |
|||
{ |
|||
serializedObject.Update(); |
|||
m_Labeling = serializedObject.targetObject as Labeling; |
|||
RefreshCommonLabels(); |
|||
RefreshSuggestedLabelLists(); |
|||
RefreshLabelConfigsList(); |
|||
SetupListsAndScrollers(); |
|||
return m_Root; |
|||
} |
|||
void OnAdd(ReorderableList list) |
|||
void RefreshLabelConfigsList() |
|||
Labeling.labels.Add(""); |
|||
List<string> labelConfigGuids = new List<string>(); |
|||
foreach (var type in m_LabelConfigTypes) |
|||
{ |
|||
labelConfigGuids.AddRange(AssetDatabase.FindAssets("t:"+type.Name)); |
|||
} |
|||
|
|||
m_AllLabelConfigsInProject.Clear(); |
|||
foreach (var configGuid in labelConfigGuids) |
|||
{ |
|||
var asset = AssetDatabase.LoadAssetAtPath<ScriptableObject>(AssetDatabase.GUIDToAssetPath(configGuid)); |
|||
m_AllLabelConfigsInProject.Add(asset); |
|||
} |
|||
void DrawElement(Rect rect, int index, bool isactive, bool isfocused) |
|||
void RemoveAddedLabelsFromSuggestedLists() |
|||
{ |
|||
m_SuggestedLabelsBasedOnName.RemoveAll(s => CommonLabels.Contains(s)); |
|||
m_SuggestedLabelsBasedOnPath.RemoveAll(s => CommonLabels.Contains(s)); |
|||
} |
|||
|
|||
void RefreshSuggestedLabelLists() |
|||
using (var change = new EditorGUI.ChangeCheckScope()) |
|||
m_SuggestedLabelsBasedOnName.Clear(); |
|||
m_SuggestedLabelsBasedOnPath.Clear(); |
|||
|
|||
//based on name
|
|||
if (serializedObject.targetObjects.Length == 1) |
|||
var indent = k_Indent * index; |
|||
if (indent >= rect.width) |
|||
string assetName = serializedObject.targetObject.name; |
|||
var pieces = assetName.Split(NameSeparators, StringSplitOptions.RemoveEmptyEntries).ToList(); |
|||
if (pieces.Count > 1) |
|||
{ |
|||
//means the asset name was actually split
|
|||
m_SuggestedLabelsBasedOnName.Add(assetName); |
|||
} |
|||
|
|||
m_SuggestedLabelsBasedOnName.AddRange(pieces); |
|||
} |
|||
|
|||
//based on path
|
|||
string assetPath = GetAssetOrPrefabPath(m_Labeling.gameObject); |
|||
//var prefabObject = PrefabUtility.GetCorrespondingObjectFromSource(m_Labeling.gameObject);
|
|||
if (assetPath != null) |
|||
{ |
|||
var stringList = assetPath.Split(PathSeparators, StringSplitOptions.RemoveEmptyEntries).ToList(); |
|||
stringList.Reverse(); |
|||
m_SuggestedLabelsBasedOnPath.AddRange(stringList); |
|||
} |
|||
|
|||
foreach (var targetObject in targets) |
|||
{ |
|||
if (targetObject == target) |
|||
continue; //we have already taken care of this one above
|
|||
|
|||
assetPath = GetAssetOrPrefabPath(((Labeling)targetObject).gameObject); |
|||
//prefabObject = PrefabUtility.GetCorrespondingObjectFromSource(((Labeling)targetObject).gameObject);
|
|||
if (assetPath != null) |
|||
{ |
|||
var stringList = assetPath.Split(PathSeparators, StringSplitOptions.RemoveEmptyEntries).ToList(); |
|||
m_SuggestedLabelsBasedOnPath = m_SuggestedLabelsBasedOnPath.Intersect(stringList).ToList(); |
|||
} |
|||
} |
|||
|
|||
RemoveAddedLabelsFromSuggestedLists(); |
|||
//Debug.Log("list update, source list count is:" + m_SuggestedLabelsBasedOnPath.Count);
|
|||
} |
|||
|
|||
public void RefreshManualLabelingData() |
|||
{ |
|||
serializedObject.SetIsDifferentCacheDirty(); |
|||
serializedObject.Update(); |
|||
RefreshCommonLabels(); |
|||
RefreshSuggestedLabelLists(); |
|||
SetupSuggestedLabelsListViews(); |
|||
SetupCurrentLabelsListView(); |
|||
UpdateSuggestedPanelVisibility(); |
|||
} |
|||
|
|||
void SetupListsAndScrollers() |
|||
{ |
|||
//Labels that have already been added to the target Labeling component
|
|||
SetupCurrentLabelsListView(); |
|||
//Labels suggested by the system, which the user can add
|
|||
SetupSuggestedLabelsListViews(); |
|||
//Add labels from Label Configs present in project
|
|||
SetupLabelConfigsScrollView(); |
|||
UpdateSuggestedPanelVisibility(); |
|||
} |
|||
|
|||
void UpdateSuggestedPanelVisibility() |
|||
{ |
|||
m_SuggestedOnNamePanel.style.display = m_SuggestedLabelsBasedOnName.Count == 0 ? DisplayStyle.None : DisplayStyle.Flex; |
|||
|
|||
m_SuggestedOnPathPanel.style.display = m_SuggestedLabelsBasedOnPath.Count == 0 ? DisplayStyle.None : DisplayStyle.Flex; |
|||
|
|||
if (m_SuggestedLabelsBasedOnPath.Count == 0 && m_SuggestedLabelsBasedOnName.Count == 0) |
|||
{ |
|||
m_SuggestedLabelsContainer.style.display = DisplayStyle.None; |
|||
} |
|||
} |
|||
|
|||
|
|||
void RefreshCommonLabels() |
|||
{ |
|||
CommonLabels.Clear(); |
|||
CommonLabels.AddRange(((Labeling)serializedObject.targetObjects[0]).labels); |
|||
|
|||
foreach (var obj in serializedObject.targetObjects) |
|||
{ |
|||
CommonLabels = CommonLabels.Intersect(((Labeling) obj).labels).ToList(); |
|||
} |
|||
} |
|||
|
|||
void SetupCurrentLabelsListView() |
|||
{ |
|||
m_CurrentLabelsListView.itemsSource = CommonLabels; |
|||
|
|||
VisualElement MakeItem() => |
|||
new AddedLabelEditor(this, m_CurrentLabelsListView); |
|||
|
|||
void BindItem(VisualElement e, int i) |
|||
{ |
|||
if (e is AddedLabelEditor addedLabel) |
|||
{ |
|||
addedLabel.indexInList = i; |
|||
addedLabel.labelTextField.value = CommonLabels[i]; |
|||
} |
|||
} |
|||
|
|||
const int itemHeight = 35; |
|||
|
|||
m_CurrentLabelsListView.bindItem = BindItem; |
|||
m_CurrentLabelsListView.makeItem = MakeItem; |
|||
m_CurrentLabelsListView.itemHeight = itemHeight; |
|||
|
|||
m_CurrentLabelsListView.itemsSource = CommonLabels; |
|||
m_CurrentLabelsListView.selectionType = SelectionType.None; |
|||
} |
|||
|
|||
void SetupSuggestedLabelsListViews() |
|||
{ |
|||
SetupSuggestedLabelsBasedOnFlatList(m_SuggestedLabelsListViewFromName, m_SuggestedLabelsBasedOnName); |
|||
SetupSuggestedLabelsBasedOnFlatList(m_SuggestedLabelsListViewFromPath, m_SuggestedLabelsBasedOnPath); |
|||
} |
|||
|
|||
void SetupSuggestedLabelsBasedOnFlatList(ListView labelsListView, List<string> stringList) |
|||
{ |
|||
labelsListView.itemsSource = stringList; |
|||
|
|||
VisualElement MakeItem() => new SuggestedLabelElement(this); |
|||
|
|||
void BindItem(VisualElement e, int i) |
|||
{ |
|||
if (e is SuggestedLabelElement suggestedLabel) |
|||
{ |
|||
suggestedLabel.label.text = stringList[i]; |
|||
} |
|||
} |
|||
|
|||
const int itemHeight = 32; |
|||
|
|||
labelsListView.bindItem = BindItem; |
|||
labelsListView.makeItem = MakeItem; |
|||
labelsListView.itemHeight = itemHeight; |
|||
labelsListView.selectionType = SelectionType.None; |
|||
} |
|||
void SetupLabelConfigsScrollView() |
|||
{ |
|||
m_LabelConfigsScrollView.Clear(); |
|||
foreach (var config in m_AllLabelConfigsInProject) |
|||
{ |
|||
VisualElement configElement = new LabelConfigElement(this, config); |
|||
m_LabelConfigsScrollView.Add(configElement); |
|||
} |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Get the path of the given asset in the project, or get the path of the given Scene GameObject's source prefab if any
|
|||
/// </summary>
|
|||
/// <param name="obj"></param>
|
|||
/// <returns></returns>
|
|||
public static string GetAssetOrPrefabPath(UnityEngine.Object obj) |
|||
{ |
|||
string assetPath = AssetDatabase.GetAssetPath(obj); |
|||
|
|||
if (assetPath == string.Empty) |
|||
{ |
|||
//this indicates that gObj is a scene object and not a prefab directly selected from the Project tab
|
|||
var prefabObject = PrefabUtility.GetCorrespondingObjectFromSource(obj); |
|||
if (prefabObject) |
|||
{ |
|||
assetPath = AssetDatabase.GetAssetPath(prefabObject); |
|||
} |
|||
} |
|||
|
|||
return assetPath; |
|||
} |
|||
} |
|||
|
|||
class AddedLabelEditor : VisualElement |
|||
{ |
|||
string m_UxmlDir = "Packages/com.unity.perception/Editor/GroundTruth/Uxml/"; |
|||
|
|||
public TextField labelTextField; |
|||
public int indexInList; |
|||
|
|||
public AddedLabelEditor(LabelingEditor editor, ListView listView) |
|||
{ |
|||
var uxmlPath = m_UxmlDir + "AddedLabelElement.uxml"; |
|||
AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(uxmlPath).CloneTree(this); |
|||
labelTextField = this.Q<TextField>("label-value"); |
|||
var removeButton = this.Q<Button>("remove-button"); |
|||
var addToConfigButton = this.Q<Button>("add-to-config-button"); |
|||
|
|||
labelTextField.isDelayed = true; |
|||
|
|||
labelTextField.RegisterValueChangedCallback((cEvent) => |
|||
{ |
|||
//Do not let the user define a duplicate label
|
|||
if (editor.CommonLabels.Contains(cEvent.newValue) && editor.CommonLabels.IndexOf(cEvent.newValue) != indexInList) |
|||
{ |
|||
//The listview recycles child visual elements and that causes the RegisterValueChangedCallback event to be called when scrolling.
|
|||
//Therefore, we need to make sure we are not in this code block just because of scrolling, but because the user is actively changing one of the labels.
|
|||
//The editor.CommonLabels.IndexOf(cEvent.newValue) != m_IndexInList check is for this purpose.
|
|||
|
|||
Debug.LogError("A label with the string " + cEvent.newValue + " has already been added to selected objects."); |
|||
editor.ChangesHappeningInForeground = true; |
|||
editor.RefreshManualLabelingData(); |
|||
} |
|||
|
|||
bool shouldRefresh = false; |
|||
|
|||
foreach (var targetObject in editor.targets) |
|||
{ |
|||
if (targetObject is Labeling labeling) |
|||
{ |
|||
var indexToModifyInTargetLabelList = |
|||
labeling.labels.IndexOf(editor.CommonLabels[indexInList]); |
|||
|
|||
|
|||
var serializedLabelingObject2 = new SerializedObject(labeling); |
|||
var serializedLabelArray2 = serializedLabelingObject2.FindProperty(nameof(Labeling.labels)); |
|||
serializedLabelArray2.GetArrayElementAtIndex(indexToModifyInTargetLabelList).stringValue = cEvent.newValue; |
|||
shouldRefresh = shouldRefresh || serializedLabelArray2.serializedObject.hasModifiedProperties; |
|||
serializedLabelingObject2.ApplyModifiedProperties(); |
|||
serializedLabelingObject2.SetIsDifferentCacheDirty(); |
|||
} |
|||
} |
|||
|
|||
//the value change event is called even when the listview recycles its child elements for re-use during scrolling, therefore, we should check to make sure there are modified properties, otherwise we would be doing the refresh for no reason (reduces scrolling performance)
|
|||
if (shouldRefresh) |
|||
{ |
|||
editor.ChangesHappeningInForeground = true; |
|||
editor.RefreshManualLabelingData(); |
|||
} |
|||
}); |
|||
|
|||
addToConfigButton.clicked += () => |
|||
{ |
|||
AddToConfigWindow.ShowWindow(labelTextField.value); |
|||
}; |
|||
|
|||
removeButton.clicked += () => |
|||
{ |
|||
List<string> commonLabels = new List<string>(); |
|||
var contentRect = new Rect(rect.x + indent, rect.y, rect.width - indent, rect.height); |
|||
var value = EditorGUI.TextField(contentRect, Labeling.labels[index]); |
|||
if (change.changed) |
|||
commonLabels.Clear(); |
|||
var firstTarget = editor.targets[0] as Labeling; |
|||
if (firstTarget != null) |
|||
{ |
|||
commonLabels.AddRange(firstTarget.labels); |
|||
|
|||
foreach (var obj in editor.targets) |
|||
{ |
|||
commonLabels = commonLabels.Intersect(((Labeling) obj).labels).ToList(); |
|||
} |
|||
|
|||
foreach (var targetObject in editor.targets) |
|||
{ |
|||
if (targetObject is Labeling labeling) |
|||
{ |
|||
RemoveLabelFromLabelingSerObj(labeling, commonLabels); |
|||
} |
|||
} |
|||
editor.serializedObject.SetIsDifferentCacheDirty(); |
|||
editor.RefreshManualLabelingData(); |
|||
} |
|||
}; |
|||
} |
|||
|
|||
void RemoveLabelFromLabelingSerObj(Labeling labeling, List<string> commonLabels) |
|||
{ |
|||
Dictionary<int, int> commonsIndexToLabelsIndex = new Dictionary<int, int>(); |
|||
|
|||
for (int i = 0; i < labeling.labels.Count; i++) |
|||
{ |
|||
string label = labeling.labels[i]; |
|||
|
|||
for (int j = 0; j < commonLabels.Count; j++) |
|||
{ |
|||
string label2 = commonLabels[j]; |
|||
|
|||
if (string.Equals(label, label2) && !commonsIndexToLabelsIndex.ContainsKey(j)) |
|||
{ |
|||
commonsIndexToLabelsIndex.Add(j, i); |
|||
} |
|||
} |
|||
} |
|||
|
|||
var serializedLabelingObject2 = new SerializedObject(labeling); |
|||
var serializedLabelArray2 = serializedLabelingObject2.FindProperty("labels"); |
|||
serializedLabelArray2.DeleteArrayElementAtIndex(commonsIndexToLabelsIndex[indexInList]); |
|||
serializedLabelingObject2.ApplyModifiedProperties(); |
|||
serializedLabelingObject2.SetIsDifferentCacheDirty(); |
|||
} |
|||
} |
|||
|
|||
class SuggestedLabelElement : VisualElement |
|||
{ |
|||
string m_UxmlDir = "Packages/com.unity.perception/Editor/GroundTruth/Uxml/"; |
|||
public Label label; |
|||
|
|||
public SuggestedLabelElement(LabelingEditor editor) |
|||
{ |
|||
var uxmlPath = m_UxmlDir + "SuggestedLabelElement.uxml"; |
|||
AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(uxmlPath).CloneTree(this); |
|||
label = this.Q<Label>("label-value"); |
|||
var addButton = this.Q<Button>("add-button"); |
|||
|
|||
addButton.clicked += () => |
|||
{ |
|||
foreach (var targetObject in editor.serializedObject.targetObjects) |
|||
{ |
|||
if (targetObject is Labeling labeling) |
|||
{ |
|||
if (labeling.labels.Contains(label.text)) |
|||
continue; //Do not allow duplicate labels in one asset. Duplicate labels have no use and cause other operations (especially mutlt asset editing) to get messed up
|
|||
var serializedLabelingObject2 = new SerializedObject(targetObject); |
|||
var serializedLabelArray2 = serializedLabelingObject2.FindProperty("labels"); |
|||
serializedLabelArray2.InsertArrayElementAtIndex(serializedLabelArray2.arraySize); |
|||
serializedLabelArray2.GetArrayElementAtIndex(serializedLabelArray2.arraySize-1).stringValue = label.text; |
|||
serializedLabelingObject2.ApplyModifiedProperties(); |
|||
serializedLabelingObject2.SetIsDifferentCacheDirty(); |
|||
editor.serializedObject.SetIsDifferentCacheDirty(); |
|||
} |
|||
} |
|||
editor.ChangesHappeningInForeground = true; |
|||
editor.RefreshManualLabelingData(); |
|||
}; |
|||
} |
|||
} |
|||
|
|||
class LabelConfigElement : VisualElement |
|||
{ |
|||
string m_UxmlDir = "Packages/com.unity.perception/Editor/GroundTruth/Uxml/"; |
|||
bool m_Collapsed = true; |
|||
|
|||
ListView m_LabelsListView; |
|||
VisualElement m_CollapseToggle; |
|||
|
|||
public LabelConfigElement(LabelingEditor editor, ScriptableObject config) |
|||
{ |
|||
var uxmlPath = m_UxmlDir + "ConfigElementForAddingLabelsFrom.uxml"; |
|||
AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(uxmlPath).CloneTree(this); |
|||
m_LabelsListView = this.Q<ListView>("label-config-contents-listview"); |
|||
var openButton = this.Q<Button>("open-config-button"); |
|||
var configName = this.Q<Label>("config-name"); |
|||
configName.text = config.name; |
|||
m_CollapseToggle = this.Q<VisualElement>("collapse-toggle"); |
|||
|
|||
openButton.clicked += () => |
|||
{ |
|||
Selection.SetActiveObjectWithContext(config, null); |
|||
}; |
|||
|
|||
var propertyInfo = config.GetType().GetProperty(IdLabelConfig.publicLabelEntriesFieldName); |
|||
if (propertyInfo != null) |
|||
{ |
|||
var objectList = (IEnumerable) propertyInfo.GetValue(config); |
|||
var labelEntryList = objectList.Cast<ILabelEntry>().ToList(); |
|||
var labelList = labelEntryList.Select(entry => entry.label).ToList(); |
|||
|
|||
m_LabelsListView.itemsSource = labelList; |
|||
|
|||
VisualElement MakeItem() |
|||
{ |
|||
var element = new SuggestedLabelElement(editor); |
|||
element.AddToClassList("label_add_from_config"); |
|||
return element; |
|||
} |
|||
|
|||
void BindItem(VisualElement e, int i) |
|||
Labeling.labels[index] = value; |
|||
if (e is SuggestedLabelElement suggestedLabel) |
|||
{ |
|||
suggestedLabel.label.text = labelList[i]; |
|||
} |
|||
|
|||
const int itemHeight = 27; |
|||
|
|||
m_LabelsListView.bindItem = BindItem; |
|||
m_LabelsListView.makeItem = MakeItem; |
|||
m_LabelsListView.itemHeight = itemHeight; |
|||
m_LabelsListView.selectionType = SelectionType.None; |
|||
|
|||
m_CollapseToggle.RegisterCallback<MouseUpEvent>(evt => |
|||
{ |
|||
m_Collapsed = !m_Collapsed; |
|||
ApplyCollapseState(); |
|||
}); |
|||
|
|||
ApplyCollapseState(); |
|||
public override void OnInspectorGUI() |
|||
void ApplyCollapseState() |
|||
m_LabelsList.DoLayoutList(); |
|||
if (m_Collapsed) |
|||
{ |
|||
m_CollapseToggle.AddToClassList("collapsed-toggle-state"); |
|||
m_LabelsListView.AddToClassList("collapsed"); |
|||
} |
|||
else |
|||
{ |
|||
m_CollapseToggle.RemoveFromClassList("collapsed-toggle-state"); |
|||
m_LabelsListView.RemoveFromClassList("collapsed"); |
|||
} |
|||
} |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// A labeling scheme based on which an automatic label can be produced for a given asset. E.g. based on asset name, asset path, etc.
|
|||
/// </summary>
|
|||
abstract class AssetLabelingScheme |
|||
{ |
|||
/// <summary>
|
|||
/// The description of how this scheme generates labels. Used in the dropdown menu in the UI.
|
|||
/// </summary>
|
|||
public abstract string Description { get; } |
|||
|
|||
/// <summary>
|
|||
/// Generate a label for the given asset
|
|||
/// </summary>
|
|||
/// <param name="asset"></param>
|
|||
/// <returns></returns>
|
|||
public abstract string GenerateLabel(UnityEngine.Object asset); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Asset labeling scheme that outputs the given asset's name as its automatic label
|
|||
/// </summary>
|
|||
class AssetNameLabelingScheme : AssetLabelingScheme |
|||
{ |
|||
///<inheritdoc/>
|
|||
public override string Description => "Use asset name"; |
|||
|
|||
///<inheritdoc/>
|
|||
public override string GenerateLabel(UnityEngine.Object asset) |
|||
{ |
|||
return asset.name; |
|||
} |
|||
} |
|||
|
|||
|
|||
/// <summary>
|
|||
/// Asset labeling scheme that outputs the given asset's file name, including extension, as its automatic label
|
|||
/// </summary>
|
|||
class AssetFileNameLabelingScheme : AssetLabelingScheme |
|||
{ |
|||
///<inheritdoc/>
|
|||
public override string Description => "Use file name with extension"; |
|||
|
|||
///<inheritdoc/>
|
|||
public override string GenerateLabel(UnityEngine.Object asset) |
|||
{ |
|||
string assetPath = LabelingEditor.GetAssetOrPrefabPath(asset); |
|||
var stringList = assetPath.Split(LabelingEditor.PathSeparators, StringSplitOptions.RemoveEmptyEntries) |
|||
.ToList(); |
|||
return stringList.Count > 0 ? stringList.Last() : null; |
|||
} |
|||
} |
|||
|
|||
|
|||
/// <summary>
|
|||
/// Asset labeling scheme that outputs the given asset's folder name as its automatic label
|
|||
/// </summary>
|
|||
class CurrentOrParentsFolderNameLabelingScheme : AssetLabelingScheme |
|||
{ |
|||
///<inheritdoc/>
|
|||
public override string Description => "Use the asset's folder name"; |
|||
|
|||
///<inheritdoc/>
|
|||
public override string GenerateLabel(UnityEngine.Object asset) |
|||
{ |
|||
string assetPath = LabelingEditor.GetAssetOrPrefabPath(asset); |
|||
var stringList = assetPath.Split(LabelingEditor.PathSeparators, StringSplitOptions.RemoveEmptyEntries) |
|||
.ToList(); |
|||
return stringList.Count > 1 ? stringList[stringList.Count-2] : null; |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 2e725508a34c40a0938c8d891b371980 |
|||
guid: 387b8732b87094321af57795df93aec4 |
|||
timeCreated: 1585933334 |
|
|||
fileFormatVersion: 2 |
|||
guid: 910dd3186e1c4fad8eb6aca9b9ee0f48 |
|||
guid: 43cb2a3117353435abe59ca5217974a8 |
|||
timeCreated: 1585940009 |
|
|||
using System; |
|||
using System.Collections; |
|||
using System.IO; |
|||
using UnityEditor; |
|||
using UnityEngine; |
|||
using UnityEngine.TestTools; |
|||
namespace GroundTruth |
|||
namespace GroundTruthTests |
|||
public class SimulationManagerEditorTests |
|||
[TestFixture] |
|||
[Serializable] |
|||
public class DatasetCaptureEditorTests |
|||
[SerializeField] |
|||
string expectedDatasetPath; |
|||
Assert.Throws<InvalidOperationException>(() => SimulationManager.RegisterEgo("")); |
|||
Assert.Throws<InvalidOperationException>(() => DatasetCapture.RegisterEgo("")); |
|||
Assert.Throws<InvalidOperationException>(() => SimulationManager.RegisterAnnotationDefinition("")); |
|||
Assert.Throws<InvalidOperationException>(() => DatasetCapture.RegisterAnnotationDefinition("")); |
|||
Assert.Throws<InvalidOperationException>(() => SimulationManager.RegisterMetricDefinition("")); |
|||
Assert.Throws<InvalidOperationException>(() => DatasetCapture.RegisterMetricDefinition("")); |
|||
} |
|||
[UnityTest] |
|||
public IEnumerator SimpleData_GeneratesFullDataset_OnExitPlaymode() |
|||
{ |
|||
yield return new EnterPlayMode(); |
|||
DatasetCapture.ResetSimulation(); |
|||
var ego = DatasetCapture.RegisterEgo("ego"); |
|||
var sensor = DatasetCapture.RegisterSensor(ego, "camera", "", 0, CaptureTriggerMode.Scheduled, 0.1f, 0); |
|||
sensor.ReportCapture("file.txt", new SensorSpatialData()); |
|||
expectedDatasetPath = DatasetCapture.OutputDirectory; |
|||
yield return new ExitPlayMode(); |
|||
FileAssert.Exists(Path.Combine(expectedDatasetPath, "sensors.json")); |
|||
} |
|||
[UnityTest] |
|||
public IEnumerator StepFunction_OverridesSimulationDeltaTime_AndRunsSensors() |
|||
{ |
|||
yield return new EnterPlayMode(); |
|||
DatasetCapture.ResetSimulation(); |
|||
var ego = DatasetCapture.RegisterEgo("ego"); |
|||
var sensor = DatasetCapture.RegisterSensor(ego, "camera", "", 0, CaptureTriggerMode.Scheduled, 2f, 0); |
|||
yield return null; |
|||
var timeBeforeStep = Time.time; |
|||
EditorApplication.isPaused = true; |
|||
EditorApplication.Step(); |
|||
Assert.True(Time.time - timeBeforeStep < .3f); |
|||
Assert.True(sensor.ShouldCaptureThisFrame); |
|||
yield return new ExitPlayMode(); |
|||
} |
|||
} |
|||
} |
|
|||
{ |
|||
"dependencies": { |
|||
"com.unity.burst": "1.4.6", |
|||
"com.unity.collections": "0.9.0-preview.6", |
|||
"com.unity.entities": "0.8.0-preview.8", |
|||
"com.unity.simulation.capture": "0.0.10-preview.6", |
|||
"com.unity.simulation.core": "0.0.10-preview.8" |
|||
}, |
|||
"description": "Tools for authoring and executing autonomous vehicle simulations.", |
|||
"displayName": "Perception", |
|||
"name": "com.unity.perception", |
|||
"unity": "2019.3", |
|||
"version": "0.1.0-preview.3" |
|||
"com.unity.simulation.capture": "0.0.10-preview.22", |
|||
"com.unity.simulation.client": "0.0.10-preview.10", |
|||
"com.unity.simulation.core": "0.0.10-preview.22" |
|||
}, |
|||
"description": "Tools for generating large-scale data sets for perception-based machine learning training and validation", |
|||
"displayName": "Perception", |
|||
"name": "com.unity.perception", |
|||
"unity": "2019.4", |
|||
"version": "0.8.0-preview.3", |
|||
"samples": [ |
|||
{ |
|||
"displayName": "Tutorial Files", |
|||
"description": "These files accompany the Perception Tutorial, found at https://github.com/Unity-Technologies/com.unity.perception", |
|||
"path": "Samples~/Tutorial Files" |
|||
}, |
|||
{ |
|||
"displayName": "Human Pose Labeling and Randomization", |
|||
"description": "These files accompany the Human Pose Labeling and Randomization Tutorial, found at https://github.com/Unity-Technologies/com.unity.perception", |
|||
"path": "Samples~/Human Pose Labeling and Randomization" |
|||
} |
|||
] |
|||
} |
|
|||
{% metadata_file .yamato/environments.yml %} |
|||
|
|||
--- |
|||
|
|||
publish: |
|||
name: Publish Perception package to internal registry |
|||
agent: |
|||
type: Unity::VM |
|||
image: package-ci/win10:stable |
|||
flavor: b1.large |
|||
commands: |
|||
- npm install upm-ci-utils@stable -g --registry {{ upmci_registry }} |
|||
- upm-ci package publish --package-path com.unity.perception |
|||
# triggers: |
|||
# tags: |
|||
# only: |
|||
# - /^(r|R)(c|C)-\d+\.\d+\.\d+(-preview(\.\d+)?)?$/ |
|||
artifacts: |
|||
artifacts: |
|||
paths: |
|||
- "upm-ci~/packages/*.tgz" |
|||
dependencies: |
|||
- .yamato/upm-ci-full.yml#pack_Perception |
|||
{% for editor in complete_editors %} |
|||
{% for platform in publish_platforms %} |
|||
{% for suite in suites %} |
|||
{% for project in projects %} |
|||
- .yamato/upm-ci-full.yml#pkg_test_Perception_{{platform.name}}_{{editor.version}} |
|||
- .yamato/upm-ci-testprojects.yml#{{project.name}}_windows_{{suite.name}}_{{editor.version}} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
|
|
|||
{% metadata_file .yamato/environments.yml %} |
|||
|
|||
--- |
|||
|
|||
{% for editor in performance_editors %} |
|||
{% for suite in performance_suites %} |
|||
{% for project in projects %} |
|||
{{project.name}}_linux_{{suite.name}}_{{editor.version}}: |
|||
name : {{project.name}} {{ suite.display_name }} performance tests ({{ editor.version }}, Linux) |
|||
agent: |
|||
type: Unity::VM::GPU |
|||
model: rtx2080 |
|||
image: cds-ops/ubuntu-18.04-base:stable |
|||
flavor: b1.large |
|||
variables: |
|||
PATH: /root/.local/bin:/home/bokken/bin:/home/bokken/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin:/home/bokken/.npm-global/bin |
|||
commands: |
|||
- git submodule update --init --recursive |
|||
- pip install unity-downloader-cli --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple --upgrade --user |
|||
- git clone git@github.cds.internal.unity3d.com:unity/utr.git utr |
|||
- unity-downloader-cli -u {{ editor.version }} -c editor -c StandaloneSupport-IL2CPP -c Linux --wait --published |
|||
{% if suite.name == "standalone" %} |
|||
- DISPLAY=:0.0 utr/utr --testproject=./TestProjects/{{project.name}} --editor-location=.Editor --artifacts_path=test-results --stdout-filter=minimal --extra-editor-arg="--force-vulkan" {{suite.args}}StandaloneLinux64 --category="Performance" --report-performance-data --performance-project-id=com.unity.perception --zero-tests-are-ok=1 |
|||
{% else %} |
|||
- DISPLAY=:0.0 utr/utr --testproject=./TestProjects/{{project.name}} --editor-location=.Editor --artifacts_path=test-results --stdout-filter=minimal --extra-editor-arg="--force-vulkan" {{suite.args}} --category="Performance" --report-performance-data --performance-project-id=com.unity.perception --zero-tests-are-ok=1 |
|||
{% endif %} |
|||
artifacts: |
|||
logs: |
|||
paths: |
|||
- "test-results/**/*" |
|||
{% endfor %} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
|
|||
{% for editor in performance_editors %} |
|||
{% for suite in performance_suites %} |
|||
{% for project in projects %} |
|||
{{project.name}}_windows_{{suite.name}}_{{editor.version}}: |
|||
name : {{project.name}} {{ suite.display_name }} performance tests ({{ editor.version }}, Windows) |
|||
agent: |
|||
type: Unity::VM::GPU |
|||
model: rtx2080 |
|||
image: graphics-foundation/win10-dxr:stable |
|||
flavor: b1.large |
|||
commands: |
|||
- git submodule update --init --recursive |
|||
- git clone git@github.cds.internal.unity3d.com:unity/utr.git utr |
|||
- pip install unity-downloader-cli --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple --upgrade |
|||
- unity-downloader-cli -u {{ editor.version }} -c editor -c StandaloneSupport-IL2CPP -c Linux --wait --published |
|||
{% if suite.name == "standalone" %} |
|||
- utr/utr --testproject=./TestProjects/{{project.name}} --editor-location=./.Editor --artifacts_path=test-results --stdout-filter=minimal --extra-editor-arg="--force-d3d11" {{suite.args}}StandaloneWindows64 --category="Performance" --report-performance-data --performance-project-id=com.unity.perception --zero-tests-are-ok=1 |
|||
{% else %} |
|||
- utr/utr --testproject=./TestProjects/{{project.name}} --editor-location=./.Editor --artifacts_path=test-results --stdout-filter=minimal --extra-editor-arg="--force-d3d11" {{suite.args}} --category="Performance" --report-performance-data --performance-project-id=com.unity.perception --zero-tests-are-ok=1 |
|||
{% endif %} |
|||
artifacts: |
|||
logs: |
|||
paths: |
|||
- "test-results/**/*" |
|||
{% endfor %} |
|||
{% endfor %} |
|||
{% endfor %} |
|||
|
|||
# Not including OSX because the only OSX platform on Bokken with a GPU is a Mac Mini, of which there are only a few and setting up Yamato jobs is very complicated. |
|||
|
|||
# {% for variant in package_variants %} |
|||
# {% for editor in complete_editors %} |
|||
# code_coverage_win_{{editor.version}}: |
|||
# name: Code Coverage Report - Windows |
|||
# agent: |
|||
# type: Unity::VM |
|||
# image: package-ci/win10:stable |
|||
# flavor: b1.large |
|||
# commands: |
|||
# - npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm |
|||
# - upm-ci package test --unity-version {{editor.version}} --enable-code-coverage --code-coverage-options 'enableCyclomaticComplexity;generateHtmlReport' |
|||
# artifacts: |
|||
# logs: |
|||
# paths: |
|||
# - "upm-ci~/test-results/**/*" |
|||
# dependencies: |
|||
# - .yamato/upm-ci-full.yml#pack_{{ variant.name }} |
|||
# {% endfor %} |
|||
# {% endfor %} |
|
|||
|
|||
upmci_registry: https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm |
|||
|
|||
# sticking to 2019.4.6f1 for testing for now because Linux Editor fails to open PerceptionHDRP on 2019.4.8f1 |
|||
# see https://fogbugz.unity3d.com/default.asp?1273518_d68j5lb6eucglb84 |
|||
coverage_editors: |
|||
- version: 2019.4.18f1 |
|||
|
|||
per_commit_editors: |
|||
- version: 2019.4.18f1 |
|||
# - version: 2020.1.15f1 |
|||
|
|||
performance_editors: |
|||
- version: 2019.4.18f1 |
|||
# - version: 2020.1.3f1 |
|||
|
|||
complete_editors: |
|||
- version: 2019.4.18f1 |
|||
# - version: 2020.1.15f1 |
|||
# - version: 2020.2.0a21 |
|||
|
|||
publish_platforms: |
|||
- name: win |
|||
type: Unity::VM |
|||
image: package-ci/win10:stable |
|||
flavor: b1.large |
|||
extra-args: --force-d3d11 |
|||
standalone-platform: StandaloneWindows64 |
|||
- name: mac |
|||
type: Unity::VM::osx |
|||
image: package-ci/mac:stable |
|||
flavor: m1.mac |
|||
extra-args: --force-metal |
|||
standalone-platform: StandaloneOSX |
|||
- name: ubuntu |
|||
type: Unity::VM |
|||
image: package-ci/ubuntu:stable |
|||
flavor: b1.large |
|||
|
|||
|
|||
test_platforms: |
|||
- name: win |
|||
type: Unity::VM |
|||
image: package-ci/win10:stable |
|||
flavor: b1.large |
|||
extra-args: --force-d3d11 |
|||
standalone-platform: StandaloneWindows64 |
|||
- name: mac |
|||
type: Unity::VM::osx |
|||
image: package-ci/mac:stable |
|||
flavor: m1.mac |
|||
extra-args: --force-metal |
|||
standalone-platform: StandaloneOSX |
|||
- name: ubuntu |
|||
type: Unity::VM |
|||
image: package-ci/ubuntu:stable |
|||
flavor: b1.large |
|||
|
|||
performance_platforms: |
|||
- name: win |
|||
type: Unity::VM |
|||
image: package-ci/win10:stable |
|||
flavor: b1.large |
|||
extra-args: --force-d3d11 |
|||
standalone-platform: StandaloneWindows64 |
|||
- name: mac |
|||
type: Unity::VM::osx |
|||
image: package-ci/mac:stable |
|||
flavor: m1.mac |
|||
extra-args: --force-metal |
|||
standalone-platform: StandaloneOSX |
|||
- name: ubuntu |
|||
type: Unity::VM |
|||
image: package-ci/ubuntu:stable |
|||
flavor: b1.large |
|||
|
|||
performance_suites: |
|||
- name: standalone |
|||
display_name: standalone |
|||
args: --suite=playmode --platform= |
|||
|
|||
suites: |
|||
- name: standalone |
|||
display_name: standalone |
|||
args: --suite=playmode --platform= |
|||
- name: editmode |
|||
display_name: editmode |
|||
args: --suite=playmode --suite=editor --platform=Editor |
|||
|
|||
package_variants: |
|||
- name: Perception |
|||
|
|||
projects: |
|||
- name: PerceptionHDRP |
|||
- name: PerceptionURP |
|
|||
# Contributing |
|||
|
|||
At this time, the repo is not accepting external contributions in the form of PRs.The Perception package and all of its features are in active development, and significant changes are expected in future releases. |
|||
|
|||
We encourage you to submit bugs, suggestions, and feedback as [GitHub issues](https://github.com/Unity-Technologies/com.unity.perception/issues). |
|
|||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Property/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String></wpf:ResourceDictionary> |
|
|||
{ |
|||
"dependencies": { |
|||
"com.unity.burst": { |
|||
"version": "1.4.6", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.mathematics": "1.2.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.collab-proxy": { |
|||
"version": "1.2.16", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.collections": { |
|||
"version": "0.9.0-preview.6", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.test-framework.performance": "2.0.8-preview", |
|||
"com.unity.burst": "1.3.0-preview.12" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ext.nunit": { |
|||
"version": "1.0.6", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ide.rider": { |
|||
"version": "1.1.4", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.test-framework": "1.1.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ide.vscode": { |
|||
"version": "1.2.3", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.mathematics": { |
|||
"version": "1.2.1", |
|||
"depth": 2, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.nuget.newtonsoft-json": { |
|||
"version": "2.0.0-preview", |
|||
"depth": 3, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.package-validation-suite": { |
|||
"version": "0.9.1-preview", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"nuget.mono-cecil": "0.1.6-preview" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.perception": { |
|||
"version": "file:../../../com.unity.perception", |
|||
"depth": 0, |
|||
"source": "local", |
|||
"dependencies": { |
|||
"com.unity.burst": "1.4.6", |
|||
"com.unity.collections": "0.9.0-preview.6", |
|||
"com.unity.nuget.newtonsoft-json": "1.1.2", |
|||
"com.unity.render-pipelines.core": "7.1.6", |
|||
"com.unity.simulation.capture": "0.0.10-preview.20", |
|||
"com.unity.simulation.client": "0.0.10-preview.10", |
|||
"com.unity.simulation.core": "0.0.10-preview.22" |
|||
} |
|||
}, |
|||
"com.unity.render-pipelines.core": { |
|||
"version": "7.3.1", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ugui": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.render-pipelines.high-definition": { |
|||
"version": "7.3.1", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.render-pipelines.core": "7.3.1", |
|||
"com.unity.shadergraph": "7.3.1", |
|||
"com.unity.visualeffectgraph": "7.3.1", |
|||
"com.unity.render-pipelines.high-definition-config": "7.3.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.render-pipelines.high-definition-config": { |
|||
"version": "7.3.1", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.render-pipelines.core": "7.3.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.shadergraph": { |
|||
"version": "7.3.1", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.render-pipelines.core": "7.3.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.simulation.capture": { |
|||
"version": "0.0.10-preview.20", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.simulation.core": "0.0.10-preview.22" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.simulation.client": { |
|||
"version": "0.0.10-preview.10", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.simulation.core": { |
|||
"version": "0.0.10-preview.22", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.test-framework": { |
|||
"version": "1.1.20", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ext.nunit": "1.0.6", |
|||
"com.unity.modules.imgui": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.test-framework.performance": { |
|||
"version": "2.0.8-preview", |
|||
"depth": 2, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.test-framework": "1.1.0", |
|||
"com.unity.nuget.newtonsoft-json": "2.0.0-preview" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.testtools.codecoverage": { |
|||
"version": "0.2.2-preview", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.test-framework": "1.0.16" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.textmeshpro": { |
|||
"version": "2.0.1", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ugui": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ugui": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.ui": "1.0.0", |
|||
"com.unity.modules.imgui": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.visualeffectgraph": { |
|||
"version": "7.3.1", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.shadergraph": "7.3.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"nuget.castle-core": { |
|||
"version": "1.0.1", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"nuget.mono-cecil": { |
|||
"version": "0.1.6-preview", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"nuget.moq": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"nuget.castle-core": "1.0.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.modules.ai": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.androidjni": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.animation": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.assetbundle": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.audio": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.cloth": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.director": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.animation": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.imageconversion": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.imgui": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.jsonserialize": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.particlesystem": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.physics": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.physics2d": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.screencapture": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.imageconversion": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.subsystems": { |
|||
"version": "1.0.0", |
|||
"depth": 1, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.terrain": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.terrainphysics": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.terrain": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.tilemap": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics2d": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.ui": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.uielements": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.imgui": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.umbra": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.unityanalytics": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequest": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.unitywebrequestassetbundle": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.assetbundle": "1.0.0", |
|||
"com.unity.modules.unitywebrequest": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequestaudio": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.audio": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequesttexture": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.imageconversion": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequestwww": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0", |
|||
"com.unity.modules.unitywebrequestaudio": "1.0.0", |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.assetbundle": "1.0.0", |
|||
"com.unity.modules.imageconversion": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.vehicles": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.video": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.ui": "1.0.0", |
|||
"com.unity.modules.unitywebrequest": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.vr": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.xr": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.wind": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.xr": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.subsystems": "1.0.0" |
|||
} |
|||
} |
|||
} |
|||
} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!114 &1 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 61 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 0} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 13960, guid: 0000000000000000e000000000000000, type: 0} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_ScopedRegistriesSettingsExpanded: 1 |
|||
oneTimeWarningShown: 0 |
|||
m_Registries: |
|||
- m_Id: main |
|||
m_Name: |
|||
m_Url: https://packages.unity.com |
|||
m_Scopes: [] |
|||
m_IsDefault: 1 |
|||
m_UserSelectedRegistryName: |
|||
m_UserAddingNewScopedRegistry: 0 |
|||
m_RegistryInfoDraft: |
|||
m_ErrorMessage: |
|||
m_Original: |
|||
m_Id: |
|||
m_Name: |
|||
m_Url: |
|||
m_Scopes: [] |
|||
m_IsDefault: 0 |
|||
m_Modified: 0 |
|||
m_Name: |
|||
m_Url: |
|||
m_Scopes: |
|||
- |
|||
m_SelectedScopeIndex: 0 |
|
|||
fileFormatVersion: 2 |
|||
guid: c140c5aa05dd09e4fadaa26de31b1f39 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
-warnaserror+ |
|
|||
fileFormatVersion: 2 |
|||
guid: b590f0b421136b44098ad7e92fc45f3e |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!114 &11400000 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 0} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 2f09f279848e42cea259348b13bce4c5, type: 3} |
|||
m_Name: IdLabelConfig |
|||
m_EditorClassIdentifier: |
|||
m_LabelEntries: |
|||
- label: Crate |
|||
id: 1 |
|||
- label: Cube |
|||
id: 2 |
|||
- label: Box |
|||
id: 3 |
|||
- label: Terrain |
|||
id: 4 |
|||
- label: Character |
|||
id: 5 |
|||
autoAssignIds: 1 |
|||
startingLabelId: 1 |
|
|||
fileFormatVersion: 2 |
|||
guid: 258de5b48703743468d34fc5bbdfa3aa |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
TestProjects/PerceptionHDRP/Assets/Scenes/SampleSceneLensDistortion.unity
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 626a1164e53022d4c93345d4666a6713 |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: d91434eaca2d7ee4685c95b03bf6a78a |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 290fafafd5ac84d4388b8a6b129c6f20 |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 26f408242584f494cae23179f77b81ad |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!29 &1 |
|||
OcclusionCullingSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_OcclusionBakeSettings: |
|||
smallestOccluder: 5 |
|||
smallestHole: 0.25 |
|||
backfaceThreshold: 100 |
|||
m_SceneGUID: 00000000000000000000000000000000 |
|||
m_OcclusionCullingData: {fileID: 0} |
|||
--- !u!104 &2 |
|||
RenderSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 9 |
|||
m_Fog: 0 |
|||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} |
|||
m_FogMode: 3 |
|||
m_FogDensity: 0.01 |
|||
m_LinearFogStart: 0 |
|||
m_LinearFogEnd: 300 |
|||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} |
|||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} |
|||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} |
|||
m_AmbientIntensity: 1 |
|||
m_AmbientMode: 0 |
|||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} |
|||
m_SkyboxMaterial: {fileID: 0} |
|||
m_HaloStrength: 0.5 |
|||
m_FlareStrength: 1 |
|||
m_FlareFadeSpeed: 3 |
|||
m_HaloTexture: {fileID: 0} |
|||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} |
|||
m_DefaultReflectionMode: 0 |
|||
m_DefaultReflectionResolution: 128 |
|||
m_ReflectionBounces: 1 |
|||
m_ReflectionIntensity: 1 |
|||
m_CustomReflection: {fileID: 0} |
|||
m_Sun: {fileID: 0} |
|||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} |
|||
m_UseRadianceAmbientProbe: 0 |
|||
--- !u!157 &3 |
|||
LightmapSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 11 |
|||
m_GIWorkflowMode: 0 |
|||
m_GISettings: |
|||
serializedVersion: 2 |
|||
m_BounceScale: 1 |
|||
m_IndirectOutputScale: 1 |
|||
m_AlbedoBoost: 1 |
|||
m_EnvironmentLightingMode: 0 |
|||
m_EnableBakedLightmaps: 0 |
|||
m_EnableRealtimeLightmaps: 1 |
|||
m_LightmapEditorSettings: |
|||
serializedVersion: 12 |
|||
m_Resolution: 2 |
|||
m_BakeResolution: 40 |
|||
m_AtlasSize: 1024 |
|||
m_AO: 0 |
|||
m_AOMaxDistance: 1 |
|||
m_CompAOExponent: 1 |
|||
m_CompAOExponentDirect: 0 |
|||
m_ExtractAmbientOcclusion: 0 |
|||
m_Padding: 2 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_LightmapsBakeMode: 1 |
|||
m_TextureCompression: 1 |
|||
m_FinalGather: 0 |
|||
m_FinalGatherFiltering: 1 |
|||
m_FinalGatherRayCount: 256 |
|||
m_ReflectionCompression: 2 |
|||
m_MixedBakeMode: 2 |
|||
m_BakeBackend: 1 |
|||
m_PVRSampling: 1 |
|||
m_PVRDirectSampleCount: 32 |
|||
m_PVRSampleCount: 500 |
|||
m_PVRBounces: 2 |
|||
m_PVREnvironmentSampleCount: 500 |
|||
m_PVREnvironmentReferencePointCount: 2048 |
|||
m_PVRFilteringMode: 2 |
|||
m_PVRDenoiserTypeDirect: 0 |
|||
m_PVRDenoiserTypeIndirect: 0 |
|||
m_PVRDenoiserTypeAO: 0 |
|||
m_PVRFilterTypeDirect: 0 |
|||
m_PVRFilterTypeIndirect: 0 |
|||
m_PVRFilterTypeAO: 0 |
|||
m_PVREnvironmentMIS: 0 |
|||
m_PVRCulling: 1 |
|||
m_PVRFilteringGaussRadiusDirect: 1 |
|||
m_PVRFilteringGaussRadiusIndirect: 5 |
|||
m_PVRFilteringGaussRadiusAO: 2 |
|||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5 |
|||
m_PVRFilteringAtrousPositionSigmaIndirect: 2 |
|||
m_PVRFilteringAtrousPositionSigmaAO: 1 |
|||
m_ExportTrainingData: 0 |
|||
m_TrainingDataDestination: TrainingData |
|||
m_LightProbeSampleCountMultiplier: 4 |
|||
m_LightingDataAsset: {fileID: 0} |
|||
m_UseShadowmask: 1 |
|||
--- !u!196 &4 |
|||
NavMeshSettings: |
|||
serializedVersion: 2 |
|||
m_ObjectHideFlags: 0 |
|||
m_BuildSettings: |
|||
serializedVersion: 2 |
|||
agentTypeID: 0 |
|||
agentRadius: 0.5 |
|||
agentHeight: 2 |
|||
agentSlope: 45 |
|||
agentClimb: 0.4 |
|||
ledgeDropHeight: 0 |
|||
maxJumpAcrossDistance: 0 |
|||
minRegionArea: 2 |
|||
manualCellSize: 0 |
|||
cellSize: 0.16666667 |
|||
manualTileSize: 0 |
|||
tileSize: 256 |
|||
accuratePlacement: 0 |
|||
debug: |
|||
m_Flags: 0 |
|||
m_NavMeshData: {fileID: 0} |
|||
--- !u!1001 &793584645 |
|||
PrefabInstance: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 0} |
|||
m_Modifications: |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_RootOrder |
|||
value: 5 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.x |
|||
value: -0.152 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.y |
|||
value: 0.528 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.z |
|||
value: -0.897 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.w |
|||
value: 1 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308720, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3710685714995308732, guid: da3b4cd41011c1b488592ed975cbb467, |
|||
type: 3} |
|||
propertyPath: m_Name |
|||
value: KeypointCube |
|||
objectReference: {fileID: 0} |
|||
m_RemovedComponents: [] |
|||
m_SourcePrefab: {fileID: 100100000, guid: da3b4cd41011c1b488592ed975cbb467, type: 3} |
|||
--- !u!1 &963194225 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 963194228} |
|||
- component: {fileID: 963194227} |
|||
- component: {fileID: 963194226} |
|||
- component: {fileID: 963194230} |
|||
- component: {fileID: 963194229} |
|||
m_Layer: 0 |
|||
m_Name: Main Camera |
|||
m_TagString: MainCamera |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!81 &963194226 |
|||
AudioListener: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 963194225} |
|||
m_Enabled: 1 |
|||
--- !u!20 &963194227 |
|||
Camera: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 963194225} |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_ClearFlags: 1 |
|||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} |
|||
m_projectionMatrixMode: 1 |
|||
m_GateFitMode: 2 |
|||
m_FOVAxisMode: 0 |
|||
m_SensorSize: {x: 36, y: 24} |
|||
m_LensShift: {x: 0, y: 0} |
|||
m_FocalLength: 50 |
|||
m_NormalizedViewPortRect: |
|||
serializedVersion: 2 |
|||
x: 0 |
|||
y: 0 |
|||
width: 1 |
|||
height: 1 |
|||
near clip plane: 0.3 |
|||
far clip plane: 1000 |
|||
field of view: 59.991566 |
|||
orthographic: 0 |
|||
orthographic size: 5 |
|||
m_Depth: -1 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_RenderingPath: -1 |
|||
m_TargetTexture: {fileID: 0} |
|||
m_TargetDisplay: 0 |
|||
m_TargetEye: 3 |
|||
m_HDR: 0 |
|||
m_AllowMSAA: 0 |
|||
m_AllowDynamicResolution: 0 |
|||
m_ForceIntoRT: 0 |
|||
m_OcclusionCulling: 1 |
|||
m_StereoConvergence: 10 |
|||
m_StereoSeparation: 0.022 |
|||
--- !u!4 &963194228 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 963194225} |
|||
m_LocalRotation: {x: 0.11266163, y: -0.26002073, z: 0.030562058, w: 0.95852107} |
|||
m_LocalPosition: {x: 1.4392753, y: 1.2635702, z: -2.3026767} |
|||
m_LocalScale: {x: 36.249973, y: 36.249973, z: 36.249973} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!114 &963194229 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 963194225} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 23c1ce4fb46143f46bc5cb5224c934f6, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_Version: 7 |
|||
m_ObsoleteRenderingPath: 0 |
|||
m_ObsoleteFrameSettings: |
|||
overrides: 0 |
|||
enableShadow: 0 |
|||
enableContactShadows: 0 |
|||
enableShadowMask: 0 |
|||
enableSSR: 0 |
|||
enableSSAO: 0 |
|||
enableSubsurfaceScattering: 0 |
|||
enableTransmission: 0 |
|||
enableAtmosphericScattering: 0 |
|||
enableVolumetrics: 0 |
|||
enableReprojectionForVolumetrics: 0 |
|||
enableLightLayers: 0 |
|||
enableExposureControl: 1 |
|||
diffuseGlobalDimmer: 0 |
|||
specularGlobalDimmer: 0 |
|||
shaderLitMode: 0 |
|||
enableDepthPrepassWithDeferredRendering: 0 |
|||
enableTransparentPrepass: 0 |
|||
enableMotionVectors: 0 |
|||
enableObjectMotionVectors: 0 |
|||
enableDecals: 0 |
|||
enableRoughRefraction: 0 |
|||
enableTransparentPostpass: 0 |
|||
enableDistortion: 0 |
|||
enablePostprocess: 0 |
|||
enableOpaqueObjects: 0 |
|||
enableTransparentObjects: 0 |
|||
enableRealtimePlanarReflection: 0 |
|||
enableMSAA: 0 |
|||
enableAsyncCompute: 0 |
|||
runLightListAsync: 0 |
|||
runSSRAsync: 0 |
|||
runSSAOAsync: 0 |
|||
runContactShadowsAsync: 0 |
|||
runVolumeVoxelizationAsync: 0 |
|||
lightLoopSettings: |
|||
overrides: 0 |
|||
enableDeferredTileAndCluster: 0 |
|||
enableComputeLightEvaluation: 0 |
|||
enableComputeLightVariants: 0 |
|||
enableComputeMaterialVariants: 0 |
|||
enableFptlForForwardOpaque: 0 |
|||
enableBigTilePrepass: 0 |
|||
isFptlEnabled: 0 |
|||
clearColorMode: 0 |
|||
backgroundColorHDR: {r: 0.025, g: 0.07, b: 0.19, a: 0} |
|||
clearDepth: 1 |
|||
volumeLayerMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 1 |
|||
volumeAnchorOverride: {fileID: 0} |
|||
antialiasing: 0 |
|||
SMAAQuality: 2 |
|||
dithering: 0 |
|||
stopNaNs: 0 |
|||
taaSharpenStrength: 0.6 |
|||
physicalParameters: |
|||
m_Iso: 200 |
|||
m_ShutterSpeed: 0.005 |
|||
m_Aperture: 16 |
|||
m_BladeCount: 5 |
|||
m_Curvature: {x: 2, y: 11} |
|||
m_BarrelClipping: 0.25 |
|||
m_Anamorphism: 0 |
|||
flipYMode: 0 |
|||
fullscreenPassthrough: 0 |
|||
allowDynamicResolution: 0 |
|||
customRenderingSettings: 0 |
|||
invertFaceCulling: 0 |
|||
probeLayerMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
hasPersistentHistory: 0 |
|||
m_RenderingPathCustomFrameSettings: |
|||
bitDatas: |
|||
data1: 70297877217101 |
|||
data2: 4539628425463136256 |
|||
lodBias: 1 |
|||
lodBiasMode: 0 |
|||
lodBiasQualityLevel: 0 |
|||
maximumLODLevel: 0 |
|||
maximumLODLevelMode: 0 |
|||
maximumLODLevelQualityLevel: 0 |
|||
materialQuality: 0 |
|||
renderingPathCustomFrameSettingsOverrideMask: |
|||
mask: |
|||
data1: 0 |
|||
data2: 0 |
|||
defaultFrameSettings: 0 |
|||
--- !u!114 &963194230 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 963194225} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 4467405dbcbd3d64ab4363e9ae8bb813, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
description: The main camera |
|||
captureRgbImages: 1 |
|||
firstCaptureFrame: 0 |
|||
captureTriggerMode: 0 |
|||
manualSensorAffectSimulationTiming: 0 |
|||
simulationDeltaTime: 0.0166 |
|||
framesBetweenCaptures: 0 |
|||
m_Labelers: |
|||
- id: 0 |
|||
- id: 1 |
|||
showVisualizations: 1 |
|||
references: |
|||
version: 1 |
|||
00000000: |
|||
type: {class: KeypointLabeler, ns: UnityEngine.Perception.GroundTruth, asm: Unity.Perception.Runtime} |
|||
data: |
|||
enabled: 1 |
|||
activeTemplate: {fileID: 11400000, guid: a29b79d8ce98945a0855b1addec08d86, |
|||
type: 2} |
|||
annotationId: 8b3ef246-daa7-4dd5-a0e8-a943f6e7f8c2 |
|||
idLabelConfig: {fileID: 11400000, guid: 258de5b48703743468d34fc5bbdfa3aa, |
|||
type: 2} |
|||
animationPoseConfigs: [] |
|||
00000001: |
|||
type: {class: KeypointLabeler, ns: UnityEngine.Perception.GroundTruth, asm: Unity.Perception.Runtime} |
|||
data: |
|||
enabled: 1 |
|||
activeTemplate: {fileID: 11400000, guid: 90217544e06a7b1408543cd72382ccbb, |
|||
type: 2} |
|||
annotationId: F66DFD55-FE53-4AA7-8934-B1226D9C9175 |
|||
idLabelConfig: {fileID: 11400000, guid: 258de5b48703743468d34fc5bbdfa3aa, |
|||
type: 2} |
|||
animationPoseConfigs: [] |
|||
--- !u!1 &1190242050 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 1190242052} |
|||
- component: {fileID: 1190242051} |
|||
m_Layer: 0 |
|||
m_Name: GameObject |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!114 &1190242051 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1190242050} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: d50076aff0af4515b4422166496fdd5e, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_Randomizers: |
|||
- id: 0 |
|||
constants: |
|||
randomSeed: 539662031 |
|||
totalIterations: 20 |
|||
instanceCount: 1 |
|||
instanceIndex: 0 |
|||
framesPerIteration: 1 |
|||
references: |
|||
version: 1 |
|||
00000000: |
|||
type: {class: AnimationRandomizer, ns: UnityEngine.Perception.Randomization.Randomizers.SampleRandomizers, |
|||
asm: Unity.Perception.Runtime} |
|||
data: |
|||
m_Enabled: 1 |
|||
collapsed: 0 |
|||
--- !u!4 &1190242052 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1190242050} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0.012426235, y: 1.0308692, z: 0.05147457} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 2 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1427719271 |
|||
GameObject: |
|||
m_ObjectHideFlags: 1 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 1427719273} |
|||
- component: {fileID: 1427719272} |
|||
m_Layer: 0 |
|||
m_Name: StaticLightingSky |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!114 &1427719272 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 1 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1427719271} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 441482e8936e35048a1dffac814e3ef8, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_Profile: {fileID: 0} |
|||
m_StaticLightingSkyUniqueID: 0 |
|||
m_SkySettings: {fileID: 0} |
|||
m_SkySettingsFromProfile: {fileID: 0} |
|||
--- !u!4 &1427719273 |
|||
Transform: |
|||
m_ObjectHideFlags: 1 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1427719271} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 0, z: 0} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 3 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1488440284 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 1488440286} |
|||
- component: {fileID: 1488440285} |
|||
m_Layer: 0 |
|||
m_Name: Directional Light |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!108 &1488440285 |
|||
Light: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1488440284} |
|||
m_Enabled: 1 |
|||
serializedVersion: 10 |
|||
m_Type: 1 |
|||
m_Shape: 0 |
|||
m_Color: {r: 1, g: 1, b: 1, a: 1} |
|||
m_Intensity: 1 |
|||
m_Range: 10 |
|||
m_SpotAngle: 30 |
|||
m_InnerSpotAngle: 21.80208 |
|||
m_CookieSize: 10 |
|||
m_Shadows: |
|||
m_Type: 0 |
|||
m_Resolution: -1 |
|||
m_CustomResolution: -1 |
|||
m_Strength: 1 |
|||
m_Bias: 0.05 |
|||
m_NormalBias: 0.4 |
|||
m_NearPlane: 0.2 |
|||
m_CullingMatrixOverride: |
|||
e00: 1 |
|||
e01: 0 |
|||
e02: 0 |
|||
e03: 0 |
|||
e10: 0 |
|||
e11: 1 |
|||
e12: 0 |
|||
e13: 0 |
|||
e20: 0 |
|||
e21: 0 |
|||
e22: 1 |
|||
e23: 0 |
|||
e30: 0 |
|||
e31: 0 |
|||
e32: 0 |
|||
e33: 1 |
|||
m_UseCullingMatrixOverride: 0 |
|||
m_Cookie: {fileID: 0} |
|||
m_DrawHalo: 0 |
|||
m_Flare: {fileID: 0} |
|||
m_RenderMode: 0 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_RenderingLayerMask: 1 |
|||
m_Lightmapping: 4 |
|||
m_LightShadowCasterMode: 0 |
|||
m_AreaSize: {x: 1, y: 1} |
|||
m_BounceIntensity: 1 |
|||
m_ColorTemperature: 6570 |
|||
m_UseColorTemperature: 0 |
|||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} |
|||
m_UseBoundingSphereOverride: 0 |
|||
m_ShadowRadius: 0 |
|||
m_ShadowAngle: 0 |
|||
--- !u!4 &1488440286 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1488440284} |
|||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} |
|||
m_LocalPosition: {x: 107.21, y: 72.77, z: -144.12} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 4 |
|||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} |
|||
--- !u!1001 &1667437134 |
|||
PrefabInstance: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 0} |
|||
m_Modifications: |
|||
- target: {fileID: 2767779306875801127, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_Controller |
|||
value: |
|||
objectReference: {fileID: 9100000, guid: 5a4ece82c4ce4894babb282606853fc6, type: 2} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_RootOrder |
|||
value: 1 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.w |
|||
value: -0.041973293 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.x |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.y |
|||
value: 0.9991188 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.z |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.y |
|||
value: 184.81099 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8109026111838458973, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 8917933090883489511, guid: 09c632a4eeff8204c87fa56b8632d9ba, |
|||
type: 3} |
|||
propertyPath: m_Name |
|||
value: LabeledAndRandomized |
|||
objectReference: {fileID: 0} |
|||
m_RemovedComponents: [] |
|||
m_SourcePrefab: {fileID: 100100000, guid: 09c632a4eeff8204c87fa56b8632d9ba, type: 3} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!114 &-7713062645433812184 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 11 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 0} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
version: 2 |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_Name: CrateMaterial |
|||
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} |
|||
m_ShaderKeywords: _NORMALMAP_TANGENT_SPACE |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: |
|||
- DistortionVectors |
|||
- MOTIONVECTORS |
|||
- TransparentDepthPrepass |
|||
- TransparentDepthPostpass |
|||
- TransparentBackface |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _AnisotropyMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _BaseColorMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _BentNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _BentNormalMapOS: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _CoatMaskMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DistortionVectorMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissiveColorMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _HeightMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _IridescenceMaskMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _IridescenceThicknessMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MaskMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _NormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _NormalMapOS: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _SpecularColorMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _SubsurfaceMaskMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _TangentMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _TangentMapOS: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ThicknessMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _TransmittanceColorMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _AORemapMax: 1 |
|||
- _AORemapMin: 0 |
|||
- _ATDistance: 1 |
|||
- _AddPrecomputedVelocity: 0 |
|||
- _AlbedoAffectEmissive: 0 |
|||
- _AlphaCutoff: 0.5 |
|||
- _AlphaCutoffEnable: 0 |
|||
- _AlphaCutoffPostpass: 0.5 |
|||
- _AlphaCutoffPrepass: 0.5 |
|||
- _AlphaCutoffShadow: 0.5 |
|||
- _AlphaDstBlend: 0 |
|||
- _AlphaSrcBlend: 1 |
|||
- _Anisotropy: 0 |
|||
- _BlendMode: 0 |
|||
- _CoatMask: 0 |
|||
- _CullMode: 2 |
|||
- _CullModeForward: 2 |
|||
- _Cutoff: 0.5 |
|||
- _DepthOffsetEnable: 0 |
|||
- _DetailAlbedoScale: 1 |
|||
- _DetailNormalScale: 1 |
|||
- _DetailSmoothnessScale: 1 |
|||
- _DiffusionProfile: 0 |
|||
- _DiffusionProfileHash: 0 |
|||
- _DisplacementLockObjectScale: 1 |
|||
- _DisplacementLockTilingScale: 1 |
|||
- _DisplacementMode: 0 |
|||
- _DistortionBlendMode: 0 |
|||
- _DistortionBlurBlendMode: 0 |
|||
- _DistortionBlurDstBlend: 1 |
|||
- _DistortionBlurRemapMax: 1 |
|||
- _DistortionBlurRemapMin: 0 |
|||
- _DistortionBlurScale: 1 |
|||
- _DistortionBlurSrcBlend: 1 |
|||
- _DistortionDepthTest: 1 |
|||
- _DistortionDstBlend: 1 |
|||
- _DistortionEnable: 0 |
|||
- _DistortionScale: 1 |
|||
- _DistortionSrcBlend: 1 |
|||
- _DistortionVectorBias: -1 |
|||
- _DistortionVectorScale: 2 |
|||
- _DoubleSidedEnable: 0 |
|||
- _DoubleSidedNormalMode: 1 |
|||
- _DstBlend: 0 |
|||
- _EmissiveColorMode: 1 |
|||
- _EmissiveExposureWeight: 1 |
|||
- _EmissiveIntensity: 1 |
|||
- _EmissiveIntensityUnit: 0 |
|||
- _EnableBlendModePreserveSpecularLighting: 1 |
|||
- _EnableFogOnTransparent: 1 |
|||
- _EnableGeometricSpecularAA: 0 |
|||
- _EnergyConservingSpecularColor: 1 |
|||
- _HeightAmplitude: 0.02 |
|||
- _HeightCenter: 0.5 |
|||
- _HeightMapParametrization: 0 |
|||
- _HeightMax: 1 |
|||
- _HeightMin: -1 |
|||
- _HeightOffset: 0 |
|||
- _HeightPoMAmplitude: 2 |
|||
- _HeightTessAmplitude: 2 |
|||
- _HeightTessCenter: 0.5 |
|||
- _InvTilingScale: 1 |
|||
- _Ior: 1.5 |
|||
- _IridescenceMask: 1 |
|||
- _IridescenceThickness: 1 |
|||
- _LinkDetailsWithBase: 1 |
|||
- _MaterialID: 1 |
|||
- _Metallic: 0.28 |
|||
- _NormalMapSpace: 0 |
|||
- _NormalScale: 1 |
|||
- _PPDLodThreshold: 5 |
|||
- _PPDMaxSamples: 15 |
|||
- _PPDMinSamples: 5 |
|||
- _PPDPrimitiveLength: 1 |
|||
- _PPDPrimitiveWidth: 1 |
|||
- _ReceivesSSR: 1 |
|||
- _RefractionModel: 0 |
|||
- _SSRefractionProjectionModel: 0 |
|||
- _Smoothness: 0.667 |
|||
- _SmoothnessRemapMax: 1 |
|||
- _SmoothnessRemapMin: 0 |
|||
- _SpecularAAScreenSpaceVariance: 0.1 |
|||
- _SpecularAAThreshold: 0.2 |
|||
- _SpecularOcclusionMode: 1 |
|||
- _SrcBlend: 1 |
|||
- _StencilRef: 0 |
|||
- _StencilRefDepth: 8 |
|||
- _StencilRefDistortionVec: 4 |
|||
- _StencilRefGBuffer: 10 |
|||
- _StencilRefMV: 40 |
|||
- _StencilWriteMask: 6 |
|||
- _StencilWriteMaskDepth: 8 |
|||
- _StencilWriteMaskDistortionVec: 4 |
|||
- _StencilWriteMaskGBuffer: 14 |
|||
- _StencilWriteMaskMV: 40 |
|||
- _SubsurfaceMask: 1 |
|||
- _SupportDecals: 1 |
|||
- _SurfaceType: 0 |
|||
- _TexWorldScale: 1 |
|||
- _TexWorldScaleEmissive: 1 |
|||
- _Thickness: 1 |
|||
- _TransmissionEnable: 1 |
|||
- _TransparentBackfaceEnable: 0 |
|||
- _TransparentCullMode: 2 |
|||
- _TransparentDepthPostpassEnable: 0 |
|||
- _TransparentDepthPrepassEnable: 0 |
|||
- _TransparentSortPriority: 0 |
|||
- _TransparentWritingMotionVec: 0 |
|||
- _TransparentZWrite: 0 |
|||
- _UVBase: 0 |
|||
- _UVDetail: 0 |
|||
- _UVEmissive: 0 |
|||
- _UseEmissiveIntensity: 0 |
|||
- _UseShadowThreshold: 0 |
|||
- _ZTestDepthEqualForOpaque: 3 |
|||
- _ZTestGBuffer: 4 |
|||
- _ZTestModeDistortion: 4 |
|||
- _ZTestTransparent: 4 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1} |
|||
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|||
- _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} |
|||
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} |
|||
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1} |
|||
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} |
|||
- _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} |
|||
- _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} |
|||
- _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} |
|||
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1} |
|||
- _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} |
|||
- _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} |
|||
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} |
|||
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} |
|||
- _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} |
|
|||
fileFormatVersion: 2 |
|||
guid: ddfd18df3e5ef3043b7889c5a070d8ca |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 253c8b404a216fa4898bcc0fcc5c58b1 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
3
TestProjects/PerceptionHDRP/Assets/Terrain Data.asset
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 15ded0116bd9f864f80b9813d4f4477f |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 633d6bbab02eb764e82d7c04e8d95031 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!114 &11400000 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 0} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 37a7d6f1a40c45a2981a6291f0d03337, type: 3} |
|||
m_Name: BoxKeypointTemplate |
|||
m_EditorClassIdentifier: |
|||
templateID: 4a089ea6-2f8e-4d0e-8915-2dfdf95cf743 |
|||
templateName: |
|||
jointTexture: {fileID: 2800000, guid: e381cbaaf29614168bafc8f7ec5dbfe9, type: 3} |
|||
skeletonTexture: {fileID: 2800000, guid: e381cbaaf29614168bafc8f7ec5dbfe9, type: 3} |
|||
keypoints: |
|||
- label: FrontTopLeft |
|||
associateToRig: 0 |
|||
rigLabel: 0 |
|||
color: {r: 1, g: 0.5518868, b: 0.5518868, a: 1} |
|||
- label: FrontTopRight |
|||
associateToRig: 0 |
|||
rigLabel: 0 |
|||
color: {r: 0.48627454, g: 0.67058825, b: 0.94117653, a: 1} |
|||
- label: FrontBottomLeft |
|||
associateToRig: 0 |
|||
rigLabel: 0 |
|||
color: {r: 0.48627454, g: 0.67058825, b: 0.94117653, a: 1} |
|||
- label: FrontBottomRight |
|||
associateToRig: 0 |
|||
rigLabel: 0 |
|||
color: {r: 0.48627454, g: 0.67058825, b: 0.94117653, a: 1} |
|||
- label: BackTopLeft |
|||
associateToRig: 0 |
|||
rigLabel: 0 |
|||
color: {r: 0.48627454, g: 0.67058825, b: 0.94117653, a: 1} |
|||
- label: BackTopRight |
|||
associateToRig: 0 |
|||
rigLabel: 0 |
|||
color: {r: 0.48627454, g: 0.67058825, b: 0.94117653, a: 1} |
|||
- label: BackBottomLeft |
|||
associateToRig: 0 |
|||
rigLabel: 0 |
|||
color: {r: 0.48627454, g: 0.67058825, b: 0.94117653, a: 1} |
|||
- label: BackBottomRight |
|||
associateToRig: 0 |
|||
rigLabel: 0 |
|||
color: {r: 0.48627454, g: 0.67058825, b: 0.94117653, a: 1} |
|||
skeleton: [] |
部分文件因为文件数量过多而无法显示
撰写
预览
正在加载...
取消
保存
Reference in new issue