wip, because im losing my shit
This commit is contained in:
parent
8912d8125f
commit
6d9ada8b4b
@ -1,166 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-4790970344126815099
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 5
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: PixelBlit
|
||||
m_Shader: {fileID: 4800000, guid: c4d7011496fb8f34ead8b47276ae3f0a, type: 3}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BASE_COLOR_MAP:
|
||||
m_Texture: {fileID: 2800000, guid: 116e65d2b34493c439f545f71aa487b5, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EMISSION_COLOR_MAP:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _METALNESS_MAP:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 8.38, y: 5.31}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NORMAL_MAP:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SPECULAR_COLOR_MAP:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SPECULAR_IOR_MAP:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SPECULAR_ROUGHNESS_MAP:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _Blend: 0
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CellSizeX: 2
|
||||
- _CellSizeY: 2
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _METALNESS: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueControl: 0
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _SPECULAR_IOR: 1.5
|
||||
- _SPECULAR_ROUGHNESS: 0
|
||||
- _SampleGI: 0
|
||||
- _ScreenHeight: 480
|
||||
- _ScreenWidth: 640
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BASE_COLOR: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EMISSION_COLOR: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SPECULAR_COLOR: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
51
Assets/Prefabs/SHADER_VOLUME.prefab
Normal file
51
Assets/Prefabs/SHADER_VOLUME.prefab
Normal file
@ -0,0 +1,51 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8571637250638348962
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8571637250638348960}
|
||||
- component: {fileID: 8571637250638348961}
|
||||
m_Layer: 0
|
||||
m_Name: SHADER_VOLUME
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8571637250638348960
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8571637250638348962}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 62.8, y: 2.4, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &8571637250638348961
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8571637250638348962}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IsGlobal: 1
|
||||
priority: 0
|
||||
blendDistance: 0
|
||||
weight: 1
|
||||
sharedProfile: {fileID: 11400000, guid: c3b45ae649e3364408bb0986304f0649, type: 2}
|
||||
7
Assets/Prefabs/SHADER_VOLUME.prefab.meta
Normal file
7
Assets/Prefabs/SHADER_VOLUME.prefab.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7febab9e1a84fa449991f0126f4eccbc
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Resources.meta
Normal file
8
Assets/Resources.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3de31d3e69a654c4999f95940625905a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Resources/Shaders.meta
Normal file
8
Assets/Resources/Shaders.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 00d569a294992684ba612017925c2752
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
15
Assets/Resources/Shaders/CustomPostProcessingMaterials.asset
Normal file
15
Assets/Resources/Shaders/CustomPostProcessingMaterials.asset
Normal file
@ -0,0 +1,15 @@
|
||||
%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: 0517c7201b6a73841950436abd2ee35f, type: 3}
|
||||
m_Name: CustomPostProcessingMaterials
|
||||
m_EditorClassIdentifier:
|
||||
crtEffect: {fileID: 2100000, guid: a110daba21b580f4898ccf841727c0c2, type: 2}
|
||||
@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bc45e5f0151133446b26221ec8ea680c
|
||||
guid: 16065ebec4184e14899a6c11cf5d403a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -496,6 +496,7 @@ GameObject:
|
||||
- component: {fileID: 212203381}
|
||||
- component: {fileID: 212203380}
|
||||
- component: {fileID: 212203383}
|
||||
- component: {fileID: 212203384}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
@ -602,6 +603,23 @@ MonoBehaviour:
|
||||
m_RequiresDepthTexture: 0
|
||||
m_RequiresColorTexture: 0
|
||||
m_Version: 2
|
||||
--- !u!114 &212203384
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 212203379}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IsGlobal: 1
|
||||
priority: 0
|
||||
blendDistance: 0
|
||||
weight: 1
|
||||
sharedProfile: {fileID: 11400000, guid: c3b45ae649e3364408bb0986304f0649, type: 2}
|
||||
--- !u!1 &574174948
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
8
Assets/Scenes/Volume.meta
Normal file
8
Assets/Scenes/Volume.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2d27f805e90d2bc4080f4f2ab821159b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
98
Assets/Scenes/Volume/crtVolme.asset
Normal file
98
Assets/Scenes/Volume/crtVolme.asset
Normal file
@ -0,0 +1,98 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-7215673028686694159
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 0}
|
||||
m_Name: CRTEffectComponent
|
||||
m_EditorClassIdentifier: Assembly-CSharp::CRTEffectComponent
|
||||
active: 1
|
||||
<displayName>k__BackingField:
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !u!114 &-4031894175476099154
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 2dce45078901e8743bb35a183fe9b463, type: 3}
|
||||
m_Name: CustomEffectComponent
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !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: d7fd9488000d3734a9e00ee676215985, type: 3}
|
||||
m_Name: crtVolme
|
||||
m_EditorClassIdentifier:
|
||||
components:
|
||||
- {fileID: 6751770758831210905}
|
||||
--- !u!114 &1967504787037751920
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 0}
|
||||
m_Name: CrtEffectComponent
|
||||
m_EditorClassIdentifier: Assembly-CSharp:Shaders:CrtEffectComponent
|
||||
active: 1
|
||||
<displayName>k__BackingField:
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !u!114 &3324731303086568795
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 2dce45078901e8743bb35a183fe9b463, type: 3}
|
||||
m_Name: CustomEffectComponent
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
--- !u!114 &6751770758831210905
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 2dce45078901e8743bb35a183fe9b463, type: 3}
|
||||
m_Name: CustomEffectComponent
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
8
Assets/Scenes/Volume/crtVolme.asset.meta
Normal file
8
Assets/Scenes/Volume/crtVolme.asset.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3b45ae649e3364408bb0986304f0649
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Scripts/Shaders.meta
Normal file
8
Assets/Scripts/Shaders.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c25c3458146a19a42898a05920f05bcf
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -4,6 +4,9 @@ using UnityEngine.Rendering.Universal;
|
||||
|
||||
/*
|
||||
* https://cyangamedev.wordpress.com/2020/06/22/urp-post-processing/
|
||||
*
|
||||
* FIRST TRY NOT USING
|
||||
* 29 octobre
|
||||
*/
|
||||
|
||||
namespace Shaders
|
||||
28
Assets/Scripts/Shaders/CustomEffectComponent.cs
Normal file
28
Assets/Scripts/Shaders/CustomEffectComponent.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
|
||||
/**
|
||||
* https://www.febucci.com/2022/05/custom-post-processing-in-urp/
|
||||
*/
|
||||
|
||||
namespace Shaders
|
||||
{
|
||||
[Serializable,
|
||||
VolumeComponentMenuForRenderPipeline("Custom/CustomEffectComponent", typeof(UniversalRenderPipeline))]
|
||||
public class CustomEffectComponent : VolumeComponent, IPostProcessComponent
|
||||
{
|
||||
// For example, an intensity parameter that goes from 0 to 1
|
||||
public ClampedFloatParameter intensity =
|
||||
new ClampedFloatParameter(value: 1, min: 0, max: 1, overrideState: true);
|
||||
|
||||
// Other 'Parameter' variables you might have
|
||||
|
||||
public bool IsActive() => intensity.value > 0;
|
||||
|
||||
// I have no idea what this does yet but I'll update the post once I find an usage
|
||||
public bool IsTileCompatible() => true;
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Shaders/CustomEffectComponent.cs.meta
Normal file
11
Assets/Scripts/Shaders/CustomEffectComponent.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2dce45078901e8743bb35a183fe9b463
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
118
Assets/Scripts/Shaders/CustomPostProcessPass.cs
Normal file
118
Assets/Scripts/Shaders/CustomPostProcessPass.cs
Normal file
@ -0,0 +1,118 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
/**
|
||||
* https://www.febucci.com/2022/05/custom-post-processing-in-urp/
|
||||
*
|
||||
*/
|
||||
|
||||
namespace Shaders
|
||||
{
|
||||
[System.Serializable]
|
||||
public class CustomPostProcessPass : ScriptableRenderPass
|
||||
{
|
||||
// Used to render from camera to post processings
|
||||
// back and forth, until we render the final image to
|
||||
// the camera
|
||||
RenderTargetIdentifier source;
|
||||
RenderTargetIdentifier destinationA;
|
||||
RenderTargetIdentifier destinationB;
|
||||
RenderTargetIdentifier latestDest;
|
||||
|
||||
readonly int temporaryRTIdA = Shader.PropertyToID("_TempRT");
|
||||
readonly int temporaryRTIdB = Shader.PropertyToID("_TempRTB");
|
||||
|
||||
public CustomPostProcessPass()
|
||||
{
|
||||
// Set the render pass event
|
||||
renderPassEvent = RenderPassEvent.BeforeRenderingPostProcessing;
|
||||
}
|
||||
|
||||
public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData)
|
||||
{
|
||||
// Grab the camera target descriptor. We will use this when creating a temporary render texture.
|
||||
RenderTextureDescriptor descriptor = renderingData.cameraData.cameraTargetDescriptor;
|
||||
descriptor.depthBufferBits = 0;
|
||||
|
||||
var renderer = renderingData.cameraData.renderer;
|
||||
source = renderer.cameraColorTarget;
|
||||
|
||||
// Create a temporary render texture using the descriptor from above.
|
||||
cmd.GetTemporaryRT(temporaryRTIdA , descriptor, FilterMode.Bilinear);
|
||||
destinationA = new RenderTargetIdentifier(temporaryRTIdA);
|
||||
cmd.GetTemporaryRT(temporaryRTIdB , descriptor, FilterMode.Bilinear);
|
||||
destinationB = new RenderTargetIdentifier(temporaryRTIdB);
|
||||
}
|
||||
|
||||
// The actual execution of the pass. This is where custom rendering occurs.
|
||||
public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
|
||||
{
|
||||
// Skipping post processing rendering inside the scene View
|
||||
if(renderingData.cameraData.isSceneViewCamera)
|
||||
return;
|
||||
|
||||
// Here you get your materials from your custom class
|
||||
// (It's up to you! But here is how I did it)
|
||||
var materials = CustomPostProcessingMaterials.Instance;
|
||||
if (materials == null)
|
||||
{
|
||||
Debug.LogError("Custom Post Processing Materials instance is null");
|
||||
return;
|
||||
}
|
||||
|
||||
CommandBuffer cmd = CommandBufferPool.Get("Custom Post Processing");
|
||||
cmd.Clear();
|
||||
|
||||
// This holds all the current Volumes information
|
||||
// which we will need later
|
||||
var stack = VolumeManager.instance.stack;
|
||||
|
||||
#region Local Methods
|
||||
|
||||
// Swaps render destinations back and forth, so that
|
||||
// we can have multiple passes and similar with only a few textures
|
||||
void BlitTo(Material mat, int pass = 0)
|
||||
{
|
||||
var first = latestDest;
|
||||
var last = first == destinationA ? destinationB : destinationA;
|
||||
Blit(cmd, first, last, mat, pass);
|
||||
|
||||
latestDest = last;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// Starts with the camera source
|
||||
latestDest = source;
|
||||
|
||||
//---Custom effect here---
|
||||
var customEffect = stack.GetComponent<CustomEffectComponent>();
|
||||
// Only process if the effect is active
|
||||
if (customEffect.IsActive())
|
||||
{
|
||||
var crtMaterial = materials.crtEffect;
|
||||
// P.s. optimize by caching the property ID somewhere else
|
||||
crtMaterial.SetFloat(Shader.PropertyToID("_Intensity"), customEffect.intensity.value);
|
||||
|
||||
BlitTo(crtMaterial);
|
||||
}
|
||||
|
||||
// Add any other custom effect/component you want, in your preferred order
|
||||
// Custom effect 2, 3 , ...
|
||||
|
||||
|
||||
// DONE! Now that we have processed all our custom effects, applies the final result to camera
|
||||
Blit(cmd, latestDest, source);
|
||||
|
||||
context.ExecuteCommandBuffer(cmd);
|
||||
CommandBufferPool.Release(cmd);
|
||||
}
|
||||
|
||||
//Cleans the temporary RTs when we don't need them anymore
|
||||
public override void OnCameraCleanup(CommandBuffer cmd)
|
||||
{
|
||||
cmd.ReleaseTemporaryRT(temporaryRTIdA);
|
||||
cmd.ReleaseTemporaryRT(temporaryRTIdB);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Shaders/CustomPostProcessPass.cs.meta
Normal file
11
Assets/Scripts/Shaders/CustomPostProcessPass.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 37e69f1d36604e44e8313672cbb7efd4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
20
Assets/Scripts/Shaders/CustomPostProcessRenderer.cs
Normal file
20
Assets/Scripts/Shaders/CustomPostProcessRenderer.cs
Normal file
@ -0,0 +1,20 @@
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
namespace Shaders
|
||||
{
|
||||
[System.Serializable]
|
||||
public class CustomPostProcessRenderer : ScriptableRendererFeature
|
||||
{
|
||||
CustomPostProcessPass pass;
|
||||
|
||||
public override void Create()
|
||||
{
|
||||
pass = new CustomPostProcessPass();
|
||||
}
|
||||
|
||||
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
|
||||
{
|
||||
renderer.EnqueuePass(pass);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Shaders/CustomPostProcessRenderer.cs.meta
Normal file
11
Assets/Scripts/Shaders/CustomPostProcessRenderer.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e4a5752e025fc3d4c98d3aad409aac42
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
35
Assets/Scripts/Shaders/CustomPostProcessingMaterials.cs
Normal file
35
Assets/Scripts/Shaders/CustomPostProcessingMaterials.cs
Normal file
@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
/**
|
||||
* https://www.febucci.com/2022/05/custom-post-processing-in-urp/
|
||||
*/
|
||||
|
||||
namespace Shaders
|
||||
{
|
||||
[System.Serializable,
|
||||
CreateAssetMenu(fileName = "CustomPostProcessingMaterials", menuName = "CustomMaterial/CustomPostProcessingMaterials")]
|
||||
public class CustomPostProcessingMaterials : UnityEngine.ScriptableObject
|
||||
{
|
||||
//---Your Materials---
|
||||
public Material crtEffect;
|
||||
|
||||
//---Accessing the data from the Pass---
|
||||
static CustomPostProcessingMaterials _instance;
|
||||
|
||||
public static CustomPostProcessingMaterials Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance != null) return _instance;
|
||||
// TODO check if application is quitting
|
||||
// and avoid loading if that is the case
|
||||
|
||||
_instance =
|
||||
UnityEngine.Resources.Load("Shaders/CustomPostProcessingMaterials") as CustomPostProcessingMaterials;
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Shaders/CustomPostProcessingMaterials.cs.meta
Normal file
11
Assets/Scripts/Shaders/CustomPostProcessingMaterials.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0517c7201b6a73841950436abd2ee35f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -40,8 +40,8 @@ MonoBehaviour:
|
||||
type: 3}
|
||||
m_RendererFeatures:
|
||||
- {fileID: -1878332245247344467}
|
||||
- {fileID: 6059349672888060108}
|
||||
m_RendererFeatureMap: adc0de57c6d2eee5cc485f766c221754
|
||||
- {fileID: 7294651837198521499}
|
||||
m_RendererFeatureMap: adc0de57c6d2eee59b545e7c32cf3b65
|
||||
m_UseNativeRenderPass: 0
|
||||
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
|
||||
@ -81,7 +81,7 @@ MonoBehaviour:
|
||||
m_ClusteredRendering: 0
|
||||
m_TileSize: 32
|
||||
m_IntermediateTextureMode: 1
|
||||
--- !u!114 &6059349672888060108
|
||||
--- !u!114 &7294651837198521499
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@ -90,14 +90,7 @@ MonoBehaviour:
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d2d5de177d814a8d8c64638ad49b1b1d, type: 3}
|
||||
m_Name: CRTPass
|
||||
m_Script: {fileID: 11500000, guid: e4a5752e025fc3d4c98d3aad409aac42, type: 3}
|
||||
m_Name: CustomPostProcessRenderer
|
||||
m_EditorClassIdentifier:
|
||||
m_Active: 1
|
||||
settings:
|
||||
Event: 550
|
||||
blitMaterial: {fileID: 2100000, guid: a110daba21b580f4898ccf841727c0c2, type: 2}
|
||||
blitMaterialPassIndex: -1
|
||||
destination: 0
|
||||
textureId: _BlitPassTexture
|
||||
alwaysRender: 1
|
||||
|
||||
@ -20,7 +20,7 @@ Material:
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: CRTBlit
|
||||
m_Name: CRTMaterialShader
|
||||
m_Shader: {fileID: 4800000, guid: 7d830e9754227db4b89bacfdc753e135, type: 3}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
@ -105,6 +105,7 @@ Material:
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Intensity: 1
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
@ -117,24 +118,24 @@ Material:
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
- u_bend: 6.82
|
||||
- u_blue_offset_y: 0.0006
|
||||
- u_bend: 4.84
|
||||
- u_blue_offset_y: 0.0042
|
||||
- u_green_offset_y: 0
|
||||
- u_noise_amount: 0.01
|
||||
- u_noise_amount: 0.015
|
||||
- u_noise_size: 417
|
||||
- u_red_offset_y: -0.0004
|
||||
- u_scanlin_transparence1: 0.011
|
||||
- u_scanlin_transparence2: 0.008
|
||||
- u_red_offset_y: -0.0042
|
||||
- u_scanlin_transparence1: 0.024
|
||||
- u_scanlin_transparence2: 0.024
|
||||
- u_scanline_amount: 0.047
|
||||
- u_scanline_size_1: 277
|
||||
- u_scanline_size_2: 521
|
||||
- u_scanline_speed_1: 94.13
|
||||
- u_scanline_speed_2: 30
|
||||
- u_space_bend: 2.022
|
||||
- u_space_bend: 2
|
||||
- u_time: 15.95
|
||||
- u_vignette_edge_round: 6
|
||||
- u_vignette_size: 1.8
|
||||
- u_vignette_smoothness: 0.26
|
||||
- u_vignette_size: 1.81
|
||||
- u_vignette_smoothness: 0.51
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
@ -23,9 +23,6 @@ Shader "CRTShader"
|
||||
u_blue_offset_y("Blue Offset",range(-0.01,0.01)) = 0
|
||||
}
|
||||
|
||||
// The Unity Editor uses the class ExampleCustomEditor to configure the Inspector for this shader asset
|
||||
CustomEditor "Shaders.BlitShaderGUI"
|
||||
|
||||
SubShader
|
||||
{
|
||||
// No culling or depth
|
||||
@ -94,7 +91,7 @@ Shader "CRTShader"
|
||||
uv.y *= 1. + pow(abs(uv.x) / bend, 2.);
|
||||
|
||||
uv /= u_space_bend;
|
||||
return uv + .5;
|
||||
return (uv + .5);
|
||||
}
|
||||
|
||||
float vignette(half2 uv, float size, float smoothness, float edgeRounding)
|
||||
@ -128,7 +125,7 @@ Shader "CRTShader"
|
||||
|
||||
half2 u = smoothstep(0., 1., f);
|
||||
|
||||
return lerp(a, b, u.x) + (c - a) * u.y * (1. - u.x) + (d - b) * u.x * u.y;
|
||||
return (lerp(a, b, u.x) + (c - a) * u.y * (1. - u.x) + (d - b) * u.x * u.y);
|
||||
}
|
||||
|
||||
fixed4 frag(v2f i) : SV_Target
|
||||
|
||||
@ -1,62 +0,0 @@
|
||||
Shader "PixelShader"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_MainTex("Texture", 2D) = "white" {}
|
||||
_ScreenWidth("screen width", float) = 320.0
|
||||
_ScreenHeight("screen height", float) = 240.0
|
||||
_CellSizeX("size of x cell", float) = 4.0
|
||||
_CellSizeY("size of y cell", float) = 4.0
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
// No culling or depth
|
||||
Cull Off ZWrite Off ZTest Always
|
||||
|
||||
Pass
|
||||
{
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float2 uv : TEXCOORD0;
|
||||
float4 vertex : SV_POSITION;
|
||||
};
|
||||
|
||||
v2f vert(appdata v)
|
||||
{
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = v.uv;
|
||||
return o;
|
||||
}
|
||||
|
||||
sampler2D _MainTex;
|
||||
float _ScreenWidth;
|
||||
float _ScreenHeight;
|
||||
float _CellSizeX;
|
||||
float _CellSizeY;
|
||||
|
||||
fixed4 frag(v2f i) : SV_Target
|
||||
{
|
||||
float2 uv = i.uv;
|
||||
|
||||
float pixelX = _ScreenWidth / _CellSizeX;
|
||||
float pixelY = _ScreenHeight / _CellSizeY;
|
||||
|
||||
return tex2D(_MainTex, float2(floor(pixelX * uv.x) / pixelX, floor(pixelY * uv.y) / pixelY));
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c4d7011496fb8f34ead8b47276ae3f0a
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
x
Reference in New Issue
Block a user