This commit is contained in:
SoulliesOfficial
2026-01-03 18:19:39 -05:00
parent 3bcd7c1cf8
commit 33b1795c1f
7387 changed files with 2762819 additions and 716926 deletions

View File

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

View File

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

View File

@@ -0,0 +1,37 @@
using UnityEditor;
using UnityEngine;
namespace INab.WorldScanFX.URP
{
[CustomEditor(typeof(ScanFX))]
public class ScanFXEditor : ScanFXBaseEditor
{
protected override void DrawPostProcess()
{
EditorGUILayout.LabelField("Post Process", EditorStyles.boldLabel);
using (new GUILayout.VerticalScope(EditorStyles.helpBox))
{
EditorGUILayout.HelpBox("Make sure to add ScanFXFeature to your URP renderer.", MessageType.Info);
EditorGUILayout.Space();
EditorGUILayout.PropertyField(scanOrigin);
EditorGUILayout.PropertyField(alwaysPassScanOriginPosition);
EditorGUILayout.PropertyField(alwaysPassScanOriginDirection);
if (scanOrigin.objectReferenceValue == null)
{
EditorGUILayout.HelpBox("Please assign a game object to the scanOrigin field", MessageType.Error);
}
EditorGUILayout.Space();
EditorGUILayout.PropertyField(scanDuration);
GUI.enabled = false;
EditorGUILayout.PropertyField(scansLeft);
EditorGUILayout.PropertyField(timeLeft);
EditorGUILayout.PropertyField(timePassed);
GUI.enabled = true;
EditorGUILayout.Space();
}
}
}
}

View File

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

View File

@@ -0,0 +1,10 @@
using UnityEngine;
namespace INab.WorldScanFX.URP
{
[ExecuteAlways]
public class ScanFX : ScanFXBase
{
}
}

View File

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

View File

@@ -0,0 +1,126 @@
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.RenderGraphModule;
using UnityEngine.Rendering.Universal;
namespace INab.WorldScanFX.URP
{
public class ScanFXFeature : ScriptableRendererFeature
{
public Material m_BlitMaterial;
public RenderPassEvent m_RenderPassEvent = RenderPassEvent.BeforeRenderingTransparents;
private BlitPass m_BlitPass;
public override void Create()
{
m_BlitPass = new BlitPass("World Scan FX");
}
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
{
if (m_BlitPass == null || m_BlitMaterial == null)
return;
if (renderingData.cameraData.cameraType == CameraType.Preview || renderingData.cameraData.cameraType == CameraType.Reflection)
return;
m_BlitPass.renderPassEvent = m_RenderPassEvent;
// Required if depth priming or depth texture in urp settings is off. Normals work only with Forward and Forward+. (TODO: for now)
m_BlitPass.ConfigureInput(ScriptableRenderPassInput.Depth | ScriptableRenderPassInput.Normal);
m_BlitPass.Setup(ref m_BlitMaterial);
renderer.EnqueuePass(m_BlitPass);
}
protected override void Dispose(bool disposing)
{
if (m_BlitPass != null) m_BlitPass.Dispose();
m_BlitPass = null;
}
}
public class BlitPass : ScriptableRenderPass
{
private Material m_Material;
private static MaterialPropertyBlock s_SharedPropertyBlock = new MaterialPropertyBlock();
private static readonly int kBlitTexturePropertyId = Shader.PropertyToID("_BlitTexture");
private static readonly int kBlitScaleBiasPropertyId = Shader.PropertyToID("_BlitScaleBias");
private class PassData
{
public Material material;
public TextureHandle source;
public bool UseMask;
public TextureHandle depthMask;
public int shaderPass;
public bool ControlViaVolumes;
}
public BlitPass(string passName)
{
profilingSampler = new ProfilingSampler(passName);
}
public void Setup(ref Material material)
{
m_Material = material;
}
private static void ExecuteMainPass(PassData data, RasterGraphContext context)
{
// Both of these work. TODO: what is the difference?
//Blitter.BlitTexture(context.cmd, data.source, new Vector4(1, 1, 0, 0), data.material, 0);
//ExecuteMainPass(context.cmd, data.source.IsValid() ? data.source : null, data.material, data.depthMask);
s_SharedPropertyBlock.Clear();
if (data.source.IsValid()) s_SharedPropertyBlock.SetTexture(kBlitTexturePropertyId, data.source);
s_SharedPropertyBlock.SetVector(kBlitScaleBiasPropertyId, new Vector4(1, 1, 0, 0));
context.cmd.DrawProcedural(Matrix4x4.identity, data.material, data.shaderPass, MeshTopology.Triangles, 3, 1, s_SharedPropertyBlock);
}
public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData)
{
UniversalResourceData resourcesData = frameData.Get<UniversalResourceData>();
UniversalCameraData cameraData = frameData.Get<UniversalCameraData>();
using (var builder = renderGraph.AddRasterRenderPass<PassData>(passName, out var passData, profilingSampler))
{
var resourceData = frameData.Get<UniversalResourceData>();
passData.material = m_Material;
passData.source = resourcesData.cameraColor;
passData.material.SetMatrix("_InverseView", cameraData.camera.cameraToWorldMatrix);
TextureHandle destination;
var cameraColorDesc = renderGraph.GetTextureDesc(resourcesData.cameraColor);
cameraColorDesc.name = "_CameraColor" + m_Material.name;
cameraColorDesc.clearBuffer = true;
destination = renderGraph.CreateTexture(cameraColorDesc);
builder.UseTexture(passData.source, AccessFlags.Read);
builder.SetRenderAttachment(destination, 0, AccessFlags.Write);
//Shader.SetGlobalMatrix("_InverseView", cameraData.camera.cameraToWorldMatrix);
builder.SetRenderFunc((PassData data, RasterGraphContext context) => ExecuteMainPass(data, context));
resourcesData.cameraColor = destination;
}
}
public void Dispose()
{
// Nothing here... for now.
}
}
}

