add CapsuleAO

This commit is contained in:
StarBeats 2025-07-22 20:36:15 +08:00
parent ed2954890d
commit 5c90956582
13 changed files with 897 additions and 5 deletions

View File

@ -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}

View File

@ -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:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9903d27781b459a4084b253699fff228
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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);
}
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1eadf15e5222b6546b5c84a97197f414
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 77bc625bade3844478f784ee7024ab69
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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
}
}
}

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 1a25077d410e0844dbf6a3067a4967aa
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c90d40f0d9828744b916dbed0eed9db6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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"

View File

@ -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;
}
}
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 18dca6cc0a0961049ba14d81b04c5678
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: