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.