wip, because im losing my shit

This commit is contained in:
Jean Lamarre 2022-10-29 16:47:51 -04:00
parent 8912d8125f
commit 6d9ada8b4b
28 changed files with 497 additions and 267 deletions

View File

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

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

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7febab9e1a84fa449991f0126f4eccbc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Resources.meta Normal file
View File

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

View File

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

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

View File

@ -1,8 +1,8 @@
fileFormatVersion: 2
guid: bc45e5f0151133446b26221ec8ea680c
guid: 16065ebec4184e14899a6c11cf5d403a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View 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

View File

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

View File

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

View File

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

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

View File

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

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

View File

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

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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