diff --git a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiAT128E2X.prefab b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiAT128E2X.prefab
index 654ad10e9..3b339de3d 100644
--- a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiAT128E2X.prefab
+++ b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiAT128E2X.prefab
@@ -280,12 +280,22 @@ MonoBehaviour:
m_EditorClassIdentifier:
AutomaticCaptureHz: 10
modelPreset: 8
+ returnType: 0
applyDistanceGaussianNoise: 1
applyAngularGaussianNoise: 1
applyVelocityDistortion: 0
doValidateConfigurationOnStartup: 1
configuration:
id: 0
+ outputRestriction:
+ applyRestriction: 0
+ rectangularRestrictionMasks: []
+ enablePeriodicRestriction: 0
+ restrictionPeriod: 1
+ restrictionDutyRate: 0.5
+ enableRestrictionRandomizer: 0
+ minRandomPerdiod: 0
+ maxRandomPerdiod: 1
references:
version: 1
00000000:
@@ -1195,7 +1205,8 @@ MonoBehaviour:
minHAngle: -60
maxHAngle: 60
laserArrayCycleTime: 0.041666
- beamDivergence: 0.13
+ horizontalBeamDivergence: 0.13
+ verticalBeamDivergence: 0.13
noiseParams:
angularNoiseType: 0
angularNoiseStDev: 0.057295784
diff --git a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandar128E4X.prefab b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandar128E4X.prefab
index b2a29306e..5ed644f4e 100644
--- a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandar128E4X.prefab
+++ b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandar128E4X.prefab
@@ -183,12 +183,22 @@ MonoBehaviour:
m_EditorClassIdentifier:
AutomaticCaptureHz: 10
modelPreset: 11
+ returnType: 0
applyDistanceGaussianNoise: 1
applyAngularGaussianNoise: 1
applyVelocityDistortion: 0
doValidateConfigurationOnStartup: 1
configuration:
id: 0
+ outputRestriction:
+ applyRestriction: 0
+ rectangularRestrictionMasks: []
+ enablePeriodicRestriction: 0
+ restrictionPeriod: 1
+ restrictionDutyRate: 0.5
+ enableRestrictionRandomizer: 0
+ minRandomPerdiod: 0
+ maxRandomPerdiod: 1
references:
version: 1
00000000:
@@ -1098,7 +1108,8 @@ MonoBehaviour:
minHAngle: 0
maxHAngle: 360
laserArrayCycleTime: 0.055556
- beamDivergence: 0.13
+ horizontalBeamDivergence: 0.13
+ verticalBeamDivergence: 0.13
noiseParams:
angularNoiseType: 0
angularNoiseStDev: 0.057295784
diff --git a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandar40P.prefab b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandar40P.prefab
index 21a4f4d27..cd3685900 100644
--- a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandar40P.prefab
+++ b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandar40P.prefab
@@ -509,12 +509,22 @@ MonoBehaviour:
m_EditorClassIdentifier:
AutomaticCaptureHz: 10
modelPreset: 6
+ returnType: 0
applyDistanceGaussianNoise: 1
applyAngularGaussianNoise: 1
applyVelocityDistortion: 0
doValidateConfigurationOnStartup: 1
configuration:
id: 0
+ outputRestriction:
+ applyRestriction: 0
+ rectangularRestrictionMasks: []
+ enablePeriodicRestriction: 0
+ restrictionPeriod: 1
+ restrictionDutyRate: 0.5
+ enableRestrictionRandomizer: 0
+ minRandomPerdiod: 0
+ maxRandomPerdiod: 1
references:
version: 1
00000000:
@@ -808,7 +818,8 @@ MonoBehaviour:
minHAngle: 0
maxHAngle: 360
laserArrayCycleTime: 0.05556
- beamDivergence: 0.13
+ horizontalBeamDivergence: 0.13
+ verticalBeamDivergence: 0.13
noiseParams:
angularNoiseType: 0
angularNoiseStDev: 0.057295784
diff --git a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandarQT64.prefab b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandarQT64.prefab
index 560a224d4..ee3d5754c 100644
--- a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandarQT64.prefab
+++ b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandarQT64.prefab
@@ -412,12 +412,22 @@ MonoBehaviour:
m_EditorClassIdentifier:
AutomaticCaptureHz: 10
modelPreset: 5
+ returnType: 0
applyDistanceGaussianNoise: 1
applyAngularGaussianNoise: 1
applyVelocityDistortion: 0
doValidateConfigurationOnStartup: 1
configuration:
id: 0
+ outputRestriction:
+ applyRestriction: 0
+ rectangularRestrictionMasks: []
+ enablePeriodicRestriction: 0
+ restrictionPeriod: 1
+ restrictionDutyRate: 0.5
+ enableRestrictionRandomizer: 0
+ minRandomPerdiod: 0
+ maxRandomPerdiod: 1
references:
version: 1
00000000:
@@ -879,7 +889,8 @@ MonoBehaviour:
minHAngle: 0
maxHAngle: 360
laserArrayCycleTime: 0.16667
- beamDivergence: 0.13
+ horizontalBeamDivergence: 0.13
+ verticalBeamDivergence: 0.13
noiseParams:
angularNoiseType: 0
angularNoiseStDev: 0.057295784
diff --git a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandarXT32.prefab b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandarXT32.prefab
index a3a459223..4dba595ad 100644
--- a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandarXT32.prefab
+++ b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiPandarXT32.prefab
@@ -280,12 +280,22 @@ MonoBehaviour:
m_EditorClassIdentifier:
AutomaticCaptureHz: 10
modelPreset: 9
+ returnType: 0
applyDistanceGaussianNoise: 1
applyAngularGaussianNoise: 1
applyVelocityDistortion: 0
doValidateConfigurationOnStartup: 1
configuration:
id: 0
+ outputRestriction:
+ applyRestriction: 0
+ rectangularRestrictionMasks: []
+ enablePeriodicRestriction: 0
+ restrictionPeriod: 1
+ restrictionDutyRate: 0.5
+ enableRestrictionRandomizer: 0
+ minRandomPerdiod: 0
+ maxRandomPerdiod: 1
references:
version: 1
00000000:
@@ -523,7 +533,8 @@ MonoBehaviour:
minHAngle: 0
maxHAngle: 360
laserArrayCycleTime: 0.05
- beamDivergence: 0.13
+ horizontalBeamDivergence: 0.13
+ verticalBeamDivergence: 0.13
noiseParams:
angularNoiseType: 0
angularNoiseStDev: 0.057295784
diff --git a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiQT128C2X.prefab b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiQT128C2X.prefab
index 43b60074d..27dc266f5 100644
--- a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiQT128C2X.prefab
+++ b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/HesaiQT128C2X.prefab
@@ -101,12 +101,22 @@ MonoBehaviour:
m_EditorClassIdentifier:
AutomaticCaptureHz: 10
modelPreset: 10
+ returnType: 0
applyDistanceGaussianNoise: 1
applyAngularGaussianNoise: 1
applyVelocityDistortion: 0
doValidateConfigurationOnStartup: 1
configuration:
id: 0
+ outputRestriction:
+ applyRestriction: 0
+ rectangularRestrictionMasks: []
+ enablePeriodicRestriction: 0
+ restrictionPeriod: 1
+ restrictionDutyRate: 0.5
+ enableRestrictionRandomizer: 0
+ minRandomPerdiod: 0
+ maxRandomPerdiod: 1
references:
version: 1
00000000:
@@ -1464,7 +1474,8 @@ MonoBehaviour:
minHAngle: 0
maxHAngle: 360
laserArrayCycleTime: 0.11111
- beamDivergence: 0.13
+ horizontalBeamDivergence: 0.13
+ verticalBeamDivergence: 0.13
noiseParams:
angularNoiseType: 0
angularNoiseStDev: 0.057295784
diff --git a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/OusterOS1-64.prefab b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/OusterOS1-64.prefab
index c0130414f..f19eecb80 100644
--- a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/OusterOS1-64.prefab
+++ b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/OusterOS1-64.prefab
@@ -100,12 +100,22 @@ MonoBehaviour:
m_EditorClassIdentifier:
AutomaticCaptureHz: 20
modelPreset: 7
+ returnType: 0
applyDistanceGaussianNoise: 1
applyAngularGaussianNoise: 1
applyVelocityDistortion: 0
doValidateConfigurationOnStartup: 1
configuration:
id: 0
+ outputRestriction:
+ applyRestriction: 0
+ rectangularRestrictionMasks: []
+ enablePeriodicRestriction: 0
+ restrictionPeriod: 1
+ restrictionDutyRate: 0.5
+ enableRestrictionRandomizer: 0
+ minRandomPerdiod: 0
+ maxRandomPerdiod: 1
references:
version: 1
00000000:
@@ -567,7 +577,8 @@ MonoBehaviour:
minHAngle: 0
maxHAngle: 360
laserArrayCycleTime: 0
- beamDivergence: 0.13
+ horizontalBeamDivergence: 0.13
+ verticalBeamDivergence: 0.13
noiseParams:
angularNoiseType: 0
angularNoiseStDev: 0.057295784
diff --git a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLP16.prefab b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLP16.prefab
index d7fed01d0..86d54dea6 100644
--- a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLP16.prefab
+++ b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLP16.prefab
@@ -101,12 +101,22 @@ MonoBehaviour:
m_EditorClassIdentifier:
AutomaticCaptureHz: 10
modelPreset: 2
+ returnType: 0
applyDistanceGaussianNoise: 1
applyAngularGaussianNoise: 1
applyVelocityDistortion: 0
doValidateConfigurationOnStartup: 1
configuration:
id: 0
+ outputRestriction:
+ applyRestriction: 0
+ rectangularRestrictionMasks: []
+ enablePeriodicRestriction: 0
+ restrictionPeriod: 1
+ restrictionDutyRate: 0.5
+ enableRestrictionRandomizer: 0
+ minRandomPerdiod: 0
+ maxRandomPerdiod: 1
references:
version: 1
00000000:
@@ -232,7 +242,8 @@ MonoBehaviour:
minHAngle: 0
maxHAngle: 360
laserArrayCycleTime: 0.055296
- beamDivergence: 0.13
+ horizontalBeamDivergence: 0.171887
+ verticalBeamDivergence: 0.0859435
noiseParams:
angularNoiseType: 0
angularNoiseStDev: 0.057295784
diff --git a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLP32C.prefab b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLP32C.prefab
index 16aefa8a1..d07147d6d 100644
--- a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLP32C.prefab
+++ b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLP32C.prefab
@@ -101,12 +101,22 @@ MonoBehaviour:
m_EditorClassIdentifier:
AutomaticCaptureHz: 10
modelPreset: 3
+ returnType: 0
applyDistanceGaussianNoise: 1
applyAngularGaussianNoise: 1
applyVelocityDistortion: 0
doValidateConfigurationOnStartup: 1
configuration:
id: 0
+ outputRestriction:
+ applyRestriction: 0
+ rectangularRestrictionMasks: []
+ enablePeriodicRestriction: 0
+ restrictionPeriod: 1
+ restrictionDutyRate: 0.5
+ enableRestrictionRandomizer: 0
+ minRandomPerdiod: 0
+ maxRandomPerdiod: 1
references:
version: 1
00000000:
@@ -344,7 +354,8 @@ MonoBehaviour:
minHAngle: 0
maxHAngle: 360
laserArrayCycleTime: 0.055296
- beamDivergence: 0.13
+ horizontalBeamDivergence: 0.171887
+ verticalBeamDivergence: 0.0859435
noiseParams:
angularNoiseType: 0
angularNoiseStDev: 0.057295784
diff --git a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLS128.prefab b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLS128.prefab
index 2d0e10b61..899efc343 100644
--- a/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLS128.prefab
+++ b/Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars/VelodyneVLS128.prefab
@@ -509,12 +509,22 @@ MonoBehaviour:
m_EditorClassIdentifier:
AutomaticCaptureHz: 10
modelPreset: 4
+ returnType: 0
applyDistanceGaussianNoise: 1
applyAngularGaussianNoise: 1
applyVelocityDistortion: 0
doValidateConfigurationOnStartup: 1
configuration:
id: 0
+ outputRestriction:
+ applyRestriction: 0
+ rectangularRestrictionMasks: []
+ enablePeriodicRestriction: 0
+ restrictionPeriod: 1
+ restrictionDutyRate: 0.5
+ enableRestrictionRandomizer: 0
+ minRandomPerdiod: 0
+ maxRandomPerdiod: 1
references:
version: 1
00000000:
@@ -1424,7 +1434,8 @@ MonoBehaviour:
minHAngle: 0
maxHAngle: 360
laserArrayCycleTime: 0.0585688
- beamDivergence: 0.13
+ horizontalBeamDivergence: 0.171887
+ verticalBeamDivergence: 0.0859435
noiseParams:
angularNoiseType: 0
angularNoiseStDev: 0.057295784
diff --git a/Assets/AWSIM/Scenes/Samples/LidarMultiReturnSample.unity b/Assets/AWSIM/Scenes/Samples/LidarMultiReturnSample.unity
new file mode 100644
index 000000000..d69ce5786
--- /dev/null
+++ b/Assets/AWSIM/Scenes/Samples/LidarMultiReturnSample.unity
@@ -0,0 +1,1189 @@
+%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: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ 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: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ 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_LightingSettings: {fileID: 0}
+--- !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
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &119932815
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 119932819}
+ - component: {fileID: 119932818}
+ - component: {fileID: 119932817}
+ - component: {fileID: 119932816}
+ m_Layer: 0
+ m_Name: Wall
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &119932816
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 119932815}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &119932817
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 119932815}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &119932818
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 119932815}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &119932819
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 119932815}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 10, y: 2.5, z: 7.5}
+ m_LocalScale: {x: 0.1, y: 5, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &538727381
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 538727385}
+ - component: {fileID: 538727384}
+ - component: {fileID: 538727383}
+ - component: {fileID: 538727382}
+ m_Layer: 0
+ m_Name: Wall (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &538727382
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 538727381}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &538727383
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 538727381}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &538727384
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 538727381}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &538727385
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 538727381}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 80, y: 2.5, z: -7.5}
+ m_LocalScale: {x: 0.1, y: 5, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &728953441
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 728953445}
+ - component: {fileID: 728953444}
+ - component: {fileID: 728953443}
+ - component: {fileID: 728953442}
+ m_Layer: 0
+ m_Name: Floor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &728953442
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 728953441}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &728953443
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 728953441}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &728953444
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 728953441}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &728953445
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 728953441}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 40, y: -0.05, z: 0}
+ m_LocalScale: {x: 100, y: 0.1, z: 30}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1058960704
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1058960708}
+ - component: {fileID: 1058960707}
+ - component: {fileID: 1058960706}
+ - component: {fileID: 1058960705}
+ m_Layer: 0
+ m_Name: Wall (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1058960705
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1058960704}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1058960706
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1058960704}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1058960707
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1058960704}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1058960708
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1058960704}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 40, y: 2.5, z: 0}
+ m_LocalScale: {x: 0.1, y: 5, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1103788748
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1103788750}
+ - component: {fileID: 1103788749}
+ - component: {fileID: 1103788751}
+ 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 &1103788749
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1103788748}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 100000
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ 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: 2
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 1
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1103788750
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1103788748}
+ m_LocalRotation: {x: 0.74970394, y: 0.2475375, z: 0.15193492, w: 0.5946302}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 54.723, y: 115.284, z: 107.148}
+--- !u!114 &1103788751
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1103788748}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Version: 11
+ m_ObsoleteShadowResolutionTier: 1
+ m_ObsoleteUseShadowQualitySettings: 0
+ m_ObsoleteCustomShadowResolution: 512
+ m_ObsoleteContactShadows: 0
+ m_PointlightHDType: 0
+ m_SpotLightShape: 0
+ m_AreaLightShape: 0
+ m_Intensity: 100000
+ m_EnableSpotReflector: 1
+ m_LuxAtDistance: 1
+ m_InnerSpotPercent: 0
+ m_SpotIESCutoffPercent: 100
+ m_LightDimmer: 1
+ m_VolumetricDimmer: 1
+ m_LightUnit: 2
+ m_FadeDistance: 10000
+ m_VolumetricFadeDistance: 10000
+ m_AffectDiffuse: 1
+ m_AffectSpecular: 1
+ m_NonLightmappedOnly: 0
+ m_ShapeWidth: 0.5
+ m_ShapeHeight: 0.5
+ m_AspectRatio: 1
+ m_ShapeRadius: 0.025
+ m_SoftnessScale: 1
+ m_UseCustomSpotLightShadowCone: 0
+ m_CustomSpotLightShadowCone: 30
+ m_MaxSmoothness: 0.99
+ m_ApplyRangeAttenuation: 1
+ m_DisplayAreaLightEmissiveMesh: 0
+ m_AreaLightCookie: {fileID: 0}
+ m_IESPoint: {fileID: 0}
+ m_IESSpot: {fileID: 0}
+ m_IncludeForRayTracing: 1
+ m_AreaLightShadowCone: 120
+ m_UseScreenSpaceShadows: 0
+ m_InteractsWithSky: 1
+ m_AngularDiameter: 0.5
+ m_FlareSize: 2
+ m_FlareTint: {r: 1, g: 1, b: 1, a: 1}
+ m_FlareFalloff: 4
+ m_SurfaceTexture: {fileID: 0}
+ m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1}
+ m_Distance: 1.5e+11
+ m_UseRayTracedShadows: 0
+ m_NumRayTracingSamples: 4
+ m_FilterTracedShadow: 1
+ m_FilterSizeTraced: 16
+ m_SunLightConeAngle: 0.5
+ m_LightShadowRadius: 0.5
+ m_SemiTransparentShadow: 0
+ m_ColorShadow: 1
+ m_DistanceBasedFiltering: 0
+ m_EvsmExponent: 15
+ m_EvsmLightLeakBias: 0
+ m_EvsmVarianceBias: 0.00001
+ m_EvsmBlurPasses: 0
+ m_LightlayersMask: 1
+ m_LinkShadowLayers: 1
+ m_ShadowNearPlane: 0.1
+ m_BlockerSampleCount: 24
+ m_FilterSampleCount: 16
+ m_MinFilterSize: 0.1
+ m_KernelSize: 5
+ m_LightAngle: 1
+ m_MaxDepthBias: 0.001
+ m_ShadowResolution:
+ m_Override: 512
+ m_UseOverride: 1
+ m_Level: 0
+ m_ShadowDimmer: 1
+ m_VolumetricShadowDimmer: 1
+ m_ShadowFadeDistance: 10000
+ m_UseContactShadow:
+ m_Override: 0
+ m_UseOverride: 1
+ m_Level: 0
+ m_RayTracedContactShadow: 0
+ m_ShadowTint: {r: 0, g: 0, b: 0, a: 1}
+ m_PenumbraTint: 0
+ m_NormalBias: 0.75
+ m_SlopeBias: 0.5
+ m_ShadowUpdateMode: 0
+ m_AlwaysDrawDynamicShadows: 0
+ m_UpdateShadowOnLightMovement: 0
+ m_CachedShadowTranslationThreshold: 0.01
+ m_CachedShadowAngularThreshold: 0.5
+ m_BarnDoorAngle: 90
+ m_BarnDoorLength: 0.05
+ m_preserveCachedShadow: 0
+ m_OnDemandShadowRenderOnPlacement: 1
+ m_ShadowCascadeRatios:
+ - 0.05
+ - 0.2
+ - 0.3
+ m_ShadowCascadeBorders:
+ - 0.2
+ - 0.2
+ - 0.2
+ - 0.2
+ m_ShadowAlgorithm: 0
+ m_ShadowVariant: 0
+ m_ShadowPrecision: 0
+ useOldInspector: 0
+ useVolumetric: 1
+ featuresFoldout: 1
+ showAdditionalSettings: 0
+ m_AreaLightEmissiveMeshShadowCastingMode: 0
+ m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0
+ m_AreaLightEmissiveMeshLayer: -1
+--- !u!1 &1145151906
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1145151910}
+ - component: {fileID: 1145151909}
+ - component: {fileID: 1145151908}
+ - component: {fileID: 1145151907}
+ m_Layer: 0
+ m_Name: Wall (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1145151907
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1145151906}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1145151908
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1145151906}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1145151909
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1145151906}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1145151910
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1145151906}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 20, y: 2.5, z: 5}
+ m_LocalScale: {x: 0.1, y: 5, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1359363713
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1359363717}
+ - component: {fileID: 1359363716}
+ - component: {fileID: 1359363715}
+ - component: {fileID: 1359363714}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1359363714
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1359363713}
+ 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.5
+ TAAQuality: 1
+ taaHistorySharpening: 0.35
+ taaAntiFlicker: 0.5
+ taaMotionVectorRejection: 0
+ taaAntiHistoryRinging: 0
+ 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
+ xrRendering: 1
+ fullscreenPassthrough: 0
+ allowDynamicResolution: 0
+ customRenderingSettings: 0
+ invertFaceCulling: 0
+ probeLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ hasPersistentHistory: 0
+ exposureTarget: {fileID: 0}
+ m_RenderingPathCustomFrameSettings:
+ bitDatas:
+ data1: 72198262773251917
+ data2: 13763000468760363032
+ lodBias: 1
+ lodBiasMode: 0
+ lodBiasQualityLevel: 0
+ maximumLODLevel: 0
+ maximumLODLevelMode: 0
+ maximumLODLevelQualityLevel: 0
+ sssQualityMode: 0
+ sssQualityLevel: 0
+ sssCustomSampleBudget: 20
+ materialQuality: 0
+ renderingPathCustomFrameSettingsOverrideMask:
+ mask:
+ data1: 0
+ data2: 0
+ defaultFrameSettings: 0
+--- !u!81 &1359363715
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1359363713}
+ m_Enabled: 1
+--- !u!20 &1359363716
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1359363713}
+ 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: 60
+ 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 &1359363717
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1359363713}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: -10}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1452990087
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 163149641965836548, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_Name
+ value: VelodyneVLP32C
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6177771126420573330, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: returnType
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6177771126420573330, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: applyAngularGaussianNoise
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6177771126420573330, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: applyDistanceGaussianNoise
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+--- !u!1 &1482152823
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1482152825}
+ - component: {fileID: 1482152824}
+ m_Layer: 0
+ m_Name: GlobalSystemGraph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 2147483647
+ m_IsActive: 1
+--- !u!114 &1482152824
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1482152823}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4598ca58282119c45bbd191668e0d493, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1482152825
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1482152823}
+ 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: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &2135770398
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 7072217863731950089, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_Name
+ value: RGLSceneManager
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
diff --git a/Assets/AWSIM/Scenes/Samples/LidarMultiReturnSample.unity.meta b/Assets/AWSIM/Scenes/Samples/LidarMultiReturnSample.unity.meta
new file mode 100644
index 000000000..ca75f1e2c
--- /dev/null
+++ b/Assets/AWSIM/Scenes/Samples/LidarMultiReturnSample.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1a5602b421cabc8d68e74bc9c752ab5d
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/AWSIM/Scenes/Samples/LidarOutputRestrictionSample.unity b/Assets/AWSIM/Scenes/Samples/LidarOutputRestrictionSample.unity
new file mode 100644
index 000000000..e19d95bf5
--- /dev/null
+++ b/Assets/AWSIM/Scenes/Samples/LidarOutputRestrictionSample.unity
@@ -0,0 +1,1456 @@
+%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: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ 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: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ 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_LightingSettings: {fileID: 0}
+--- !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
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &80089380 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 500668027104458449, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ m_PrefabInstance: {fileID: 763959073}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &80089381
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 80089380}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3b572ff4a55242c8ca4fd49834d0b07b, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ categoryId: 40
+--- !u!1 &119932815
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 119932819}
+ - component: {fileID: 119932818}
+ - component: {fileID: 119932817}
+ - component: {fileID: 119932816}
+ m_Layer: 0
+ m_Name: Wall
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &119932816
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 119932815}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &119932817
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 119932815}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &119932818
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 119932815}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &119932819
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 119932815}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -10, y: 5, z: 0}
+ m_LocalScale: {x: 0.001, y: 10, z: 20}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 10
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &241547987 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 500668027104458449, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ m_PrefabInstance: {fileID: 516493668}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &241547988
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 241547987}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3b572ff4a55242c8ca4fd49834d0b07b, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ categoryId: 40
+--- !u!1001 &338221197
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 163149641965836548, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_Name
+ value: VelodyneVLP32C
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -0.78596926
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 1.94
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 3.0903392
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3596547421121488150, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: ec72c724d77783355b997a9e7cab1576, type: 3}
+--- !u!1001 &516493668
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 500668027104458449, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_Name
+ value: humanElegant
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_RootOrder
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -6.98
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 3.88
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.38268346
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.9238795
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 90
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+--- !u!1 &728953441
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 728953445}
+ - component: {fileID: 728953444}
+ - component: {fileID: 728953443}
+ - component: {fileID: 728953442}
+ m_Layer: 0
+ m_Name: Floor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &728953442
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 728953441}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &728953443
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 728953441}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &728953444
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 728953441}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &728953445
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 728953441}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.05, z: 0}
+ m_LocalScale: {x: 20, y: 0.1, z: 20}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &763959073
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 500668027104458449, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_Name
+ value: humanElegant (1)
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_RootOrder
+ value: 9
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -7.89
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 4.82
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.38268346
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.9238795
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 90
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+--- !u!1001 &1048453083
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 500668027104458449, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_Name
+ value: humanElegant (2)
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_RootOrder
+ value: 11
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -7.89
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 2.91
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.38268346
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.9238795
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 90
+ objectReference: {fileID: 0}
+ - target: {fileID: 988938448964725867, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+--- !u!1 &1103788748
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1103788750}
+ - component: {fileID: 1103788749}
+ - component: {fileID: 1103788751}
+ 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 &1103788749
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1103788748}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 100000
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ 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: 2
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 1
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1103788750
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1103788748}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!114 &1103788751
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1103788748}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Version: 11
+ m_ObsoleteShadowResolutionTier: 1
+ m_ObsoleteUseShadowQualitySettings: 0
+ m_ObsoleteCustomShadowResolution: 512
+ m_ObsoleteContactShadows: 0
+ m_PointlightHDType: 0
+ m_SpotLightShape: 0
+ m_AreaLightShape: 0
+ m_Intensity: 100000
+ m_EnableSpotReflector: 1
+ m_LuxAtDistance: 1
+ m_InnerSpotPercent: 0
+ m_SpotIESCutoffPercent: 100
+ m_LightDimmer: 1
+ m_VolumetricDimmer: 1
+ m_LightUnit: 2
+ m_FadeDistance: 10000
+ m_VolumetricFadeDistance: 10000
+ m_AffectDiffuse: 1
+ m_AffectSpecular: 1
+ m_NonLightmappedOnly: 0
+ m_ShapeWidth: 0.5
+ m_ShapeHeight: 0.5
+ m_AspectRatio: 1
+ m_ShapeRadius: 0.025
+ m_SoftnessScale: 1
+ m_UseCustomSpotLightShadowCone: 0
+ m_CustomSpotLightShadowCone: 30
+ m_MaxSmoothness: 0.99
+ m_ApplyRangeAttenuation: 1
+ m_DisplayAreaLightEmissiveMesh: 0
+ m_AreaLightCookie: {fileID: 0}
+ m_IESPoint: {fileID: 0}
+ m_IESSpot: {fileID: 0}
+ m_IncludeForRayTracing: 1
+ m_AreaLightShadowCone: 120
+ m_UseScreenSpaceShadows: 0
+ m_InteractsWithSky: 1
+ m_AngularDiameter: 0.5
+ m_FlareSize: 2
+ m_FlareTint: {r: 1, g: 1, b: 1, a: 1}
+ m_FlareFalloff: 4
+ m_SurfaceTexture: {fileID: 0}
+ m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1}
+ m_Distance: 1.5e+11
+ m_UseRayTracedShadows: 0
+ m_NumRayTracingSamples: 4
+ m_FilterTracedShadow: 1
+ m_FilterSizeTraced: 16
+ m_SunLightConeAngle: 0.5
+ m_LightShadowRadius: 0.5
+ m_SemiTransparentShadow: 0
+ m_ColorShadow: 1
+ m_DistanceBasedFiltering: 0
+ m_EvsmExponent: 15
+ m_EvsmLightLeakBias: 0
+ m_EvsmVarianceBias: 0.00001
+ m_EvsmBlurPasses: 0
+ m_LightlayersMask: 1
+ m_LinkShadowLayers: 1
+ m_ShadowNearPlane: 0.1
+ m_BlockerSampleCount: 24
+ m_FilterSampleCount: 16
+ m_MinFilterSize: 0.1
+ m_KernelSize: 5
+ m_LightAngle: 1
+ m_MaxDepthBias: 0.001
+ m_ShadowResolution:
+ m_Override: 512
+ m_UseOverride: 1
+ m_Level: 0
+ m_ShadowDimmer: 1
+ m_VolumetricShadowDimmer: 1
+ m_ShadowFadeDistance: 10000
+ m_UseContactShadow:
+ m_Override: 0
+ m_UseOverride: 1
+ m_Level: 0
+ m_RayTracedContactShadow: 0
+ m_ShadowTint: {r: 0, g: 0, b: 0, a: 1}
+ m_PenumbraTint: 0
+ m_NormalBias: 0.75
+ m_SlopeBias: 0.5
+ m_ShadowUpdateMode: 0
+ m_AlwaysDrawDynamicShadows: 0
+ m_UpdateShadowOnLightMovement: 0
+ m_CachedShadowTranslationThreshold: 0.01
+ m_CachedShadowAngularThreshold: 0.5
+ m_BarnDoorAngle: 90
+ m_BarnDoorLength: 0.05
+ m_preserveCachedShadow: 0
+ m_OnDemandShadowRenderOnPlacement: 1
+ m_ShadowCascadeRatios:
+ - 0.05
+ - 0.2
+ - 0.3
+ m_ShadowCascadeBorders:
+ - 0.2
+ - 0.2
+ - 0.2
+ - 0.2
+ m_ShadowAlgorithm: 0
+ m_ShadowVariant: 0
+ m_ShadowPrecision: 0
+ useOldInspector: 0
+ useVolumetric: 1
+ featuresFoldout: 1
+ showAdditionalSettings: 0
+ m_AreaLightEmissiveMeshShadowCastingMode: 0
+ m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0
+ m_AreaLightEmissiveMeshLayer: -1
+--- !u!1 &1207970955 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 500668027104458449, guid: 27e8a3736efefa447b1f65b33b30908a, type: 3}
+ m_PrefabInstance: {fileID: 1048453083}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &1207970956
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1207970955}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3b572ff4a55242c8ca4fd49834d0b07b, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ categoryId: 40
+--- !u!1 &1316173055
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1316173059}
+ - component: {fileID: 1316173058}
+ - component: {fileID: 1316173057}
+ - component: {fileID: 1316173056}
+ m_Layer: 0
+ m_Name: Wall (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1316173056
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1316173055}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1316173057
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1316173055}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1316173058
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1316173055}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1316173059
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1316173055}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 10, y: 5, z: 0}
+ m_LocalScale: {x: 0.001, y: 10, z: 20}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 12
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1335858818
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1335858822}
+ - component: {fileID: 1335858821}
+ - component: {fileID: 1335858820}
+ - component: {fileID: 1335858819}
+ m_Layer: 0
+ m_Name: Wall (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1335858819
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1335858818}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1335858820
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1335858818}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1335858821
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1335858818}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1335858822
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1335858818}
+ m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 5, z: 10}
+ m_LocalScale: {x: 0.001, y: 10, z: 20}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 13
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
+--- !u!1 &1359363713
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1359363717}
+ - component: {fileID: 1359363716}
+ - component: {fileID: 1359363715}
+ - component: {fileID: 1359363714}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1359363714
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1359363713}
+ 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.5
+ TAAQuality: 1
+ taaHistorySharpening: 0.35
+ taaAntiFlicker: 0.5
+ taaMotionVectorRejection: 0
+ taaAntiHistoryRinging: 0
+ 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
+ xrRendering: 1
+ fullscreenPassthrough: 0
+ allowDynamicResolution: 0
+ customRenderingSettings: 0
+ invertFaceCulling: 0
+ probeLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ hasPersistentHistory: 0
+ exposureTarget: {fileID: 0}
+ m_RenderingPathCustomFrameSettings:
+ bitDatas:
+ data1: 72198262773251917
+ data2: 13763000468760363032
+ lodBias: 1
+ lodBiasMode: 0
+ lodBiasQualityLevel: 0
+ maximumLODLevel: 0
+ maximumLODLevelMode: 0
+ maximumLODLevelQualityLevel: 0
+ sssQualityMode: 0
+ sssQualityLevel: 0
+ sssCustomSampleBudget: 20
+ materialQuality: 0
+ renderingPathCustomFrameSettingsOverrideMask:
+ mask:
+ data1: 0
+ data2: 0
+ defaultFrameSettings: 0
+--- !u!81 &1359363715
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1359363713}
+ m_Enabled: 1
+--- !u!20 &1359363716
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1359363713}
+ 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: 60
+ 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 &1359363717
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1359363713}
+ m_LocalRotation: {x: 0.1869286, y: -0, z: -0, w: 0.9823735}
+ m_LocalPosition: {x: 0, y: 4.12, z: -4.13}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 21.547, y: 0, z: 0}
+--- !u!1 &1482152823
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1482152825}
+ - component: {fileID: 1482152824}
+ m_Layer: 0
+ m_Name: GlobalSystemGraph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 2147483647
+ m_IsActive: 1
+--- !u!114 &1482152824
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1482152823}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4598ca58282119c45bbd191668e0d493, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1482152825
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1482152823}
+ 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: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1802792416
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 714549001370495616, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_Name
+ value: Taxi
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 6.5816216
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 4.2744203
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9232983
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.38408372
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -45.174
+ objectReference: {fileID: 0}
+ - target: {fileID: 5231512353441078096, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: d0094c5a0e9fb6148873c658dbc61a89, type: 3}
+--- !u!1001 &1953462828
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -4.904437
+ objectReference: {fileID: 0}
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.0000009536743
+ objectReference: {fileID: 0}
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 6.792951
+ objectReference: {fileID: 0}
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.604124
+ objectReference: {fileID: 0}
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.7968904
+ objectReference: {fileID: 0}
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 105.668
+ objectReference: {fileID: 0}
+ - target: {fileID: 1934784267107460101, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6604874415271597525, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+ propertyPath: m_Name
+ value: Hatchback
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 7e772e9ad7eb79040be629d8d04542ab, type: 3}
+--- !u!1001 &2135770398
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 7072217863731950089, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_Name
+ value: RGLSceneManager
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_RootOrder
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9145055722486604488, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: cc197478b1787bffa8b1b92eb7e455e7, type: 3}
diff --git a/Assets/AWSIM/Scenes/Samples/LidarOutputRestrictionSample.unity.meta b/Assets/AWSIM/Scenes/Samples/LidarOutputRestrictionSample.unity.meta
new file mode 100644
index 000000000..2bf396018
--- /dev/null
+++ b/Assets/AWSIM/Scenes/Samples/LidarOutputRestrictionSample.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 214a808297d7e3168b6d507d8bc31ab4
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/RGLUnityPlugin/Plugins/Linux/x86_64/libRobotecGPULidar.so b/Assets/RGLUnityPlugin/Plugins/Linux/x86_64/libRobotecGPULidar.so
index e249dbb22..146ce4433 100755
Binary files a/Assets/RGLUnityPlugin/Plugins/Linux/x86_64/libRobotecGPULidar.so and b/Assets/RGLUnityPlugin/Plugins/Linux/x86_64/libRobotecGPULidar.so differ
diff --git a/Assets/RGLUnityPlugin/Plugins/Windows/x86_64/RobotecGPULidar.dll b/Assets/RGLUnityPlugin/Plugins/Windows/x86_64/RobotecGPULidar.dll
index 0a4981ee0..36b8bc069 100644
Binary files a/Assets/RGLUnityPlugin/Plugins/Windows/x86_64/RobotecGPULidar.dll and b/Assets/RGLUnityPlugin/Plugins/Windows/x86_64/RobotecGPULidar.dll differ
diff --git a/Assets/RGLUnityPlugin/README.md b/Assets/RGLUnityPlugin/README.md
index 2b238a42a..2ce154729 100644
--- a/Assets/RGLUnityPlugin/README.md
+++ b/Assets/RGLUnityPlugin/README.md
@@ -71,6 +71,8 @@ The code consists of the following parts:
- Provides a number of pre-defined `LaserArrays
- `Laser.cs`
- Describes offsets of a single laser within a LaserArray
+ - `LidarOutputRestriction.cs`
+ - Provides faults injection modeled as a set of rectangular masks obstructing part of the rays
- LowLevelWrappers
- Provides some convenience code to call Native RGL functions
- Utilities
diff --git a/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarConfiguration.cs b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarConfiguration.cs
index 306af7731..e70ccf1bf 100644
--- a/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarConfiguration.cs
+++ b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarConfiguration.cs
@@ -14,6 +14,7 @@
using System;
using UnityEngine;
+using UnityEngine.Serialization;
namespace RGLUnityPlugin
{
@@ -47,8 +48,11 @@ public virtual LaserArray laserArray
[Tooltip("Time between two consecutive firings of the whole laser array (in milliseconds). Usually, it consists of firing time for all the lasers and recharge time.")]
[Min(0)] public float laserArrayCycleTime;
- [Tooltip("Represents the deviation of photons from a single beam emitted by a LiDAR sensor (in degrees). Used for simulating snow only (private feature).")]
- [Range(0.0f, 360.0f)] public float beamDivergence;
+ [Tooltip("Represents the horizontal deviation of photons from a single beam emitted by a LiDAR sensor (in degrees).")]
+ [Range(0.0f, 2.0f)] public float horizontalBeamDivergence;
+
+ [Tooltip("Represents the vertical deviation of photons from a single beam emitted by a LiDAR sensor (in degrees).")]
+ [Range(0.0f, 2.0f)] public float verticalBeamDivergence;
[Tooltip("Lidar noise parameters")]
public LidarNoiseParams noiseParams;
@@ -140,7 +144,8 @@ public virtual bool ValidateWithModel(LidarModel model)
protected bool ValidateWithModel(BaseLidarConfiguration gold)
{
return laserArrayCycleTime == gold.laserArrayCycleTime &&
- beamDivergence == gold.beamDivergence &&
+ horizontalBeamDivergence == gold.horizontalBeamDivergence &&
+ verticalBeamDivergence == gold.verticalBeamDivergence &&
noiseParams.Equals(gold.noiseParams) &&
laserArray.Equals(gold.laserArray);
// Omitted values
diff --git a/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarConfigurationLibrary.cs b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarConfigurationLibrary.cs
index bbf78e9d8..4a36d293b 100644
--- a/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarConfigurationLibrary.cs
+++ b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarConfigurationLibrary.cs
@@ -31,7 +31,8 @@ public static class LidarConfigurationLibrary
noiseParams = LidarNoiseParams.TypicalNoiseParams,
minRange = 0,
maxRange = 40,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.13f,
+ verticalBeamDivergence = 0.13f,
}},
{LidarModel.SickMRS6000, () => new UniformRangeLidarConfiguration
@@ -43,7 +44,8 @@ public static class LidarConfigurationLibrary
noiseParams = LidarNoiseParams.TypicalNoiseParams,
minRange = 0,
maxRange = 40,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.13f,
+ verticalBeamDivergence = 0.13f,
}},
{LidarModel.VelodyneVLP16, () => new UniformRangeLidarConfiguration
@@ -56,7 +58,8 @@ public static class LidarConfigurationLibrary
noiseParams = LidarNoiseParams.TypicalNoiseParams,
minRange = 0,
maxRange = 100.0f,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.171887f, // Manual-based value
+ verticalBeamDivergence = 0.0859435f, // Manual-based value
}},
{LidarModel.VelodyneVLP32C, () => new UniformRangeLidarConfiguration
@@ -69,7 +72,8 @@ public static class LidarConfigurationLibrary
noiseParams = LidarNoiseParams.TypicalNoiseParams,
minRange = 0,
maxRange = 200.0f,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.171887f, // Manual-based value
+ verticalBeamDivergence = 0.0859435f, // Manual-based value
}},
{LidarModel.VelodyneVLS128, () => new UniformRangeLidarConfiguration
@@ -82,7 +86,8 @@ public static class LidarConfigurationLibrary
noiseParams = LidarNoiseParams.TypicalNoiseParams,
minRange = 0,
maxRange = 300.0f,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.171887f, // Manual-based value
+ verticalBeamDivergence = 0.0859435f, // Manual-based value
}},
{LidarModel.HesaiPandarQT, () => new UniformRangeLidarConfiguration
@@ -95,7 +100,8 @@ public static class LidarConfigurationLibrary
noiseParams = LidarNoiseParams.TypicalNoiseParams,
minRange = 0.1f,
maxRange = 20.0f, // Yes, 20 meters, this is not a typo!
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.13f, // Not specified in manual
+ verticalBeamDivergence = 0.13f, // Not specified in manual
}},
{LidarModel.HesaiPandar40P, () => new UniformRangeLidarConfiguration
@@ -113,7 +119,8 @@ public static class LidarConfigurationLibrary
// that vary from 130m to 230m
// as this template supports single-value range, 200m is chosen
maxRange = 200.0f,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.13f, // Not specified in manual
+ verticalBeamDivergence = 0.13f, // Not specified in manual
}},
@@ -126,7 +133,8 @@ public static class LidarConfigurationLibrary
noiseParams = LidarNoiseParams.TypicalNoiseParams,
minRange = 0.8f,
maxRange = 120.0f,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.13f, // Manual-based value
+ verticalBeamDivergence = 0.13f, // Not specified in manual
}},
{LidarModel.HesaiAT128E2X, () => new HesaiAT128LidarConfiguration()
@@ -137,7 +145,8 @@ public static class LidarConfigurationLibrary
minHAngle = -60.0f,
maxHAngle = 60.0f,
noiseParams = LidarNoiseParams.TypicalNoiseParams,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.13f, // Not specified in manual
+ verticalBeamDivergence = 0.13f, // Not specified in manual
}},
{LidarModel.HesaiPandarXT32, () => new UniformRangeLidarConfiguration
@@ -150,7 +159,8 @@ public static class LidarConfigurationLibrary
noiseParams = LidarNoiseParams.TypicalNoiseParams,
minRange = 0.05f,
maxRange = 120.0f,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.13f, // Not specified in manual
+ verticalBeamDivergence = 0.13f, // Not specified in manual
}},
{LidarModel.HesaiQT128C2X, () => new HesaiQT128C2XLidarConfiguration()
@@ -162,7 +172,8 @@ public static class LidarConfigurationLibrary
minHAngle = 0.0f,
maxHAngle = 360.0f,
noiseParams = LidarNoiseParams.TypicalNoiseParams,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.13f, // Not specified in manual
+ verticalBeamDivergence = 0.13f, // Not specified in manual
}},
{LidarModel.HesaiPandar128E4X, () => new HesaiPandar128E4XLidarConfiguration()
@@ -174,7 +185,8 @@ public static class LidarConfigurationLibrary
minHAngle = 0.0f,
maxHAngle = 360.0f,
noiseParams = LidarNoiseParams.TypicalNoiseParams,
- beamDivergence = 0.13f,
+ horizontalBeamDivergence = 0.13f, // Not specified in manual
+ verticalBeamDivergence = 0.13f, // Not specified in manual
highResolutionModeEnabled = false,
}},
};
diff --git a/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestriction.cs b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestriction.cs
new file mode 100644
index 000000000..41b59750f
--- /dev/null
+++ b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestriction.cs
@@ -0,0 +1,167 @@
+// Copyright 2024 Robotec.ai.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+using System;
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace RGLUnityPlugin
+{
+
+ [Serializable]
+ public class LidarOutputRestriction
+ {
+ ///
+ /// Allows to quickly enable/disable the restriction.
+ ///
+ public bool applyRestriction = false;
+
+ ///
+ /// List of rectangular restriction which will be apply to lidar as fault injection.
+ ///
+ public List rectangularRestrictionMasks = new List();
+
+ ///
+ /// Allows to change mode from static to blinking restriction mode.
+ ///
+ public bool enablePeriodicRestriction = false;
+
+ [Tooltip("The period of the blinking in seconds.")]
+ [Min(0.0f)]
+ public float restrictionPeriod = 1.0f;
+
+ [Tooltip(@"The duty cycle of the blinking.
+ 0.5 means that the restriction will be active half of the blinkingPeriod time.
+ 1.0 means that the restriction will be active all the blinkingPeriod time.
+ 0.0 means that the restriction will be active none of the blinkingPeriod time.")]
+ [Range(0.0f, 1.0f)]
+ public float restrictionDutyRate = 0.5f;
+
+ ///
+ /// Allows to change blinking from set to random periods.
+ ///
+ public bool enableRestrictionRandomizer = false;
+
+ [Tooltip("The lower bound for random value of period of the blinking in seconds.")]
+ [Min(0.0f)]
+ public float minRandomPerdiod = 0.0f;
+
+ [Tooltip("The upper bound for random value of period of the blinking in seconds.")]
+ [Min(0.0f)]
+ public float maxRandomPerdiod = 1.0f;
+
+ private sbyte[] raysMask;
+ private sbyte[] fullMask;
+ private int cloudSize;
+
+ public IEnumerator coroutine;
+
+ public LidarOutputRestriction() { }
+
+ public void ApplyStaticRestriction(RGLNodeSequence rglGraphLidar, string identifier)
+ {
+ if (applyRestriction)
+ {
+ rglGraphLidar.ApplyLidarOutputRestriction(identifier, raysMask);
+ }
+ else
+ {
+ rglGraphLidar.ApplyLidarOutputRestriction(identifier, fullMask);
+ }
+ }
+
+ public void Update(BaseLidarConfiguration configuration)
+ {
+ CreateFullMask(configuration.PointCloudSize);
+ if (applyRestriction)
+ {
+ CreateRectangularMask(configuration);
+ }
+ }
+
+ public IEnumerator BlinkingRoutine(RGLNodeSequence rglGraphLidar, string identifier)
+ {
+ if (applyRestriction)
+ {
+ float restrictionDutyTime = restrictionPeriod * restrictionDutyRate;
+ float restrictionTime = restrictionPeriod;
+
+ while (enablePeriodicRestriction)
+ {
+ if (enableRestrictionRandomizer)
+ {
+ restrictionTime = UnityEngine.Random.Range(minRandomPerdiod, maxRandomPerdiod);
+ restrictionDutyTime = UnityEngine.Random.Range(0.0f, 1.0f) * restrictionTime;
+ }
+ rglGraphLidar.ApplyLidarOutputRestriction(identifier, raysMask);
+ yield return new WaitForSeconds(restrictionDutyTime);
+
+ rglGraphLidar.ApplyLidarOutputRestriction(identifier, fullMask);
+ yield return new WaitForSeconds(restrictionTime - restrictionDutyTime);
+ }
+ }
+ }
+
+ private void CreateFullMask(int cloudSizeIn)
+ {
+ cloudSize = cloudSizeIn;
+
+ fullMask = new sbyte[cloudSize];
+ for (int i = 0; i < cloudSize; i++)
+ {
+ fullMask[i] = 1;
+ }
+ }
+
+ private void CreateRectangularMask(BaseLidarConfiguration configuration)
+ {
+ int horizontalSteps = configuration.HorizontalSteps;
+ int verticalSteps = configuration.laserArray.lasers.Length;
+
+ raysMask = new sbyte[configuration.PointCloudSize];
+
+ for (int hStep = 0; hStep < horizontalSteps; hStep++)
+ {
+ for (int laserId = 0; laserId < verticalSteps; laserId++)
+ {
+ int idx = laserId + hStep * verticalSteps;
+
+ float verticalAngle = configuration.laserArray.lasers[laserId].verticalAngularOffsetDeg;
+
+ float azimuth = configuration.minHAngle + hStep * configuration.horizontalResolution;
+ float horizontalAngle = azimuth + configuration.laserArray.lasers[laserId].horizontalAngularOffsetDeg;
+
+ if (horizontalAngle < 0.0f) {
+ horizontalAngle += 360.0f;
+ } else if (horizontalAngle > 360.0f) {
+ horizontalAngle -= 360.0f;
+ }
+
+ raysMask[idx] = 1;
+
+ foreach (var mask in rectangularRestrictionMasks)
+ {
+ if ((horizontalAngle >= mask.startingHorizontalAngle && horizontalAngle <= mask.endingHorizontalAngle) &&
+ (verticalAngle >= mask.startingVerticalAngle && verticalAngle <= mask.endingVerticalAngle))
+ {
+ raysMask[idx] = 0;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestriction.cs.meta b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestriction.cs.meta
new file mode 100644
index 000000000..87b073ee5
--- /dev/null
+++ b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestriction.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ae924e62afd43a4b08ff8ed497e4eef0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestrictionRange.cs b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestrictionRange.cs
new file mode 100644
index 000000000..e07e482b7
--- /dev/null
+++ b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestrictionRange.cs
@@ -0,0 +1,39 @@
+// Copyright 2024 Robotec.ai.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+using System;
+using UnityEngine;
+
+namespace RGLUnityPlugin
+{
+
+ [Serializable]
+ public class LidarOutputRestrictionRange
+ {
+
+ [Tooltip("Starting horizontal angle for single rectangular restriction")]
+ [Range(0, 360)] public int startingHorizontalAngle;
+
+ [Tooltip("Ending horizontal angle for single rectangular restriction")]
+ [Range(0, 360)] public int endingHorizontalAngle;
+
+ [Tooltip("Starting vertical angle for single rectangular restriction")]
+ [Range(-90, 90)] public int startingVerticalAngle;
+
+ [Tooltip("Ending vertical angle for single rectangular restriction")]
+ [Range(-90, 90)] public int endingVerticalAngle;
+
+ }
+
+}
\ No newline at end of file
diff --git a/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestrictionRange.cs.meta b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestrictionRange.cs.meta
new file mode 100644
index 000000000..ffe18dce5
--- /dev/null
+++ b/Assets/RGLUnityPlugin/Scripts/LidarModels/LidarOutputRestrictionRange.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 71d9248087dc026a3823e3cabbc3ed1d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/RGLUnityPlugin/Scripts/LidarSensor.cs b/Assets/RGLUnityPlugin/Scripts/LidarSensor.cs
index d0f7c8acf..2b57731b8 100644
--- a/Assets/RGLUnityPlugin/Scripts/LidarSensor.cs
+++ b/Assets/RGLUnityPlugin/Scripts/LidarSensor.cs
@@ -25,7 +25,8 @@ public class LidarSensor : MonoBehaviour
{
[Tooltip("Sensor processing and callbacks are automatically called in this hz")]
[FormerlySerializedAs("OutputHz")]
- [Range(0, 50)] public int AutomaticCaptureHz = 10;
+ [Range(0, 50)]
+ public int AutomaticCaptureHz = 10;
///
/// Delegate used in callbacks.
@@ -45,6 +46,9 @@ public class LidarSensor : MonoBehaviour
[Tooltip("Allows to select one of built-in LiDAR models")]
public LidarModel modelPreset = LidarModel.RangeMeter;
+ [Tooltip("Allows to select between not divergent beams and different multi-return modes")]
+ public RGLReturnType returnType = RGLReturnType.RGL_RETURN_TYPE_NOT_DIVERGENT;
+
[Tooltip("Allows to quickly enable/disable distance gaussian noise")]
public bool applyDistanceGaussianNoise = true;
@@ -54,7 +58,8 @@ public class LidarSensor : MonoBehaviour
[Tooltip("Allows to quickly enable/disable velocity distortion")]
public bool applyVelocityDistortion = false;
- [Tooltip("If enabled, validates whether the configuration is the same as the manual for the selected model (only on startup)")]
+ [Tooltip(
+ "If enabled, validates whether the configuration is the same as the manual for the selected model (only on startup)")]
public bool doValidateConfigurationOnStartup = true;
///
@@ -63,6 +68,11 @@ public class LidarSensor : MonoBehaviour
[SerializeReference]
public BaseLidarConfiguration configuration = LidarConfigurationLibrary.ByModel[LidarModel.RangeMeter]();
+ ///
+ /// Encapsulates description of a output restriction to allow fault injection.
+ ///
+ public LidarOutputRestriction outputRestriction = new LidarOutputRestriction();
+
private RGLNodeSequence rglGraphLidar;
private RGLNodeSequence rglSubgraphCompact;
private RGLNodeSequence rglSubgraphToLidarFrame;
@@ -75,6 +85,7 @@ public class LidarSensor : MonoBehaviour
private const string lidarPoseNodeId = "LIDAR_POSE";
private const string noiseLidarRayNodeId = "NOISE_LIDAR_RAY";
private const string lidarRaytraceNodeId = "LIDAR_RAYTRACE";
+ private const string lidarMRNodeId = "LIDAR_MR";
private const string noiseHitpointNodeId = "NOISE_HITPOINT";
private const string noiseDistanceNodeId = "NOISE_DISTANCE";
private const string pointsCompactNodeId = "POINTS_COMPACT";
@@ -95,13 +106,14 @@ public class LidarSensor : MonoBehaviour
public void Awake()
{
rglGraphLidar = new RGLNodeSequence()
- .AddNodeRaysFromMat3x4f(lidarRaysNodeId, new Matrix4x4[1] {Matrix4x4.identity})
- .AddNodeRaysSetRange(lidarRangeNodeId, new Vector2[1] {new Vector2(0.0f, Mathf.Infinity)})
- .AddNodeRaysSetRingIds(lidarRingsNodeId, new int[1] {0})
- .AddNodeRaysSetTimeOffsets(lidarTimeOffsetsNodeId, new float[1] {0})
+ .AddNodeRaysFromMat3x4f(lidarRaysNodeId, new Matrix4x4[1] { Matrix4x4.identity })
+ .AddNodeRaysSetRange(lidarRangeNodeId, new Vector2[1] { new Vector2(0.0f, Mathf.Infinity) })
+ .AddNodeRaysSetRingIds(lidarRingsNodeId, new int[1] { 0 })
+ .AddNodeRaysSetTimeOffsets(lidarTimeOffsetsNodeId, new float[1] { 0 })
.AddNodeRaysTransform(lidarPoseNodeId, Matrix4x4.identity)
.AddNodeGaussianNoiseAngularRay(noiseLidarRayNodeId, 0, 0)
.AddNodeRaytrace(lidarRaytraceNodeId)
+ .AddNodeMultiReturnSwitch(lidarMRNodeId, RGLReturnType.RGL_RETURN_TYPE_NOT_DIVERGENT)
.AddNodeGaussianNoiseAngularHitpoint(noiseHitpointNodeId, 0, 0)
.AddNodeGaussianNoiseDistance(noiseDistanceNodeId, 0, 0, 0);
@@ -132,7 +144,8 @@ public void Start()
if (LidarSnowManager.Instance != null)
{
// Add deactivated node with some initial values. To be activated and updated when validating.
- rglGraphLidar.AddNodePointsSimulateSnow(snowNodeId, 0.0f, 1.0f, 0.0001f, 0.0001f, 0.2f, 0.01f, 1, 0.01f, false, 0.0f);
+ rglGraphLidar.AddNodePointsSimulateSnow(snowNodeId, 0.0f, 1.0f, 0.0001f, 0.0001f, 0.2f, 0.01f, 1, 0.01f,
+ false, 0.0f);
rglGraphLidar.SetActive(snowNodeId, false);
LidarSnowManager.Instance.OnNewConfig += OnValidate;
}
@@ -143,8 +156,9 @@ public void Start()
{
if (!configuration.ValidateWithModel(modelPreset))
{
- Debug.LogWarning($"{name}: the configuration of the selected model preset ({modelPreset.ToString()}) is modified. " +
- "Ignore this warning if you have consciously changed them.");
+ Debug.LogWarning(
+ $"{name}: the configuration of the selected model preset ({modelPreset.ToString()}) is modified. " +
+ "Ignore this warning if you have consciously changed them.");
}
}
}
@@ -152,13 +166,16 @@ public void Start()
public void OnValidate()
{
// This tricky code ensures that configuring from a preset dropdown
- // in Unity Inspector works well in prefab edit mode and regular edit mode.
+ // in Unity Inspector works well in prefab edit mode and regular edit mode.
bool presetChanged = validatedPreset != modelPreset;
bool firstValidation = validatedPreset == null;
if (!firstValidation && presetChanged)
{
configuration = LidarConfigurationLibrary.ByModel[modelPreset]();
}
+
+ outputRestriction.Update(configuration);
+
ApplyConfiguration(configuration);
validatedPreset = modelPreset;
onLidarModelChange?.Invoke();
@@ -172,22 +189,36 @@ private void ApplyConfiguration(BaseLidarConfiguration newConfig)
}
rglGraphLidar.UpdateNodeRaysFromMat3x4f(lidarRaysNodeId, newConfig.GetRayPoses())
- .UpdateNodeRaysSetRange(lidarRangeNodeId, newConfig.GetRayRanges())
- .UpdateNodeRaysSetRingIds(lidarRingsNodeId, newConfig.GetRayRingIds())
- .UpdateNodeRaysTimeOffsets(lidarTimeOffsetsNodeId, newConfig.GetRayTimeOffsets())
- .UpdateNodeGaussianNoiseAngularRay(noiseLidarRayNodeId,
- newConfig.noiseParams.angularNoiseMean * Mathf.Deg2Rad,
- newConfig.noiseParams.angularNoiseStDev * Mathf.Deg2Rad)
- .UpdateNodeGaussianNoiseAngularHitpoint(noiseHitpointNodeId,
- newConfig.noiseParams.angularNoiseMean * Mathf.Deg2Rad,
- newConfig.noiseParams.angularNoiseStDev * Mathf.Deg2Rad)
- .UpdateNodeGaussianNoiseDistance(noiseDistanceNodeId, newConfig.noiseParams.distanceNoiseMean,
- newConfig.noiseParams.distanceNoiseStDevBase, newConfig.noiseParams.distanceNoiseStDevRisePerMeter);
+ .UpdateNodeRaysSetRange(lidarRangeNodeId, newConfig.GetRayRanges())
+ .UpdateNodeRaysSetRingIds(lidarRingsNodeId, newConfig.GetRayRingIds())
+ .UpdateNodeRaysTimeOffsets(lidarTimeOffsetsNodeId, newConfig.GetRayTimeOffsets())
+ .UpdateNodeGaussianNoiseAngularRay(noiseLidarRayNodeId,
+ newConfig.noiseParams.angularNoiseMean * Mathf.Deg2Rad,
+ newConfig.noiseParams.angularNoiseStDev * Mathf.Deg2Rad)
+ .UpdateNodeGaussianNoiseAngularHitpoint(noiseHitpointNodeId,
+ newConfig.noiseParams.angularNoiseMean * Mathf.Deg2Rad,
+ newConfig.noiseParams.angularNoiseStDev * Mathf.Deg2Rad)
+ .UpdateNodeGaussianNoiseDistance(noiseDistanceNodeId, newConfig.noiseParams.distanceNoiseMean,
+ newConfig.noiseParams.distanceNoiseStDevBase, newConfig.noiseParams.distanceNoiseStDevRisePerMeter)
+ .UpdateMultiReturnSwitch(lidarMRNodeId, returnType);
+
+ if (returnType != RGLReturnType.RGL_RETURN_TYPE_NOT_DIVERGENT)
+ {
+ rglGraphLidar.ConfigureNodeRaytraceBeamDivergence(lidarRaytraceNodeId,
+ Mathf.Deg2Rad * newConfig.horizontalBeamDivergence,
+ Mathf.Deg2Rad * newConfig.verticalBeamDivergence);
+ }
+ else
+ {
+ rglGraphLidar.ConfigureNodeRaytraceBeamDivergence(lidarRaytraceNodeId, 0.0f, 0.0f);
+ }
rglGraphLidar.SetActive(noiseDistanceNodeId, applyDistanceGaussianNoise);
var angularNoiseType = newConfig.noiseParams.angularNoiseType;
- rglGraphLidar.SetActive(noiseLidarRayNodeId, applyAngularGaussianNoise && angularNoiseType == AngularNoiseType.RayBased);
- rglGraphLidar.SetActive(noiseHitpointNodeId, applyAngularGaussianNoise && angularNoiseType == AngularNoiseType.HitpointBased);
+ rglGraphLidar.SetActive(noiseLidarRayNodeId,
+ applyAngularGaussianNoise && angularNoiseType == AngularNoiseType.RayBased);
+ rglGraphLidar.SetActive(noiseHitpointNodeId,
+ applyAngularGaussianNoise && angularNoiseType == AngularNoiseType.HitpointBased);
// Snow model updates
if (rglGraphLidar.HasNode(snowNodeId))
@@ -203,14 +234,30 @@ private void ApplyConfiguration(BaseLidarConfiguration newConfig)
LidarSnowManager.Instance.TerminalVelocity,
LidarSnowManager.Instance.Density,
newConfig.laserArray.GetLaserRingIds().Length,
- newConfig.beamDivergence * Mathf.Deg2Rad,
+ newConfig.horizontalBeamDivergence * Mathf.Deg2Rad,
LidarSnowManager.Instance.DoSimulateEnergyLoss,
LidarSnowManager.Instance.SnowflakeOccupancyThreshold);
}
+
rglGraphLidar.SetActive(snowNodeId, LidarSnowManager.Instance.IsSnowEnabled);
}
rglGraphLidar.ConfigureNodeRaytraceDistortion(lidarRaytraceNodeId, applyVelocityDistortion);
+
+ if (outputRestriction.enablePeriodicRestriction && outputRestriction.applyRestriction)
+ {
+ outputRestriction.coroutine = outputRestriction.BlinkingRoutine(rglGraphLidar, lidarRaytraceNodeId);
+ StartCoroutine(outputRestriction.coroutine);
+ }
+ else
+ {
+ if (outputRestriction.coroutine != null)
+ {
+ StopCoroutine(outputRestriction.coroutine);
+ }
+
+ outputRestriction.ApplyStaticRestriction(rglGraphLidar, lidarRaytraceNodeId);
+ }
}
public void OnEnable()
@@ -262,6 +309,7 @@ private bool FixedUpdateLogic()
fixedUpdatesInCurrentFrame = 0;
lastUpdateFrame = Time.frameCount;
}
+
fixedUpdatesInCurrentFrame += 1;
if (AutomaticCaptureHz == 0.0f)
@@ -341,17 +389,20 @@ private void SetVelocityToRaytrace()
// Calculate delta transform of lidar.
// Velocities must be in sensor-local coordinate frame.
// Sensor linear velocity in m/s.
- Vector3 globalLinearVelocity = (currentTransform.GetColumn(3) - lastTransform.GetColumn(3)) / Time.deltaTime;
+ Vector3 globalLinearVelocity =
+ (currentTransform.GetColumn(3) - lastTransform.GetColumn(3)) / Time.deltaTime;
Vector3 localLinearVelocity = gameObject.transform.InverseTransformDirection(globalLinearVelocity);
- Vector3 deltaRotation = Quaternion.LookRotation(currentTransform.GetColumn(2), currentTransform.GetColumn(1)).eulerAngles
- - Quaternion.LookRotation(lastTransform.GetColumn(2), lastTransform.GetColumn(1)).eulerAngles;
+ Vector3 deltaRotation =
+ Quaternion.LookRotation(currentTransform.GetColumn(2), currentTransform.GetColumn(1)).eulerAngles
+ - Quaternion.LookRotation(lastTransform.GetColumn(2), lastTransform.GetColumn(1)).eulerAngles;
// Fix delta rotation when switching between 0 and 360.
- deltaRotation = new Vector3(Mathf.DeltaAngle(0, deltaRotation.x), Mathf.DeltaAngle(0, deltaRotation.y), Mathf.DeltaAngle(0, deltaRotation.z));
+ deltaRotation = new Vector3(Mathf.DeltaAngle(0, deltaRotation.x), Mathf.DeltaAngle(0, deltaRotation.y),
+ Mathf.DeltaAngle(0, deltaRotation.z));
// Sensor angular velocity in rad/s.
Vector3 localAngularVelocity = (deltaRotation * Mathf.Deg2Rad) / Time.deltaTime;
rglGraphLidar.ConfigureNodeRaytraceVelocity(lidarRaytraceNodeId, localLinearVelocity, localAngularVelocity);
}
}
-}
+}
\ No newline at end of file
diff --git a/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLHelperTypes.cs b/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLHelperTypes.cs
index cd539d0f1..bf4c05e4d 100644
--- a/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLHelperTypes.cs
+++ b/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLHelperTypes.cs
@@ -39,5 +39,6 @@ public enum RGLNodeType
GAUSSIAN_NOISE_ANGULAR_HITPOINT,
GAUSSIAN_NOISE_DISTANCE,
PUBLISH_ROS2_RADARSCAN,
+ MULTI_RETURN_SWITCH,
};
}
diff --git a/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNativeAPI.cs b/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNativeAPI.cs
index 3aa801020..9a420db39 100644
--- a/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNativeAPI.cs
+++ b/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNativeAPI.cs
@@ -96,6 +96,12 @@ public static class RGLNativeAPI
[DllImport("RobotecGPULidar")]
public static extern int rgl_node_raytrace_configure_distortion(IntPtr node, bool enable);
+ [DllImport("RobotecGPULidar")]
+ public static extern int rgl_node_raytrace_configure_mask(IntPtr node, IntPtr rays_mask, int rays_count);
+
+ [DllImport("RobotecGPULidar")]
+ public static extern int rgl_node_raytrace_configure_beam_divergence(IntPtr node, float horizontal_divergence, float vertical_divergence);
+
[DllImport("RobotecGPULidar")]
public static extern int rgl_node_points_format(ref IntPtr node, IntPtr fields, int field_count);
@@ -134,6 +140,10 @@ public static extern int rgl_node_points_udp_publish(
[DllImport("RobotecGPULidar")]
public static extern int rgl_node_gaussian_noise_distance(ref IntPtr node, float mean, float st_dev, float st_dev_rise_per_meter);
+
+ [DllImport("RobotecGPULidar")]
+ public static extern int rgl_node_multi_return_switch(ref IntPtr node, RGLReturnType return_type);
+
[DllImport("RobotecGPULidar")]
public static extern int rgl_node_points_filter_ground(ref IntPtr node, IntPtr sensor_up_vector, float ground_angle_threshold);
@@ -429,6 +439,22 @@ public static void NodeRaytraceConfigureDistortion(IntPtr node, bool enable)
CheckErr(rgl_node_raytrace_configure_distortion(node, enable));
}
+ public static void NodeRaytraceConfigureMask(IntPtr node, sbyte[] raysMask, int rayCount)
+ {
+ unsafe
+ {
+ fixed (sbyte* maskPtr = raysMask)
+ {
+ CheckErr(rgl_node_raytrace_configure_mask(node, (IntPtr) maskPtr, rayCount));
+ }
+ }
+ }
+
+ public static void NodeRaytraceConfigureBeamDivergence(IntPtr node, float horizontalDivergence, float verticalDivergence)
+ {
+ CheckErr(rgl_node_raytrace_configure_beam_divergence(node, horizontalDivergence, verticalDivergence));
+ }
+
public static void NodePointsFormat(ref IntPtr node, RGLField[] fields)
{
unsafe
@@ -506,6 +532,11 @@ public static void NodeGaussianNoiseDistance(ref IntPtr node, float mean, float
CheckErr(rgl_node_gaussian_noise_distance(ref node, mean, stDev, stDevRisePerMeter));
}
+ public static void NodeMultiReturnSwitch(ref IntPtr node, RGLReturnType return_type)
+ {
+ CheckErr(rgl_node_multi_return_switch(ref node, return_type));
+ }
+
public static void NodePointsFilterGround(ref IntPtr node, float groundAngleThreshold)
{
var upVector = IntoVec3f(new Vector3(0, 1, 0));
diff --git a/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNativeTypes.cs b/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNativeTypes.cs
index f2cbd7c78..87b4aa070 100644
--- a/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNativeTypes.cs
+++ b/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNativeTypes.cs
@@ -147,4 +147,11 @@ public enum RGLExtension : Int32
RGL_EXTENSION_SNOW = 3,
RGL_EXTENSION_COUNT
};
+
+ public enum RGLReturnType : Int32
+ {
+ RGL_RETURN_TYPE_NOT_DIVERGENT = 0,
+ RGL_RETURN_TYPE_FIRST = 1,
+ RGL_RETURN_TYPE_LAST = 2,
+ }
}
diff --git a/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNodeSequence.cs b/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNodeSequence.cs
index 977e0b87a..b6dd2dc63 100644
--- a/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNodeSequence.cs
+++ b/Assets/RGLUnityPlugin/Scripts/LowLevelWrappers/RGLNodeSequence.cs
@@ -137,7 +137,7 @@ public RGLNodeSequence AddNodeRaytrace(string identifier)
AddNode(handle);
return this;
}
-
+
public RGLNodeSequence AddNodePointsFilterGround(string identifier, float groundAngleThreshold)
{
CheckNodeNotExist(identifier);
@@ -197,7 +197,7 @@ public RGLNodeSequence AddNodePointsYield(string identifier, RGLField field)
{
CheckNodeNotExist(identifier);
RGLNodeHandle handle = new RGLNodeHandle();
- RGLNativeAPI.NodePointsYield(ref handle.Node, new [] {field});
+ RGLNativeAPI.NodePointsYield(ref handle.Node, new[] { field });
handle.Type = RGLNodeType.POINTS_YIELD;
handle.OutputField = field;
handle.Identifier = identifier;
@@ -326,6 +326,17 @@ public RGLNodeSequence AddNodePointsSimulateSnow(string identifier, float minRan
return this;
}
+ public RGLNodeSequence AddNodeMultiReturnSwitch(string identifier, RGLReturnType returnType)
+ {
+ CheckNodeNotExist(identifier);
+ RGLNodeHandle handle = new RGLNodeHandle();
+ RGLNativeAPI.NodeMultiReturnSwitch(ref handle.Node, returnType);
+ handle.Type = RGLNodeType.MULTI_RETURN_SWITCH;
+ handle.Identifier = identifier;
+ AddNode(handle);
+ return this;
+ }
+
//// UPDATE NODES ////
public RGLNodeSequence UpdateNodeRaysFromMat3x4f(string identifier, Matrix4x4[] rays)
{
@@ -417,7 +428,7 @@ public RGLNodeSequence UpdateNodePointsFilterGround(string identifier, float gro
RGLNativeAPI.NodePointsFilterGround(ref handle.Node, groundAngleThreshold);
return this;
}
-
+
public RGLNodeSequence UpdateNodePointsCompactByField(string identifier, RGLField field)
{
RGLNodeHandle handle = ValidateNode(identifier, RGLNodeType.POINTS_COMPACT_BY_FIELD);
@@ -446,6 +457,13 @@ public RGLNodeSequence UpdateNodePointsSimulateSnow(string identifier, float min
return this;
}
+ public RGLNodeSequence UpdateMultiReturnSwitch(string identifier, RGLReturnType returnType)
+ {
+ RGLNodeHandle handle = ValidateNode(identifier, RGLNodeType.MULTI_RETURN_SWITCH);
+ RGLNativeAPI.NodeMultiReturnSwitch(ref handle.Node, returnType);
+ return this;
+ }
+
//// CONFIGURE NODES ////
public RGLNodeSequence ConfigureNodeRaytraceVelocity(string identifier, Vector3 linearVelocity, Vector3 angularVelocity)
@@ -462,6 +480,20 @@ public RGLNodeSequence ConfigureNodeRaytraceDistortion(string identifier, bool e
return this;
}
+ public RGLNodeSequence ConfigureNodeRaytraceBeamDivergence(string identifier, float horizontalDivergence, float verticalDivergence)
+ {
+ RGLNodeHandle handle = ValidateNode(identifier, RGLNodeType.RAYTRACE);
+ RGLNativeAPI.NodeRaytraceConfigureBeamDivergence(handle.Node, horizontalDivergence, verticalDivergence);
+ return this;
+ }
+
+ public RGLNodeSequence ApplyLidarOutputRestriction(string identifier, sbyte[] raysMask)
+ {
+ RGLNodeHandle handle = ValidateNode(identifier, RGLNodeType.RAYTRACE);
+ RGLNativeAPI.NodeRaytraceConfigureMask(handle.Node, raysMask, raysMask.Length);
+ return this;
+ }
+
//// NODESEQUENCE OPERATIONS ////
public int GetResultData(ref T[] data) where T : unmanaged
{
diff --git a/Assets/Tests/PlayMode/Sensors/SensorsTest.cs b/Assets/Tests/PlayMode/Sensors/SensorsTest.cs
index c694a5d10..437e83d2c 100644
--- a/Assets/Tests/PlayMode/Sensors/SensorsTest.cs
+++ b/Assets/Tests/PlayMode/Sensors/SensorsTest.cs
@@ -7,6 +7,8 @@
using UnityEngine.SceneManagement;
using UnityEngine.TestTools.Utils;
using AWSIM;
+using System;
+using System.Linq;
public class SensorsTest
{
@@ -38,6 +40,9 @@ public class SensorsTest
// LiDAR & Radar
ROS2.ISubscription pointCloudSubscription;
List pointCloudMessages;
+ RGLUnityPlugin.RGLNodeSequence rglSubgraphYieldOutput;
+ const string yieldOutputNodeId = "OUT_YIELD";
+ Vector3[] onlyHits = Array.Empty();
// IMU
ImuSensor imuSensor;
@@ -78,13 +83,33 @@ public IEnumerator Setup()
yield return null;
}
+ public void LidarOutputRestrictionTestSetup()
+ {
+ rglSubgraphYieldOutput = new RGLUnityPlugin.RGLNodeSequence()
+ .AddNodePointsYield(yieldOutputNodeId, RGLUnityPlugin.RGLField.XYZ_VEC3_F32);
+
+ rglSubgraphYieldOutput.SetPriority(yieldOutputNodeId, 1);
+ rglSubgraphYieldOutput.SetActive(yieldOutputNodeId, true);
+
+ // Disable Gaussian noise to be able to validate output restriction
+ lidarSensor.applyAngularGaussianNoise = false;
+ lidarSensor.applyDistanceGaussianNoise = false;
+ lidarSensor.OnValidate();
+
+ lidarSensor.ConnectToWorldFrame(rglSubgraphYieldOutput);
+ lidarSensor.onNewData += OnNewLidarData;
+ }
+
[UnityTest]
public IEnumerator LiDAR()
{
Assert.NotNull(lidarSensor);
+
+ LidarOutputRestrictionTestSetup();
+
RglLidarPublisher lidarRos2Publisher = lidarSensor.GetComponent();
- Assert.AreEqual((byte)lidarRos2Publisher.qos.reliabilityPolicy , (byte)ROS2.ReliabilityPolicy.QOS_POLICY_RELIABILITY_BEST_EFFORT);
+ Assert.AreEqual((byte)lidarRos2Publisher.qos.reliabilityPolicy, (byte)ROS2.ReliabilityPolicy.QOS_POLICY_RELIABILITY_BEST_EFFORT);
Assert.NotZero(lidarRos2Publisher.pointCloud2Publishers.Count);
@@ -97,6 +122,9 @@ public IEnumerator LiDAR()
Assert.IsNotEmpty(pointCloudMessages);
Assert.AreEqual(pointCloudMessages.Count, (int)(testDuration * lidarSensor.AutomaticCaptureHz));
}
+
+ // Unsubscribe LiDAR output validation
+ lidarSensor.onNewData -= OnNewLidarData;
}
[UnityTest]
@@ -105,7 +133,7 @@ public IEnumerator Radar()
Assert.NotNull(radarSensor);
RglLidarPublisher radarRos2Publisher = radarSensor.GetComponent();
- Assert.AreEqual((byte)radarRos2Publisher.qos.reliabilityPolicy , (byte)ROS2.ReliabilityPolicy.QOS_POLICY_RELIABILITY_BEST_EFFORT);
+ Assert.AreEqual((byte)radarRos2Publisher.qos.reliabilityPolicy, (byte)ROS2.ReliabilityPolicy.QOS_POLICY_RELIABILITY_BEST_EFFORT);
Assert.NotZero(radarRos2Publisher.pointCloud2Publishers.Count);
@@ -222,4 +250,24 @@ private void CreatePointCloud2Subscription(PointCloud2Publisher rglRosPublisher)
pointCloudMessages.Add(msg);
}, qosSettingsLidar.GetQoSProfile());
}
-}
+
+ private void OnNewLidarData()
+ {
+ rglSubgraphYieldOutput.GetResultData(ref onlyHits);
+ float startingAzimuth = lidarSensor.outputRestriction.rectangularRestrictionMasks[0].startingHorizontalAngle;
+ float endingAzimuth = lidarSensor.outputRestriction.rectangularRestrictionMasks[0].endingHorizontalAngle;
+ float startingElevation = lidarSensor.outputRestriction.rectangularRestrictionMasks[0].startingVerticalAngle;
+ float endingElevation = lidarSensor.outputRestriction.rectangularRestrictionMasks[0].endingVerticalAngle;
+
+ foreach (var point in onlyHits)
+ {
+ Vector3 toHitVector = point - lidarSensor.transform.position;
+ Vector3 xzProjected = Vector3.ProjectOnPlane(toHitVector, Vector3.up);
+ float azimuth = Mathf.Atan2(xzProjected.x, xzProjected.z) * Mathf.Rad2Deg;
+ Vector3 xyProjected = Vector3.ProjectOnPlane(toHitVector, Vector3.right);
+ float elevation = Mathf.Atan2(xyProjected.y, xyProjected.z) * Mathf.Rad2Deg;
+
+ Assert.IsFalse(azimuth > startingAzimuth && azimuth < endingAzimuth && elevation > startingElevation && elevation < endingElevation);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Tests/PlayMode/Sensors/SensorsTest.unity b/Assets/Tests/PlayMode/Sensors/SensorsTest.unity
index 5b15adccd..4179c01c7 100644
--- a/Assets/Tests/PlayMode/Sensors/SensorsTest.unity
+++ b/Assets/Tests/PlayMode/Sensors/SensorsTest.unity
@@ -123,6 +123,102 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
+--- !u!1 &86823027
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 86823028}
+ - component: {fileID: 86823031}
+ - component: {fileID: 86823030}
+ - component: {fileID: 86823029}
+ m_Layer: 0
+ m_Name: Wall (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &86823028
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 86823027}
+ m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0.15, y: 0, z: -10}
+ m_LocalScale: {x: 0.01, y: 5, z: 20}
+ m_Children: []
+ m_Father: {fileID: 1422126287}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
+--- !u!65 &86823029
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 86823027}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &86823030
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 86823027}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &86823031
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 86823027}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &220815745
GameObject:
m_ObjectHideFlags: 0
@@ -577,12 +673,12 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 812897209}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 35, y: 0, z: 0}
- m_LocalScale: {x: 0.01, y: 5, z: 5}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 10, y: 0, z: 0}
+ m_LocalScale: {x: 0.01, y: 5, z: 20}
m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 10
+ m_Father: {fileID: 1422126287}
+ m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1112612167
GameObject:
@@ -737,6 +833,136 @@ Transform:
m_CorrespondingSourceObject: {fileID: 3387187664798269638, guid: 7b7ea1674328b854b98bd5008b84bb44, type: 3}
m_PrefabInstance: {fileID: 788514830}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &1355419873
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1355419874}
+ - component: {fileID: 1355419877}
+ - component: {fileID: 1355419876}
+ - component: {fileID: 1355419875}
+ m_Layer: 0
+ m_Name: Wall (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1355419874
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1355419873}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -10, y: 0, z: 0}
+ m_LocalScale: {x: 0.01, y: 5, z: 20}
+ m_Children: []
+ m_Father: {fileID: 1422126287}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &1355419875
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1355419873}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1355419876
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1355419873}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1355419877
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1355419873}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1422126286
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1422126287}
+ m_Layer: 0
+ m_Name: Walls
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1422126287
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1422126286}
+ 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:
+ - {fileID: 812897213}
+ - {fileID: 1897070045}
+ - {fileID: 86823028}
+ - {fileID: 1355419874}
+ m_Father: {fileID: 0}
+ m_RootOrder: 10
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1426995553
GameObject:
m_ObjectHideFlags: 0
@@ -1023,6 +1249,30 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 1112612168}
m_Modifications:
+ - target: {fileID: 141188791316208376, guid: 9351c3661d105f12f9fe2819a1203053, type: 3}
+ propertyPath: outputRestriction.applyRestriction
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 141188791316208376, guid: 9351c3661d105f12f9fe2819a1203053, type: 3}
+ propertyPath: outputRestriction.rectangularRestrictionMasks.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 141188791316208376, guid: 9351c3661d105f12f9fe2819a1203053, type: 3}
+ propertyPath: outputRestriction.rectangularRestrictionMasks.Array.data[0].endingVerticalAngle
+ value: 90
+ objectReference: {fileID: 0}
+ - target: {fileID: 141188791316208376, guid: 9351c3661d105f12f9fe2819a1203053, type: 3}
+ propertyPath: outputRestriction.rectangularRestrictionMasks.Array.data[0].endingHorizontalAngle
+ value: 25
+ objectReference: {fileID: 0}
+ - target: {fileID: 141188791316208376, guid: 9351c3661d105f12f9fe2819a1203053, type: 3}
+ propertyPath: outputRestriction.rectangularRestrictionMasks.Array.data[0].startingVerticalAngle
+ value: -90
+ objectReference: {fileID: 0}
+ - target: {fileID: 141188791316208376, guid: 9351c3661d105f12f9fe2819a1203053, type: 3}
+ propertyPath: outputRestriction.rectangularRestrictionMasks.Array.data[0].startingHorizontalAngle
+ value: 5
+ objectReference: {fileID: 0}
- target: {fileID: 2440576987535774365, guid: 9351c3661d105f12f9fe2819a1203053, type: 3}
propertyPath: m_Name
value: VelodyneVLP16
@@ -1165,6 +1415,102 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1897070044
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1897070045}
+ - component: {fileID: 1897070048}
+ - component: {fileID: 1897070047}
+ - component: {fileID: 1897070046}
+ m_Layer: 0
+ m_Name: Wall (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1897070045
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1897070044}
+ m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0.15, y: 0, z: 10}
+ m_LocalScale: {x: 0.01, y: 5, z: 20}
+ m_Children: []
+ m_Father: {fileID: 1422126287}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
+--- !u!65 &1897070046
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1897070044}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1897070047
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1897070044}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1897070048
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1897070044}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &2005356744
GameObject:
m_ObjectHideFlags: 0
@@ -1189,7 +1535,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2005356744}
m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
- m_LocalPosition: {x: 30, y: 2, z: 0}
+ m_LocalPosition: {x: 5, y: 2, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 304703635}
diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/index.md b/docs/Components/Sensors/LiDARSensor/LiDARSensor/index.md
index 921111931..4b42b3769 100644
--- a/docs/Components/Sensors/LiDARSensor/LiDARSensor/index.md
+++ b/docs/Components/Sensors/LiDARSensor/LiDARSensor/index.md
@@ -94,6 +94,7 @@ The pipeline consists of:
#### Elements configurable from the editor level
- `Automatic Capture Hz` - the rate of sensor processing (default: `10Hz`)
- `Model Preset` - allows selecting one of the built-in *LiDAR* models (default: `RangeMeter`)
+- `Return Type` - allows selecting multi-return mode (note: this requires more computation). Modes other than "not divergent" require positive beam divergence.
- `Apply Distance Gaussian Noise` - enable/disable distance *Gaussian* noise (default: `true`)
- `Apply Angular Gaussian Noise` - enable/disable angular *Gaussian* noise (default: `true`)
- `Apply Velocity Distortion` - enable/disable velocity distortion (default: `false`)
@@ -103,7 +104,8 @@ The pipeline consists of:
- `Min H Angle` - minimum horizontal angle, left (default: `0`)
- `Max H Angle` - maximum horizontal angle, right (default: `0`)
- `Laser Array Cycle Time` - time between two consecutive firings of the whole laser array in milliseconds (default: `0`); used for velocity distortion feature.
- - `Beam Divergence` - represents the deviation of photons from a single beam emitted by a LiDAR sensor (in degrees); used for simulating snow only (private feature).
+ - `Horizontal Beam Divergence` - represents horizontal deviation of photons from a single beam emitted by a LiDAR sensor (in degrees);
+ - `Vertical Beam Divergence` - represents vertical deviation of photons from a single beam emitted by a LiDAR sensor (in degrees);
- *Noise Params*:
- `Angular Noise Type` - angular noise type
(default: `Ray Based`)
- `Angular Noise St Dev` - angular noise standard deviation in degree
(default: `0.05729578`)
@@ -111,6 +113,16 @@ The pipeline consists of:
- `Distance Noise St Dev Base` - distance noise standard deviation base in meters
(default: `0.02`)
- `Distance Noise Rise Per Meter` - distance noise standard deviation rise per meter
(default: `0`)
- `Distance Noise Mean` - distance noise mean in meters
(default: `0`)
+ - *Output Restriction Params*:
+ - `Apply Restriction` - enable/disable fault injection (default: `false`)
+ - `Rectangular Restriction Masks` - list of rectangular masks used for output restriction; each mask is represented via ranges of angles in horizontal and vertical dimensions
+ - `Enable Periodic Restriction` - change mode from static to periodic (default: `false`)
+ - `Restriction Period` - time of whole period in seconds
+ - `Restriction Duty Rate` - rate of time with masked output
+ - `Enable Restriction Randomizer` - enable/disable random periodic mode (default: `false`)
+ - `Min Random Period` - lower bound of time period in seconds used in random mode
+ - `Max Random Period` - upper bound of time period in seconds used in random mode
+
- *Additional options (available for some Lidar Model Preset)*
- `Min Range` - minimum range of the sensor (if not avaiable, the range is different for each laser in `Laser Array`)
- `Max Range` - maximum range of the sensor (if not avaiable, the range is different for each laser in `Laser Array`)
@@ -252,3 +264,9 @@ To enable saving dictionary mapping set output file path to the `Semantic Catego
The dictionary mapping file will be saved at the end of the simulation.
+### LiDAR output restriction
+Describes LiDAR faults modeled as a set of rectangular masks obstructing part of the rays.
+
+Example set of parameters for output restriction resulting in one rectangular mask obstructing rays:
+
+
diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/output_restriction_example.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/output_restriction_example.png
new file mode 100644
index 000000000..880fcacd2
Binary files /dev/null and b/docs/Components/Sensors/LiDARSensor/LiDARSensor/output_restriction_example.png differ
diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/script.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/script.png
index 954ccc0f1..44349bd38 100644
Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/script.png and b/docs/Components/Sensors/LiDARSensor/LiDARSensor/script.png differ
diff --git a/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/index.md b/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/index.md
index 07724cf53..78eeedbef 100644
--- a/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/index.md
+++ b/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/index.md
@@ -56,6 +56,7 @@ In subsequent frames of the simulation, `SceneManager` synchronizes the scene be
- `LaserArrayLibrary` - provides a number of pre-defined `LaserArrays`.
- `Laser` - describes offsets of a single laser within a `LaserArray`.
- `LidarNoiseParams` - describes a LiDAR noise that can be simulated
+ - `LidarOutputRestrictions` - Describes LiDAR faults modeled as a set of rectangular masks obstructing part of the rays
- A set of classes providing tools to define radar specification:
- `RadarModels` - enumeration with supported radar models.
- `RadarConfiguration` - top-level configuration class, horizontal ranges, distance range, radar parameters.
diff --git a/docs/Components/Sensors/RadarSensor/index.md b/docs/Components/Sensors/RadarSensor/index.md
index f1debae6f..0ac3534c9 100644
--- a/docs/Components/Sensors/RadarSensor/index.md
+++ b/docs/Components/Sensors/RadarSensor/index.md
@@ -93,6 +93,20 @@ Example of how to get XYZ point cloud data:
rglOutSubgraph.GetResultData(ref xyz);
```
+#### ROS 2 topic content
+
+RadarSensor uses `RglLidarPublisher` for publishing two types of ROS 2 messages:
+
+- [sensor_msgs/PointCloud2](https://docs.ros2.org/latest/api/sensor_msgs/msg/PointCloud2.html)
+- [radar_msgs/RadarScan](http://docs.ros.org/en/noetic/api/radar_msgs/html/msg/RadarScan.html)
+
+The content of these messages is presented in the table below.
+
+| Message type | Data which the message has | Comment |
+|:-------------|:--------------------------------|:--------|
+| PointCloud2 | Position
Radial speed
Power
RCS
Noise
SNR | Calculated in Radar node from RGL |
+| RadarScan | Range
Azimuth
Elevation
Radial speed
Amplitude | Calculated in Radar node from RGL |
+
## Example
On the screenshot below (scene `RadarSceneDevelopSample`) radar detections are shown as blue boxes.