View File

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

View File

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

View File

@@ -0,0 +1,143 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
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: bf2edee5c58d82540a51f03df9d42094, type: 3}
m_Name: INab Studio World Scan FX
m_EditorClassIdentifier:
k_AssetVersion: 13
k_AssetPreviousVersion: 13
m_RendererType: 1
m_RendererData: {fileID: 0}
m_RendererDataList:
- {fileID: 11400000, guid: c00c4ffcf83a1ed4096fe592c5e89143, type: 2}
m_DefaultRendererIndex: 0
m_RequireDepthTexture: 0
m_RequireOpaqueTexture: 0
m_OpaqueDownsampling: 0
m_SupportsTerrainHoles: 1
m_SupportsHDR: 1
m_HDRColorBufferPrecision: 0
m_MSAA: 1
m_RenderScale: 1
m_UpscalingFilter: 0
m_FsrOverrideSharpness: 0
m_FsrSharpness: 0.92
m_EnableLODCrossFade: 1
m_LODCrossFadeDitheringType: 1
m_ShEvalMode: 0
m_LightProbeSystem: 0
m_ProbeVolumeMemoryBudget: 1024
m_ProbeVolumeBlendingMemoryBudget: 256
m_SupportProbeVolumeGPUStreaming: 0
m_SupportProbeVolumeDiskStreaming: 0
m_SupportProbeVolumeScenarios: 0
m_SupportProbeVolumeScenarioBlending: 0
m_ProbeVolumeSHBands: 1
m_MainLightRenderingMode: 1
m_MainLightShadowsSupported: 1
m_MainLightShadowmapResolution: 4096
m_AdditionalLightsRenderingMode: 1
m_AdditionalLightsPerObjectLimit: 4
m_AdditionalLightShadowsSupported: 0
m_AdditionalLightsShadowmapResolution: 2048
m_AdditionalLightsShadowResolutionTierLow: 256
m_AdditionalLightsShadowResolutionTierMedium: 512
m_AdditionalLightsShadowResolutionTierHigh: 1024
m_ReflectionProbeBlending: 0
m_ReflectionProbeBoxProjection: 0
m_ReflectionProbeAtlas: 0
m_ShadowDistance: 70
m_ShadowCascadeCount: 4
m_Cascade2Split: 0.25
m_Cascade3Split: {x: 0.1, y: 0.3}
m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}
m_CascadeBorder: 0.2
m_ShadowDepthBias: 1
m_ShadowNormalBias: 1
m_AnyShadowsSupported: 1
m_SoftShadowsSupported: 1
m_ConservativeEnclosingSphere: 1
m_NumIterationsEnclosingSphere: 64
m_SoftShadowQuality: 2
m_AdditionalLightsCookieResolution: 2048
m_AdditionalLightsCookieFormat: 3
m_UseSRPBatcher: 1
m_SupportsDynamicBatching: 0
m_MixedLightingSupported: 1
m_SupportsLightCookies: 1
m_SupportsLightLayers: 0
m_DebugLevel: 0
m_StoreActionsOptimization: 0
m_UseAdaptivePerformance: 1
m_ColorGradingMode: 1
m_ColorGradingLutSize: 32
m_AllowPostProcessAlphaOutput: 0
m_UseFastSRGBLinearConversion: 0
m_SupportDataDrivenLensFlare: 1
m_SupportScreenSpaceLensFlare: 1
m_GPUResidentDrawerMode: 0
m_SmallMeshScreenPercentage: 0
m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0
m_ShadowType: 1
m_LocalShadowsSupported: 0
m_LocalShadowsAtlasResolution: 256
m_MaxPixelLights: 0
m_ShadowAtlasResolution: 256
m_VolumeFrameworkUpdateMode: 0
m_VolumeProfile: {fileID: 0}
apvScenesData:
obsoleteSceneBounds:
m_Keys: []
m_Values: []
obsoleteHasProbeVolumes:
m_Keys: []
m_Values:
m_PrefilteringModeMainLightShadows: 3
m_PrefilteringModeAdditionalLight: 3
m_PrefilteringModeAdditionalLightShadows: 0
m_PrefilterXRKeywords: 1
m_PrefilteringModeForwardPlus: 0
m_PrefilteringModeDeferredRendering: 0
m_PrefilteringModeScreenSpaceOcclusion: 0
m_PrefilterDebugKeywords: 1
m_PrefilterWriteRenderingLayers: 1
m_PrefilterHDROutput: 1
m_PrefilterAlphaOutput: 1
m_PrefilterSSAODepthNormals: 1
m_PrefilterSSAOSourceDepthLow: 1
m_PrefilterSSAOSourceDepthMedium: 1
m_PrefilterSSAOSourceDepthHigh: 1
m_PrefilterSSAOInterleaved: 1
m_PrefilterSSAOBlueNoise: 1
m_PrefilterSSAOSampleCountLow: 1
m_PrefilterSSAOSampleCountMedium: 1
m_PrefilterSSAOSampleCountHigh: 1
m_PrefilterDBufferMRT1: 1
m_PrefilterDBufferMRT2: 1
m_PrefilterDBufferMRT3: 1
m_PrefilterSoftShadowsQualityLow: 1
m_PrefilterSoftShadowsQualityMedium: 1
m_PrefilterSoftShadowsQualityHigh: 1
m_PrefilterSoftShadows: 0
m_PrefilterScreenCoord: 1
m_PrefilterScreenSpaceIrradiance: 0
m_PrefilterNativeRenderPass: 1
m_PrefilterUseLegacyLightmaps: 0
m_PrefilterBicubicLightmapSampling: 0
m_PrefilterReflectionProbeRotation: 0
m_PrefilterReflectionProbeBlending: 0
m_PrefilterReflectionProbeBoxProjection: 0
m_PrefilterReflectionProbeAtlas: 0
m_ShaderVariantLogLevel: 0
m_ShadowCascades: 0
m_Textures:
blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}

