Implement spherical harmonics

This commit is contained in:
2026-03-18 22:33:10 +08:00
parent 819d0b813d
commit 2c6a696f0a
6 changed files with 229 additions and 197 deletions
+1 -1
View File
@@ -169,7 +169,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: -973084862543737302, guid: 25c54d8c074f08447ab1c822a6a052fa, type: 3}
propertyPath: m_PropertySheet.m_Float.m_Array.Array.data[1].m_Value
value: 1.5
value: 1
objectReference: {fileID: 0}
- target: {fileID: -973084862543737302, guid: 25c54d8c074f08447ab1c822a6a052fa, type: 3}
propertyPath: m_PropertySheet.m_Gradient.m_Array.Array.data[0].m_Name
+200 -182
View File
@@ -53,7 +53,7 @@ MonoBehaviour:
x: -716
y: -492
width: 1870
height: 2171
height: 2247
contents:
- model: {fileID: 114023846229194376}
id: 0
@@ -211,14 +211,28 @@ MonoBehaviour:
- model: {fileID: 8926484042661619513}
id: 0
isStickyNote: 0
stickyNoteInfos: []
- model: {fileID: 0}
id: 0
isStickyNote: 1
stickyNoteInfos:
- title:
position:
serializedVersion: 2
x: 559
y: 1630
width: 115
height: 100
contents: Turn on when using Linear colorspace
theme: Classic
textSize: Small
colorTheme: 1
categories: []
uiBounds:
serializedVersion: 2
x: -716
y: -492
width: 1870
height: 2171
height: 2247
--- !u!114 &114350483966674976
MonoBehaviour:
m_ObjectHideFlags: 1
@@ -13098,7 +13112,7 @@ MonoBehaviour:
m_Type:
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_SerializableObject: True
m_SerializableObject: False
m_Space: -1
m_Property:
name: _vfx_enabled
@@ -13659,8 +13673,7 @@ MonoBehaviour:
m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_Direction: 0
m_LinkedSlots:
- {fileID: 8926484042661619380}
m_LinkedSlots: []
--- !u!114 &8926484042661619350
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -13693,7 +13706,8 @@ MonoBehaviour:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 0
m_LinkedSlots: []
m_LinkedSlots:
- {fileID: 8926484042661619548}
--- !u!114 &8926484042661619351
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -13726,7 +13740,8 @@ MonoBehaviour:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 0
m_LinkedSlots: []
m_LinkedSlots:
- {fileID: 8926484042661619549}
--- !u!114 &8926484042661619352
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -13759,7 +13774,8 @@ MonoBehaviour:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 0
m_LinkedSlots: []
m_LinkedSlots:
- {fileID: 8926484042661619550}
--- !u!114 &8926484042661619353
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -14302,7 +14318,7 @@ MonoBehaviour:
- {fileID: 8926484042661619377}
- {fileID: 8926484042661619378}
m_OutputSlots:
- {fileID: 8926484042661619380}
- {fileID: 8926484042661619547}
m_Type:
m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
@@ -14377,177 +14393,6 @@ MonoBehaviour:
m_Direction: 0
m_LinkedSlots:
- {fileID: 8926484042661619531}
--- !u!114 &8926484042661619380
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: c82227d5759e296488798b1554a72a15, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotColor
m_UIIgnoredErrors: []
m_Parent: {fileID: 0}
m_Children:
- {fileID: 8926484042661619381}
- {fileID: 8926484042661619382}
- {fileID: 8926484042661619383}
- {fileID: 8926484042661619384}
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661619380}
m_MasterData:
m_Owner: {fileID: 8926484042661619376}
m_Value:
m_Type:
m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_SerializableObject:
m_Space: -1
m_Property:
name: s
m_serializedType:
m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_Direction: 1
m_LinkedSlots:
- {fileID: 8926484042661619349}
--- !u!114 &8926484042661619381
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: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat
m_UIIgnoredErrors: []
m_Parent: {fileID: 8926484042661619380}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661619380}
m_MasterData:
m_Owner: {fileID: 0}
m_Value:
m_Type:
m_SerializableType:
m_SerializableObject:
m_Space: -1
m_Property:
name: r
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 1
m_LinkedSlots: []
--- !u!114 &8926484042661619382
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: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat
m_UIIgnoredErrors: []
m_Parent: {fileID: 8926484042661619380}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661619380}
m_MasterData:
m_Owner: {fileID: 0}
m_Value:
m_Type:
m_SerializableType:
m_SerializableObject:
m_Space: -1
m_Property:
name: g
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 1
m_LinkedSlots: []
--- !u!114 &8926484042661619383
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: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat
m_UIIgnoredErrors: []
m_Parent: {fileID: 8926484042661619380}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661619380}
m_MasterData:
m_Owner: {fileID: 0}
m_Value:
m_Type:
m_SerializableType:
m_SerializableObject:
m_Space: -1
m_Property:
name: b
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 1
m_LinkedSlots: []
--- !u!114 &8926484042661619384
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: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat
m_UIIgnoredErrors: []
m_Parent: {fileID: 8926484042661619380}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661619380}
m_MasterData:
m_Owner: {fileID: 0}
m_Value:
m_Type:
m_SerializableType:
m_SerializableObject:
m_Space: -1
m_Property:
name: a
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 1
m_LinkedSlots: []
--- !u!114 &8926484042661619385
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -17128,7 +16973,7 @@ MonoBehaviour:
m_UIIgnoredErrors: []
m_Parent: {fileID: 114350483966674976}
m_Children: []
m_UIPosition: {x: 705, y: 710}
m_UIPosition: {x: 705, y: 636}
m_UICollapsed: 0
m_UISuperCollapsed: 0
m_InputSlots: []
@@ -17497,3 +17342,176 @@ MonoBehaviour:
m_Direction: 1
m_LinkedSlots:
- {fileID: 8926484042661619325}
--- !u!114 &8926484042661619547
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: c82227d5759e296488798b1554a72a15, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotColor
m_UIIgnoredErrors: []
m_Parent: {fileID: 0}
m_Children:
- {fileID: 8926484042661619548}
- {fileID: 8926484042661619549}
- {fileID: 8926484042661619550}
- {fileID: 8926484042661619551}
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 0
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661619547}
m_MasterData:
m_Owner: {fileID: 8926484042661619376}
m_Value:
m_Type:
m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_SerializableObject: '{"r":0.0,"g":0.0,"b":0.0,"a":1.0}'
m_Space: -1
m_Property:
name: s
m_serializedType:
m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_Direction: 1
m_LinkedSlots: []
--- !u!114 &8926484042661619548
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: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat
m_UIIgnoredErrors: []
m_Parent: {fileID: 8926484042661619547}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661619547}
m_MasterData:
m_Owner: {fileID: 0}
m_Value:
m_Type:
m_SerializableType:
m_SerializableObject:
m_Space: -1
m_Property:
name: r
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 1
m_LinkedSlots:
- {fileID: 8926484042661619350}
--- !u!114 &8926484042661619549
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: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat
m_UIIgnoredErrors: []
m_Parent: {fileID: 8926484042661619547}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661619547}
m_MasterData:
m_Owner: {fileID: 0}
m_Value:
m_Type:
m_SerializableType:
m_SerializableObject:
m_Space: -1
m_Property:
name: g
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 1
m_LinkedSlots:
- {fileID: 8926484042661619351}
--- !u!114 &8926484042661619550
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: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat
m_UIIgnoredErrors: []
m_Parent: {fileID: 8926484042661619547}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661619547}
m_MasterData:
m_Owner: {fileID: 0}
m_Value:
m_Type:
m_SerializableType:
m_SerializableObject:
m_Space: -1
m_Property:
name: b
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 1
m_LinkedSlots:
- {fileID: 8926484042661619352}
--- !u!114 &8926484042661619551
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: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat
m_UIIgnoredErrors: []
m_Parent: {fileID: 8926484042661619547}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661619547}
m_MasterData:
m_Owner: {fileID: 0}
m_Value:
m_Type:
m_SerializableType:
m_SerializableObject:
m_Space: -1
m_Property:
name: a
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_Direction: 1
m_LinkedSlots: []
@@ -23,11 +23,18 @@ float3 CalculateSHColor(uint Index, uint Degrees, float4x4 DirClr, StructuredBuf
float3 sh[16];
// for (int i = 1; i < 16; i++)
// {
// sh[i].x = SHBuffer[Index * 45 + (i - 1) * 3];
// sh[i].y = SHBuffer[Index * 45 + (i - 1) * 3 + 1];
// sh[i].z = SHBuffer[Index * 45 + (i - 1) * 3 + 2];
// }
for (int i = 1; i < 16; i++)
{
sh[i].x = SHBuffer[(Index * 45 + (i - 1) * 3) * 4];
sh[i].y = SHBuffer[(Index * 45 + (i - 1) * 3) * 4 + 1];
sh[i].z = SHBuffer[(Index * 45 + (i - 1) * 3) * 4 + 2];
// Access R, G, B values from their separate blocks
sh[i].x = SHBuffer[Index * 45 + (i - 1)]; // R values (indices 0-44)
sh[i].y = SHBuffer[Index * 45 + 15 + (i - 1)]; // G values (indices 45-89)
sh[i].z = SHBuffer[Index * 45 + 30 + (i - 1)]; // B values (indices 90-134)
}
if (Degrees > 0)
+1 -1
View File
@@ -61,7 +61,7 @@ GraphicsSettings:
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa, type: 2}
m_ShaderBuildSettings:
keywordDeclarationOverrides: []
m_LightsUseLinearIntensity: 1
m_LightsUseLinearIntensity: 0
m_LightsUseColorTemperature: 1
m_LogWhenShaderIsCompiled: 0
m_LightProbeOutsideHullStrategy: 0
+9 -3
View File
@@ -47,7 +47,7 @@ PlayerSettings:
defaultScreenWidthWeb: 960
defaultScreenHeightWeb: 600
m_StereoRenderingPath: 0
m_ActiveColorSpace: 1
m_ActiveColorSpace: 0
unsupportedMSAAFallback: 0
m_SpriteBatchMaxVertexCount: 65535
m_SpriteBatchVertexThreshold: 300
@@ -535,6 +535,9 @@ PlayerSettings:
- m_BuildTarget: AndroidPlayer
m_APIs: 150000000b000000
m_Automatic: 0
- m_BuildTarget: WebGLSupport
m_APIs: 1c0000000b000000
m_Automatic: 0
m_BuildTargetVRSettings: []
m_DefaultShaderChunkSizeInMB: 16
m_DefaultShaderChunkCount: 0
@@ -560,6 +563,9 @@ PlayerSettings:
- serializedVersion: 3
m_BuildTarget: Android
m_Formats: 03000000
- serializedVersion: 3
m_BuildTarget: WebGL
m_Formats: 05000000
playModeTestRunnerEnabled: 0
runPlayModeTestAsEditModeTest: 0
actionOnDotNetUnhandledException: 1
@@ -808,7 +814,7 @@ PlayerSettings:
webGLTemplate: APPLICATION:Default
webGLAnalyzeBuildSize: 0
webGLUseEmbeddedResources: 0
webGLCompressionFormat: 0
webGLCompressionFormat: 1
webGLWasmArithmeticExceptions: 0
webGLLinkerTarget: 1
webGLThreadsSupport: 0
@@ -819,7 +825,7 @@ PlayerSettings:
webGLMemoryLinearGrowthStep: 16
webGLMemoryGeometricGrowthStep: 0.2
webGLMemoryGeometricGrowthCap: 96
webGLPowerPreference: 2
webGLPowerPreference: 1
webGLWebAssemblyTable: 0
webGLWebAssemblyBigInt: 0
webGLCloseOnQuit: 0
+8 -7
View File
@@ -4,9 +4,9 @@
QualitySettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_CurrentQuality: 1
m_CurrentQuality: 0
m_QualitySettings:
- serializedVersion: 4
- serializedVersion: 5
name: Mobile
pixelLightCount: 2
shadows: 2
@@ -34,6 +34,7 @@ QualitySettings:
adaptiveVsyncExtraA: 0
adaptiveVsyncExtraB: 0
lodBias: 1
meshLodThreshold: 1
maximumLODLevel: 0
enableLODCrossFade: 1
streamingMipmapsActive: 0
@@ -47,8 +48,7 @@ QualitySettings:
asyncUploadBufferSize: 16
asyncUploadPersistentBuffer: 1
resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 11400000, guid: 5e6cbd92db86f4b18aec3ed561671858,
type: 2}
customRenderPipeline: {fileID: 11400000, guid: 5e6cbd92db86f4b18aec3ed561671858, type: 2}
terrainQualityOverrides: 0
terrainPixelError: 1
terrainDetailDensityScale: 1
@@ -60,7 +60,7 @@ QualitySettings:
terrainMaxTrees: 50
excludedTargetPlatforms:
- Standalone
- serializedVersion: 4
- serializedVersion: 5
name: PC
pixelLightCount: 2
shadows: 2
@@ -88,6 +88,7 @@ QualitySettings:
adaptiveVsyncExtraA: 0
adaptiveVsyncExtraB: 0
lodBias: 2
meshLodThreshold: 1
maximumLODLevel: 0
enableLODCrossFade: 1
streamingMipmapsActive: 0
@@ -101,8 +102,7 @@ QualitySettings:
asyncUploadBufferSize: 16
asyncUploadPersistentBuffer: 1
resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd,
type: 2}
customRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd, type: 2}
terrainQualityOverrides: 0
terrainPixelError: 1
terrainDetailDensityScale: 1
@@ -122,6 +122,7 @@ QualitySettings:
GameCoreXboxOne: 1
Lumin: 0
Nintendo Switch: 1
Nintendo Switch 2: 1
PS4: 1
PS5: 1
Server: 0