add CapsuleAO
This commit is contained in:
parent
ed2954890d
commit
5c90956582
@ -376,6 +376,34 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 1895808927420028092, guid: e0307081c164aaf4a90933f08206654c, type: 3}
|
m_CorrespondingSourceObject: {fileID: 1895808927420028092, guid: e0307081c164aaf4a90933f08206654c, type: 3}
|
||||||
m_PrefabInstance: {fileID: 16137617}
|
m_PrefabInstance: {fileID: 16137617}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &16288157 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 7646894525478430618, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!136 &16288159
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 16288157}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.06
|
||||||
|
m_Height: 0.5
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: 0.2, z: 0}
|
||||||
--- !u!1001 &16809590
|
--- !u!1001 &16809590
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -2052,6 +2080,34 @@ Transform:
|
|||||||
- {fileID: 1986950423}
|
- {fileID: 1986950423}
|
||||||
m_Father: {fileID: 284166188}
|
m_Father: {fileID: 284166188}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 123.226, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 123.226, z: 0}
|
||||||
|
--- !u!1 &155078580 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 6588263712964672146, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!136 &155078582
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 155078580}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.05
|
||||||
|
m_Height: 0.4
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: 0.1, z: 0}
|
||||||
--- !u!43 &156464892
|
--- !u!43 &156464892
|
||||||
Mesh:
|
Mesh:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -3183,6 +3239,81 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 7548273142197716425, guid: 74aeec6002edd31428364ee5a1c44741, type: 3}
|
m_CorrespondingSourceObject: {fileID: 7548273142197716425, guid: 74aeec6002edd31428364ee5a1c44741, type: 3}
|
||||||
m_PrefabInstance: {fileID: 212415847}
|
m_PrefabInstance: {fileID: 212415847}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &217261638
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 217261640}
|
||||||
|
- component: {fileID: 217261639}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: GameObject
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &217261639
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 217261638}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 18dca6cc0a0961049ba14d81b04c5678, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
TestLightTrans: {fileID: 634813099}
|
||||||
|
TestCharacterTrans: {fileID: 1880735404}
|
||||||
|
TestW: 1
|
||||||
|
--- !u!4 &217261640
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 217261638}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -15.869873, y: -8.55654, z: -127.40423}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &221918180 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 726316068312649072, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!136 &221918182
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 221918180}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.06
|
||||||
|
m_Height: 0.5
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: -0.2, z: 0}
|
||||||
--- !u!1001 &224593616
|
--- !u!1001 &224593616
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -3517,6 +3648,34 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 599465214307944399, guid: 6d3e30d12bb32d545b4735d5456a5597, type: 3}
|
m_CorrespondingSourceObject: {fileID: 599465214307944399, guid: 6d3e30d12bb32d545b4735d5456a5597, type: 3}
|
||||||
m_PrefabInstance: {fileID: 244337793}
|
m_PrefabInstance: {fileID: 244337793}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &248131133 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 9132198516135759330, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!136 &248131135
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 248131133}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.15
|
||||||
|
m_Height: 0.6
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1001 &250216734
|
--- !u!1001 &250216734
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -4611,6 +4770,10 @@ PrefabInstance:
|
|||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 923183666}
|
m_TransformParent: {fileID: 923183666}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
|
- target: {fileID: 726847751471669454, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
propertyPath: m_IsActive
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 2119775930974504096, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
- target: {fileID: 2119775930974504096, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
value: -2.1526937
|
value: -2.1526937
|
||||||
@ -4719,6 +4882,36 @@ PrefabInstance:
|
|||||||
- targetCorrespondingSourceObject: {fileID: 974238578668270704, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
- targetCorrespondingSourceObject: {fileID: 974238578668270704, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
insertIndex: 5
|
insertIndex: 5
|
||||||
addedObject: {fileID: 1880735403}
|
addedObject: {fileID: 1880735403}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 7646894525478430618, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 16288159}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 6914555784360000931, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 392442271}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 726316068312649072, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 221918182}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 5659908917665969580, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 1627800589}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 9132198516135759330, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 248131135}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 124843582331875961, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 760015824}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 6588263712964672146, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 155078582}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 2568582057033876513, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 687245747}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 4222942335510494491, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 907298662}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 6266682369814660209, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 858172680}
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
--- !u!1001 &314797079
|
--- !u!1001 &314797079
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
@ -6327,6 +6520,34 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 7107073529148260412, guid: bc81300db299d274dac8ed5b40994572, type: 3}
|
m_CorrespondingSourceObject: {fileID: 7107073529148260412, guid: bc81300db299d274dac8ed5b40994572, type: 3}
|
||||||
m_PrefabInstance: {fileID: 390621313}
|
m_PrefabInstance: {fileID: 390621313}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &392442269 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 6914555784360000931, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!136 &392442271
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 392442269}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.06
|
||||||
|
m_Height: 0.5
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: 0.2, z: 0}
|
||||||
--- !u!1001 &393591539
|
--- !u!1001 &393591539
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -10691,6 +10912,34 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 7548273142197716425, guid: 0789421bfb938644babec4c8798c163c, type: 3}
|
m_CorrespondingSourceObject: {fileID: 7548273142197716425, guid: 0789421bfb938644babec4c8798c163c, type: 3}
|
||||||
m_PrefabInstance: {fileID: 683165268}
|
m_PrefabInstance: {fileID: 683165268}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &687245745 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 2568582057033876513, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!136 &687245747
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 687245745}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.08
|
||||||
|
m_Height: 0.2
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1001 &687906363
|
--- !u!1001 &687906363
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -11456,6 +11705,34 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 5060791035251562319, guid: d0951faa8cb830b4780fb7bb92974214, type: 3}
|
m_CorrespondingSourceObject: {fileID: 5060791035251562319, guid: d0951faa8cb830b4780fb7bb92974214, type: 3}
|
||||||
m_PrefabInstance: {fileID: 740467519}
|
m_PrefabInstance: {fileID: 740467519}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &760015822 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 124843582331875961, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!136 &760015824
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 760015822}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.05
|
||||||
|
m_Height: 0.4
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: 0.1, z: 0}
|
||||||
--- !u!1001 &766643854
|
--- !u!1001 &766643854
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -12699,6 +12976,34 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 1895808927420028092, guid: 7cb78e83e6bfa414f972dedaff480361, type: 3}
|
m_CorrespondingSourceObject: {fileID: 1895808927420028092, guid: 7cb78e83e6bfa414f972dedaff480361, type: 3}
|
||||||
m_PrefabInstance: {fileID: 857137368}
|
m_PrefabInstance: {fileID: 857137368}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &858172678 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 6266682369814660209, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!136 &858172680
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 858172678}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.05
|
||||||
|
m_Height: 0.4
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: -0.1, z: 0}
|
||||||
--- !u!1001 &858961373
|
--- !u!1001 &858961373
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -13250,6 +13555,34 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 599465214307944399, guid: 95cf80858ee0c4940b72f62b17aefd41, type: 3}
|
m_CorrespondingSourceObject: {fileID: 599465214307944399, guid: 95cf80858ee0c4940b72f62b17aefd41, type: 3}
|
||||||
m_PrefabInstance: {fileID: 896709644}
|
m_PrefabInstance: {fileID: 896709644}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &907298660 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 4222942335510494491, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!136 &907298662
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 907298660}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.05
|
||||||
|
m_Height: 0.4
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: -0.1, z: 0}
|
||||||
--- !u!1001 &911513622
|
--- !u!1001 &911513622
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -14779,9 +15112,9 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
targetCamera: {fileID: 2077227757}
|
targetCamera: {fileID: 2077227757}
|
||||||
showCullingSpheres: 1
|
showCullingSpheres: 0
|
||||||
showCameraFrustums: 0
|
showCameraFrustums: 0
|
||||||
showCascadeFrustums: 1
|
showCascadeFrustums: 0
|
||||||
showMaxCascade: 4
|
showMaxCascade: 4
|
||||||
cascadeColors:
|
cascadeColors:
|
||||||
- {r: 1, g: 0, b: 0, a: 0.5}
|
- {r: 1, g: 0, b: 0, a: 0.5}
|
||||||
@ -24426,6 +24759,34 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 599465214307944399, guid: 6d3e30d12bb32d545b4735d5456a5597, type: 3}
|
m_CorrespondingSourceObject: {fileID: 599465214307944399, guid: 6d3e30d12bb32d545b4735d5456a5597, type: 3}
|
||||||
m_PrefabInstance: {fileID: 1619228713}
|
m_PrefabInstance: {fileID: 1619228713}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &1627800587 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 5659908917665969580, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!136 &1627800589
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1627800587}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.06
|
||||||
|
m_Height: 0.5
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: -0.2, z: 0}
|
||||||
--- !u!1001 &1630315300
|
--- !u!1001 &1630315300
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -28703,6 +29064,11 @@ MonoBehaviour:
|
|||||||
analogMovement: 0
|
analogMovement: 0
|
||||||
cursorLocked: 1
|
cursorLocked: 1
|
||||||
cursorInputForLook: 1
|
cursorInputForLook: 1
|
||||||
|
--- !u!4 &1880735404 stripped
|
||||||
|
Transform:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 490576248761790154, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 304572533}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!1001 &1886587897
|
--- !u!1001 &1886587897
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -34325,3 +34691,4 @@ SceneRoots:
|
|||||||
- {fileID: 915045435}
|
- {fileID: 915045435}
|
||||||
- {fileID: 1641590535}
|
- {fileID: 1641590535}
|
||||||
- {fileID: 1415788265}
|
- {fileID: 1415788265}
|
||||||
|
- {fileID: 217261640}
|
||||||
|
|||||||
@ -120,13 +120,32 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: d34dacd53c1ace84a8c6ac5ff4afb555, type: 3}
|
m_Script: {fileID: 11500000, guid: d34dacd53c1ace84a8c6ac5ff4afb555, type: 3}
|
||||||
m_Name: AutoExposure
|
m_Name: AutoExposure
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Active: 1
|
m_Active: 0
|
||||||
settings:
|
settings:
|
||||||
HistogramRenderPassEvent: 300
|
HistogramRenderPassEvent: 300
|
||||||
AutoExposureRenderPassEvent: 550
|
AutoExposureRenderPassEvent: 550
|
||||||
BlitMat: {fileID: 2100000, guid: b04591ed716b35e41857f554d491ef4b, type: 2}
|
BlitMat: {fileID: 2100000, guid: b04591ed716b35e41857f554d491ef4b, type: 2}
|
||||||
ComputeHistogramComputeShader: {fileID: 7200000, guid: b140e27dc74a1fb4d9ae30f8566b8919, type: 3}
|
ComputeHistogramComputeShader: {fileID: 7200000, guid: b140e27dc74a1fb4d9ae30f8566b8919, type: 3}
|
||||||
AutoExposureComputeShader: {fileID: 7200000, guid: 6febb5a945f3510429c58ed4a45c1846, type: 3}
|
AutoExposureComputeShader: {fileID: 7200000, guid: 6febb5a945f3510429c58ed4a45c1846, type: 3}
|
||||||
|
--- !u!114 &-5770411415856688072
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1eadf15e5222b6546b5c84a97197f414, type: 3}
|
||||||
|
m_Name: CapsuleAO
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Active: 1
|
||||||
|
settings:
|
||||||
|
RenderPassEvent: 450
|
||||||
|
AmbientIntensity: 0.32
|
||||||
|
ShadowIntensity: 0.28
|
||||||
|
ShadowSharpness: 0.27
|
||||||
|
CapsuleAOMat: {fileID: 2100000, guid: c90d40f0d9828744b916dbed0eed9db6, type: 2}
|
||||||
--- !u!114 &-5418649131825517062
|
--- !u!114 &-5418649131825517062
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -357,7 +376,8 @@ MonoBehaviour:
|
|||||||
- {fileID: 5808157236138506604}
|
- {fileID: 5808157236138506604}
|
||||||
- {fileID: -5418649131825517062}
|
- {fileID: -5418649131825517062}
|
||||||
- {fileID: -7143664486661302651}
|
- {fileID: -7143664486661302651}
|
||||||
m_RendererFeatureMap: bc3f630842f2e70dd6a559c442a94bfd4529d15534f2d3de228858dca8d12222716523fbf3439fdb7a327b7bff4bdd446ac59dfa966ffa88ca6373cd5da9013d6cff55ca297e5e908a7b3653203b82383b2141bb05fbe69aec5704e48e2763e90bc6ff9f19caa7686c79a6bb3bb89a50faad0fe75217cdb485d6fa85ff9adc9c
|
- {fileID: -5770411415856688072}
|
||||||
|
m_RendererFeatureMap: bc3f630842f2e70dd6a559c442a94bfd4529d15534f2d3de228858dca8d12222716523fbf3439fdb7a327b7bff4bdd446ac59dfa966ffa88ca6373cd5da9013d6cff55ca297e5e908a7b3653203b82383b2141bb05fbe69aec5704e48e2763e90bc6ff9f19caa7686c79a6bb3bb89a50faad0fe75217cdb485d6fa85ff9adc9c38d400e66361ebaf
|
||||||
m_UseNativeRenderPass: 0
|
m_UseNativeRenderPass: 0
|
||||||
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||||
shaders:
|
shaders:
|
||||||
|
|||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9903d27781b459a4084b253699fff228
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,129 @@
|
|||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using Unity.Collections.LowLevel.Unsafe;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Rendering;
|
||||||
|
using UnityEngine.Rendering.Universal;
|
||||||
|
|
||||||
|
namespace X.Rendering.Feature
|
||||||
|
{
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct Capsule
|
||||||
|
{
|
||||||
|
public Vector3 a, b;
|
||||||
|
public float radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct Character
|
||||||
|
{
|
||||||
|
public Vector3 position;
|
||||||
|
public float radius;
|
||||||
|
public Vector4 lightDir; //xyz:lightDir, w:根据lightColor 算个系数
|
||||||
|
public int startID, endID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CapsuleAO : ScriptableRendererFeature
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class Settings
|
||||||
|
{
|
||||||
|
public RenderPassEvent RenderPassEvent = RenderPassEvent.BeforeRenderingTransparents;
|
||||||
|
public float AmbientIntensity = 0.2f;
|
||||||
|
public float ShadowIntensity = 0.4f;
|
||||||
|
public float ShadowSharpness = 20;
|
||||||
|
public Material CapsuleAOMat;
|
||||||
|
}
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
Settings settings;
|
||||||
|
CapsuleAOPass capsuleAOPass;
|
||||||
|
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
|
||||||
|
{
|
||||||
|
if (renderingData.cameraData.cameraType == CameraType.Game)
|
||||||
|
{
|
||||||
|
renderer.EnqueuePass(capsuleAOPass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Create()
|
||||||
|
{
|
||||||
|
capsuleAOPass = new(settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
class CapsuleAOPass : ScriptableRenderPass, IDisposable
|
||||||
|
{
|
||||||
|
private Settings settings;
|
||||||
|
private GraphicsBuffer capsuleDataBuffer;
|
||||||
|
private GraphicsBuffer characterDataBuffer;
|
||||||
|
private ProfilingSampler profiler;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public CapsuleAOPass(Settings settings)
|
||||||
|
{
|
||||||
|
this.settings = settings;
|
||||||
|
profiler = new (nameof(CapsuleAOPass));
|
||||||
|
renderPassEvent = settings.RenderPassEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor)
|
||||||
|
{
|
||||||
|
base.Configure(cmd, cameraTextureDescriptor);
|
||||||
|
ConfigureInput(ScriptableRenderPassInput.Depth | ScriptableRenderPassInput.Normal);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
capsuleDataBuffer?.Dispose();
|
||||||
|
capsuleDataBuffer = null;
|
||||||
|
characterDataBuffer?.Dispose();
|
||||||
|
characterDataBuffer = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
|
||||||
|
{
|
||||||
|
if (!XRenderFeatureManager.Instance)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ref var characterArray = ref XRenderFeatureManager.Instance.CharacterArray;
|
||||||
|
ref var capsuleArray = ref XRenderFeatureManager.Instance.CapsuleArray;
|
||||||
|
if (!capsuleArray.IsCreated)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(capsuleDataBuffer == null || capsuleDataBuffer.count != capsuleArray.Length)
|
||||||
|
{
|
||||||
|
capsuleDataBuffer?.Release();
|
||||||
|
capsuleDataBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, capsuleArray.Length, UnsafeUtility.SizeOf<Capsule>());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (characterDataBuffer == null || characterDataBuffer.count != characterArray.Length)
|
||||||
|
{
|
||||||
|
characterDataBuffer?.Release();
|
||||||
|
characterDataBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, characterArray.Length, UnsafeUtility.SizeOf<Character>());
|
||||||
|
}
|
||||||
|
|
||||||
|
capsuleDataBuffer.SetData(capsuleArray);
|
||||||
|
characterDataBuffer.SetData(characterArray);
|
||||||
|
|
||||||
|
var cmd = renderingData.commandBuffer;
|
||||||
|
using var scp = new ProfilingScope(cmd, profiler);
|
||||||
|
cmd.SetGlobalBuffer("_CapsuleData", capsuleDataBuffer);
|
||||||
|
cmd.SetGlobalBuffer("_CharacterData", characterDataBuffer);
|
||||||
|
cmd.SetGlobalInt("_CapsulesCount", capsuleArray.Length);
|
||||||
|
cmd.SetGlobalInt("_CharactersCount", characterArray.Length);
|
||||||
|
cmd.SetGlobalFloat("_AmbientIntensity", settings.AmbientIntensity);
|
||||||
|
cmd.SetGlobalFloat("_ShadowIntensity", settings.ShadowIntensity);
|
||||||
|
cmd.SetGlobalFloat("_ShadowSharpness", settings.ShadowSharpness);
|
||||||
|
var renderer = renderingData.cameraData.renderer;
|
||||||
|
|
||||||
|
cmd.SetRenderTarget(renderer.cameraColorTargetHandle, loadAction: RenderBufferLoadAction.Load, storeAction: RenderBufferStoreAction.Store);
|
||||||
|
cmd.DrawProcedural(Matrix4x4.identity, settings.CapsuleAOMat, 0, MeshTopology.Triangles, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1eadf15e5222b6546b5c84a97197f414
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 77bc625bade3844478f784ee7024ab69
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,176 @@
|
|||||||
|
Shader "XRP/CapsuleAO"
|
||||||
|
{
|
||||||
|
SubShader
|
||||||
|
{
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
Cull Off
|
||||||
|
ZWrite Off
|
||||||
|
ZTest Always
|
||||||
|
Blend Zero SrcAlpha
|
||||||
|
|
||||||
|
HLSLPROGRAM
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
|
||||||
|
#pragma enable_d3d11_debug_symbols
|
||||||
|
|
||||||
|
#pragma multi_compile _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE
|
||||||
|
|
||||||
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||||
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
|
||||||
|
#include "Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blit.hlsl"
|
||||||
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"
|
||||||
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareNormalsTexture.hlsl"
|
||||||
|
|
||||||
|
struct Capsule
|
||||||
|
{
|
||||||
|
float3 a;
|
||||||
|
float3 b;
|
||||||
|
float radius;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Character
|
||||||
|
{
|
||||||
|
float3 position;
|
||||||
|
float radius;
|
||||||
|
float4 lightDir;
|
||||||
|
int startID;
|
||||||
|
int endID;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
StructuredBuffer<Capsule> _CapsuleData;
|
||||||
|
uint _CapsulesCount;
|
||||||
|
StructuredBuffer<Character> _CharacterData;
|
||||||
|
uint _CharactersCount;
|
||||||
|
float _AmbientIntensity;
|
||||||
|
float _ShadowIntensity;
|
||||||
|
float _ShadowSharpness;
|
||||||
|
|
||||||
|
|
||||||
|
Varyings vert(uint vertexID: SV_VertexID)
|
||||||
|
{
|
||||||
|
Varyings o;
|
||||||
|
o.positionCS = GetFullScreenTriangleVertexPosition(vertexID);
|
||||||
|
o.texcoord = GetFullScreenTriangleTexCoord(vertexID);
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
float CalcCapsuleShadowByIndex(float3 ro, float3 rd, uint s, uint e, in float k, float intensity)
|
||||||
|
{
|
||||||
|
float shadow = 1.0;
|
||||||
|
for (uint i = s; i < e; ++i)
|
||||||
|
{
|
||||||
|
Capsule c = _CapsuleData[i];
|
||||||
|
float3 a = c.a;
|
||||||
|
float3 b = c.b;
|
||||||
|
float r = c.radius;
|
||||||
|
float3 ba = b - a;
|
||||||
|
float3 oa = ro - a;
|
||||||
|
|
||||||
|
float oad = dot(oa, rd);
|
||||||
|
float dba = dot(rd, ba);
|
||||||
|
float baba = dot(ba, ba);
|
||||||
|
float oaba = dot(oa, ba);
|
||||||
|
float2 th = float2(-oad * baba + dba * oaba, oaba - oad * dba) / (baba - dba * dba);
|
||||||
|
|
||||||
|
th.x = max(th.x, 0.0001);
|
||||||
|
th.y = saturate(th.y);
|
||||||
|
|
||||||
|
float3 p = a + ba * th.y;
|
||||||
|
float3 q = ro + rd * th.x;
|
||||||
|
float d = length(p - q) - r;
|
||||||
|
|
||||||
|
float s = saturate(k * d / th.x + 0.3);
|
||||||
|
s = s * s * (3.0 - 2.0 * s);
|
||||||
|
shadow *= s;
|
||||||
|
}
|
||||||
|
|
||||||
|
shadow = saturate(lerp(shadow, 1, intensity));
|
||||||
|
return saturate(lerp(shadow, 1, _ShadowIntensity));
|
||||||
|
}
|
||||||
|
|
||||||
|
float CalcCapsuleOcclusionByIndex(float3 p, float3 n, uint s, uint e, float intensity)
|
||||||
|
{
|
||||||
|
float ao = 1.0;
|
||||||
|
for (uint i = s; i < e; ++i)
|
||||||
|
{
|
||||||
|
Capsule capsule = _CapsuleData[i];
|
||||||
|
float3 a = capsule.a;
|
||||||
|
float3 b = capsule.b;
|
||||||
|
float r = capsule.radius;
|
||||||
|
float3 ba = b - a;
|
||||||
|
float3 pa = p - a;
|
||||||
|
float h = saturate(dot(pa, ba) / dot(ba, ba));
|
||||||
|
float3 d = pa - h * ba;
|
||||||
|
float l = length(d);
|
||||||
|
float o = 1.0 - max(0.0, dot(-d, n)) * r * r / (l * l * l);
|
||||||
|
o = sqrt(o * o * o);
|
||||||
|
ao *= o;
|
||||||
|
}
|
||||||
|
|
||||||
|
ao = saturate(lerp(ao, 1, intensity));
|
||||||
|
return saturate(lerp(ao, 1, _AmbientIntensity));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IsInBounds(float3 p, float3 c, float b, out float intensity)
|
||||||
|
{
|
||||||
|
float3 diff = abs(p - c);
|
||||||
|
if (diff.x < b && diff.y < b && diff.z < b)
|
||||||
|
{
|
||||||
|
intensity = saturate(dot(diff, diff) / dot(b, b));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
intensity = 0;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
float CalcAmbientOcclusion(float3 worldPos, float3 worldNormal)
|
||||||
|
{
|
||||||
|
float shadow = 1.0;
|
||||||
|
float occlusion = 1.0;
|
||||||
|
for (uint i = 0; i < _CharactersCount; ++i)
|
||||||
|
{
|
||||||
|
float intensity;
|
||||||
|
Character c = _CharacterData[i];
|
||||||
|
if (IsInBounds(worldPos, c.position, c.radius, intensity))
|
||||||
|
{
|
||||||
|
float tempIntensity = intensity / saturate(1 * smoothstep(0.001, 1, c.lightDir.w));
|
||||||
|
float tempShadow = CalcCapsuleShadowByIndex(worldPos, _MainLightPosition.xyz, c.startID, c.endID, _ShadowSharpness, tempIntensity);
|
||||||
|
shadow = min(shadow, tempShadow);
|
||||||
|
occlusion *= CalcCapsuleOcclusionByIndex(worldPos, worldNormal, c.startID, c.endID, intensity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return shadow * occlusion;
|
||||||
|
}
|
||||||
|
|
||||||
|
float4 frag(Varyings input) : SV_Target
|
||||||
|
{
|
||||||
|
const float2 uv = input.texcoord;
|
||||||
|
float depth = SampleSceneDepth(uv);
|
||||||
|
#if !UNITY_REVERSED_Z
|
||||||
|
depth = depth * 2.0 - 1.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float2 sceneUV = uv;
|
||||||
|
sceneUV.y = 1 - sceneUV.y;
|
||||||
|
sceneUV = sceneUV * 2 - 1;
|
||||||
|
|
||||||
|
float4 worldPos = mul(UNITY_MATRIX_I_VP, float4(sceneUV, depth, 1));
|
||||||
|
worldPos /= worldPos.w;
|
||||||
|
float3 worldNormal = SampleSceneNormals(uv);
|
||||||
|
float ao = CalcAmbientOcclusion(worldPos.xyz, worldNormal);
|
||||||
|
|
||||||
|
// float4 shadowCoord = TransformWorldToShadowCoord(worldPos.xyz);
|
||||||
|
// Light mainLight = GetMainLight(shadowCoord, worldPos.xyz, half4(1, 1, 1, 1));
|
||||||
|
// //只在阴影处产生AO
|
||||||
|
// ao = lerp(ao, 1, step(0.5, mainLight.shadowAttenuation));
|
||||||
|
|
||||||
|
return half4(1, 0, 0, ao);
|
||||||
|
}
|
||||||
|
|
||||||
|
ENDHLSL
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1a25077d410e0844dbf6a3067a4967aa
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: XRP_CapsuleAO
|
||||||
|
m_Shader: {fileID: 4800000, guid: 1a25077d410e0844dbf6a3067a4967aa, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs: []
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats: []
|
||||||
|
m_Colors: []
|
||||||
|
m_BuildTextureStacks: []
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c90d40f0d9828744b916dbed0eed9db6
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -12,7 +12,7 @@ Shader "XRP/SoftShadowMask"
|
|||||||
#pragma vertex vert
|
#pragma vertex vert
|
||||||
#pragma fragment frag
|
#pragma fragment frag
|
||||||
|
|
||||||
#pragma enable_d3d11_debug_symbols
|
// #pragma enable_d3d11_debug_symbols
|
||||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
|
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
|
||||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl"
|
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl"
|
||||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl"
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl"
|
||||||
|
|||||||
@ -0,0 +1,116 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using Unity.Collections;
|
||||||
|
using UnityEngine;
|
||||||
|
namespace X.Rendering.Feature
|
||||||
|
{
|
||||||
|
public class XRenderFeatureManager : MonoBehaviour
|
||||||
|
{
|
||||||
|
public static XRenderFeatureManager Instance
|
||||||
|
{
|
||||||
|
get; private set;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region CapsuleAO
|
||||||
|
public NativeArray<Character> CharacterArray;
|
||||||
|
public NativeArray<Capsule> CapsuleArray;
|
||||||
|
|
||||||
|
public Transform TestLightTrans;
|
||||||
|
public Transform TestCharacterTrans;
|
||||||
|
public float TestW;
|
||||||
|
|
||||||
|
private Dictionary<Transform, CapsuleCollider[]> characterTransform2CapsuleCollider = new();
|
||||||
|
private int capsuleColliderCount = 0;
|
||||||
|
|
||||||
|
public void AddCapsuleAOCharacter(Transform transform)
|
||||||
|
{
|
||||||
|
var oldCapsuleArray = CapsuleArray;
|
||||||
|
var oldCharacterArray = CharacterArray;
|
||||||
|
|
||||||
|
var capsules = transform.GetComponentsInChildren<CapsuleCollider>(true);
|
||||||
|
characterTransform2CapsuleCollider.Add(transform, capsules);
|
||||||
|
capsuleColliderCount += capsules.Length;
|
||||||
|
CapsuleArray = new (capsuleColliderCount, Allocator.Persistent);
|
||||||
|
CharacterArray = new (characterTransform2CapsuleCollider.Count, Allocator.Persistent);
|
||||||
|
|
||||||
|
if (oldCharacterArray.IsCreated)
|
||||||
|
{
|
||||||
|
oldCharacterArray.Dispose();
|
||||||
|
oldCapsuleArray.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RemoveCapsuleAOCharacter(Transform transform)
|
||||||
|
{
|
||||||
|
capsuleColliderCount -= characterTransform2CapsuleCollider[transform].Length;
|
||||||
|
characterTransform2CapsuleCollider.Remove(transform);
|
||||||
|
var oldCapsuleArray = CapsuleArray;
|
||||||
|
var oldCharacterArray = CharacterArray;
|
||||||
|
|
||||||
|
CapsuleArray = new(capsuleColliderCount, Allocator.Persistent);
|
||||||
|
CharacterArray = new(characterTransform2CapsuleCollider.Count, Allocator.Persistent);
|
||||||
|
|
||||||
|
if (oldCharacterArray.IsCreated)
|
||||||
|
{
|
||||||
|
oldCharacterArray.Dispose();
|
||||||
|
oldCapsuleArray.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
Instance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
AddCapsuleAOCharacter(TestCharacterTrans);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
Transform transform = null;
|
||||||
|
int capsuleArrayIndex = 0;
|
||||||
|
int characterArrayIndex = 0;
|
||||||
|
int startID = 0;
|
||||||
|
Instance = this;
|
||||||
|
|
||||||
|
foreach (var item in characterTransform2CapsuleCollider)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < item.Value.Length; i++)
|
||||||
|
{
|
||||||
|
var capsule = item.Value[i];
|
||||||
|
//capsule.direction
|
||||||
|
var a = capsule.center - new Vector3(0, capsule.height / 2, 0);
|
||||||
|
var b = capsule.center + new Vector3(0, capsule.height / 2, 0);
|
||||||
|
a = capsule.transform.TransformPoint(a);
|
||||||
|
b = capsule.transform.TransformPoint(b);
|
||||||
|
CapsuleArray[capsuleArrayIndex++] = new()
|
||||||
|
{
|
||||||
|
a = a,
|
||||||
|
b = b,
|
||||||
|
radius = capsule.radius,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transform != item.Key)
|
||||||
|
{
|
||||||
|
transform = item.Key;
|
||||||
|
CharacterArray[characterArrayIndex++] = new()
|
||||||
|
{
|
||||||
|
position = transform.position,
|
||||||
|
radius = 5,
|
||||||
|
lightDir = -new Vector4(TestLightTrans.position.x, TestLightTrans.position.y, TestLightTrans.position.z, -TestW),
|
||||||
|
startID = startID,
|
||||||
|
endID = capsuleArrayIndex,
|
||||||
|
};
|
||||||
|
startID = capsuleArrayIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 18dca6cc0a0961049ba14d81b04c5678
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Loading…
x
Reference in New Issue
Block a user