View File

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

View File

@@ -0,0 +1,92 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
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: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
m_Name: World Scan FX Renderer
m_EditorClassIdentifier:
debugShaders:
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3}
probeVolumeResources:
probeVolumeDebugShader: {fileID: 0}
probeVolumeFragmentationDebugShader: {fileID: 0}
probeVolumeOffsetDebugShader: {fileID: 0}
probeVolumeSamplingDebugShader: {fileID: 0}
probeSamplingDebugMesh: {fileID: 0}
probeSamplingDebugTexture: {fileID: 0}
probeVolumeBlendStatesCS: {fileID: 0}
m_RendererFeatures:
- {fileID: 5678622908312968759}
m_RendererFeatureMap: 37de63cf7285ce4e
m_UseNativeRenderPass: 0
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
m_AssetVersion: 3
m_PrepassLayerMask:
serializedVersion: 2
m_Bits: 4294967295
m_OpaqueLayerMask:
serializedVersion: 2
m_Bits: 4294967295
m_TransparentLayerMask:
serializedVersion: 2
m_Bits: 4294967295
m_DefaultStencilState:
overrideStencilState: 0
stencilReference: 0
stencilCompareFunction: 8
passOperation: 2
failOperation: 0
zFailOperation: 0
m_ShadowTransparentReceive: 1
m_RenderingMode: 0
m_DepthPrimingMode: 0
m_CopyDepthMode: 0
m_DepthAttachmentFormat: 0
m_DepthTextureFormat: 0
m_AccurateGbufferNormals: 0
m_IntermediateTextureMode: 1
--- !u!114 &5628577771763195977
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: b00045f12942b46c698459096c89274e, type: 3}
m_Name: FullScreenPassRendererFeature
m_EditorClassIdentifier:
m_Active: 0
injectionPoint: 450
fetchColorBuffer: 1
requirements: 3
passMaterial: {fileID: 2100000, guid: 7b88ba40488576b468436cda0e0c405d, type: 2}
passIndex: 0
bindDepthStencilAttachment: 0
m_Version: 1
--- !u!114 &5678622908312968759
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: 2405970a942c0584cb60940ba0199bda, type: 3}
m_Name: ScanFXFeature
m_EditorClassIdentifier:
m_Active: 1
m_BlitMaterial: {fileID: 2100000, guid: 7b88ba40488576b468436cda0e0c405d, type: 2}
m_RenderPassEvent: 450

View File

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

View File

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

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: eef24bb8b64174d409c7a4336995cf2a
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 37a883ef35687b148802935bb94c63bf
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: e530adf947b3976489321dfd7afbaa78
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}