增加滤镜RetroArchMattiasCRTGlow,
filtereffect派生类现在自动加载, StripAttribute用于标记滤镜不在某些平台自动加载
This commit is contained in:
parent
c254f0f5bb
commit
37cd8b1d22
@ -777,7 +777,7 @@ MonoBehaviour:
|
||||
m_MinWidth: -1
|
||||
m_MinHeight: -1
|
||||
m_PreferredWidth: -1
|
||||
m_PreferredHeight: 50
|
||||
m_PreferredHeight: 40
|
||||
m_FlexibleWidth: -1
|
||||
m_FlexibleHeight: -1
|
||||
m_LayoutPriority: 1
|
||||
@ -1350,7 +1350,7 @@ MonoBehaviour:
|
||||
m_MinWidth: -1
|
||||
m_MinHeight: -1
|
||||
m_PreferredWidth: -1
|
||||
m_PreferredHeight: 50
|
||||
m_PreferredHeight: 40
|
||||
m_FlexibleWidth: -1
|
||||
m_FlexibleHeight: -1
|
||||
m_LayoutPriority: 1
|
||||
|
@ -3037,6 +3037,10 @@ PrefabInstance:
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6838719776118089301, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7707092914009063575, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
|
@ -136,7 +136,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &33805170
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -364,7 +364,6 @@ RectTransform:
|
||||
m_Children:
|
||||
- {fileID: 33805170}
|
||||
- {fileID: 1376779137}
|
||||
- {fileID: 1373072004}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
@ -372,92 +371,6 @@ RectTransform:
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!1 &1373072003
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1373072004}
|
||||
- component: {fileID: 1373072006}
|
||||
- component: {fileID: 1373072005}
|
||||
m_Layer: 5
|
||||
m_Name: GameObject
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &1373072004
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1373072003}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1319295996}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 318.00003, y: 179}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1373072005
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1373072003}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e96dacbf1b116f64da658fbad66839e2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Texture: {fileID: 0}
|
||||
m_UVRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
m_EffectFactor: 1
|
||||
m_ColorFactor: 1
|
||||
m_BlurFactor: 1
|
||||
m_EffectMode: 0
|
||||
m_ColorMode: 0
|
||||
m_BlurMode: 3
|
||||
m_EffectColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_DesamplingRate: 1
|
||||
m_ReductionRate: 1
|
||||
m_FilterMode: 1
|
||||
m_EffectMaterial: {fileID: 21380876918929932, guid: 1a1a8e44196ca754a9a7b9cb80e17573, type: 2}
|
||||
m_BlurIterations: 3
|
||||
m_FitToScreen: 1
|
||||
m_CaptureOnEnable: 0
|
||||
--- !u!222 &1373072006
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1373072003}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &1376779136
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -94,5 +94,21 @@ namespace AxibugEmuOnline.Client
|
||||
Value = overrideValue;
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
internal class StripAttribute : Attribute
|
||||
{
|
||||
HashSet<RuntimePlatform> m_stripPlats;
|
||||
/// <summary>
|
||||
/// 指示一个滤镜是否会在指定的平台被剔除
|
||||
/// </summary>
|
||||
/// <param name="strip">会被剔除的平台</param>
|
||||
public StripAttribute(params RuntimePlatform[] stripPlatform)
|
||||
{
|
||||
m_stripPlats = new HashSet<RuntimePlatform>(stripPlatform);
|
||||
}
|
||||
|
||||
public bool NeedStrip => m_stripPlats.Contains(Application.platform);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using UnityEngine;
|
||||
using static AxibugEmuOnline.Client.FilterEffect;
|
||||
|
||||
@ -20,19 +21,7 @@ namespace AxibugEmuOnline.Client
|
||||
|
||||
public FilterManager(CanvasGroup filterPreview, CanvasGroup mainBg)
|
||||
{
|
||||
#if UNITY_PSP2
|
||||
m_filters = new List<Filter>();
|
||||
m_filterRomSetting = new FilterRomSetting();
|
||||
m_previewFilterWraper = new AlphaWraper(mainBg, filterPreview, false);
|
||||
return;
|
||||
#endif
|
||||
|
||||
m_filters = new List<Filter>
|
||||
{
|
||||
new Filter(new FixingPixelArtGrille()),
|
||||
new Filter(new LCDPostEffect()),
|
||||
new Filter(new MattiasCRT()),
|
||||
};
|
||||
loadFilters();
|
||||
var json = PlayerPrefs.GetString(nameof(FilterRomSetting));
|
||||
m_filterRomSetting = JsonUtility.FromJson<FilterRomSetting>(json) ?? new FilterRomSetting();
|
||||
|
||||
@ -41,6 +30,23 @@ namespace AxibugEmuOnline.Client
|
||||
ShutDownFilter();
|
||||
}
|
||||
|
||||
private void loadFilters()
|
||||
{
|
||||
m_filters = new List<Filter>();
|
||||
|
||||
var effectBaseType = typeof(FilterEffect);
|
||||
foreach (var type in effectBaseType.Assembly.GetTypes())
|
||||
{
|
||||
if (type.IsAbstract) continue;
|
||||
if (type.IsInterface) continue;
|
||||
if (!effectBaseType.IsAssignableFrom(type)) continue;
|
||||
var stripAtt = type.GetCustomAttribute<StripAttribute>();
|
||||
if (stripAtt != null && stripAtt.NeedStrip) continue;
|
||||
var effect = Activator.CreateInstance(type) as FilterEffect;
|
||||
m_filters.Add(new Filter(effect));
|
||||
}
|
||||
}
|
||||
|
||||
private RenderTexture result = null;
|
||||
public Texture ExecuteFilterRender(Texture src)
|
||||
{
|
||||
|
@ -2,6 +2,7 @@
|
||||
using AxibugEmuOnline.Client;
|
||||
using UnityEngine;
|
||||
|
||||
[Strip(RuntimePlatform.PSP2)]
|
||||
public sealed class FixingPixelArtGrille : FilterEffect
|
||||
{
|
||||
public override string Name => nameof(FixingPixelArtGrille);
|
||||
|
@ -2,7 +2,7 @@
|
||||
using AxibugEmuOnline.Client;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
|
||||
public sealed class MattiasCRT : FilterEffect
|
||||
{
|
||||
public override string Name => nameof(MattiasCRT);
|
||||
|
@ -17,7 +17,6 @@ Shader "Filter/MattiasCRT"
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
sampler2D _MainTex;
|
||||
float4 _MainTex_TexelSize;
|
||||
float2 _iResolution;
|
||||
|
||||
float2 curve(float2 uv)
|
||||
|
@ -0,0 +1,70 @@
|
||||
using Assets.Script.AppMain.Filter;
|
||||
using AxibugEmuOnline.Client;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
[Strip(RuntimePlatform.PSP2)]
|
||||
public class RetroArchMattiasCRTGlow : FilterEffect
|
||||
{
|
||||
public override string Name => nameof(RetroArchMattiasCRTGlow);
|
||||
protected override string ShaderName => "Filter/RetroArch/MattiasCRTWithGlow";
|
||||
|
||||
[Range(0.02f, 20f)]
|
||||
public FloatParameter InputGamma = new FloatParameter(11);
|
||||
[Range(0.02f, 1f)]
|
||||
public FloatParameter GaussianWidth = new FloatParameter(0.4f);
|
||||
[Range(0.02f, 1f)]
|
||||
public FloatParameter ColorBoost = new FloatParameter(0.4f);
|
||||
[Range(0.02f, 1f)]
|
||||
public FloatParameter GlowWhitePoint = new FloatParameter(0.4f);
|
||||
[Range(0.1f, 6f)]
|
||||
public FloatParameter GlowRolloff = new FloatParameter(2.2f);
|
||||
[Range(0.05f, 0.8f)]
|
||||
public FloatParameter GlowStrength = new FloatParameter(0.45f);
|
||||
[Range(0.02f, 2.6f)]
|
||||
public FloatParameter MonitorGamma = new FloatParameter(2.2f);
|
||||
|
||||
int m_gamma_ID = Shader.PropertyToID("_gamma");
|
||||
int m_horiz_gauss_width_ID = Shader.PropertyToID("_horiz_gauss_width");
|
||||
int m_BOOST_ID = Shader.PropertyToID("_BOOST");
|
||||
int m_GLOW_WHITEPOINT_ID = Shader.PropertyToID("_GLOW_WHITEPOINT");
|
||||
int m_GLOW_ROLLOFF_ID = Shader.PropertyToID("_GLOW_ROLLOFF");
|
||||
int m_BLOOM_STRENGTH_ID = Shader.PropertyToID("_BLOOM_STRENGTH");
|
||||
int m_OUTPUT_GAMMA_ID = Shader.PropertyToID("_OUTPUT_GAMMA");
|
||||
|
||||
|
||||
CommandBuffer m_multipPassCmd;
|
||||
int m_wrapRT;
|
||||
|
||||
protected override void OnInit(Material renderMat)
|
||||
{
|
||||
m_multipPassCmd = new CommandBuffer();
|
||||
m_wrapRT = Shader.PropertyToID($"{Name}.WrapRT");
|
||||
}
|
||||
|
||||
protected override void OnRenderer(Material renderMat, Texture src, RenderTexture result)
|
||||
{
|
||||
m_multipPassCmd.Clear();
|
||||
|
||||
m_multipPassCmd.GetTemporaryRT(m_wrapRT, result.width, result.height);
|
||||
renderMat.SetVector("_iResolution", new Vector2(result.width, result.height));
|
||||
|
||||
renderMat.SetFloat(m_gamma_ID, InputGamma.GetValue());
|
||||
renderMat.SetFloat(m_horiz_gauss_width_ID, GaussianWidth.GetValue());
|
||||
renderMat.SetFloat(m_BOOST_ID, ColorBoost.GetValue());
|
||||
renderMat.SetFloat(m_GLOW_WHITEPOINT_ID, GlowWhitePoint.GetValue());
|
||||
renderMat.SetFloat(m_GLOW_ROLLOFF_ID, GlowRolloff.GetValue());
|
||||
renderMat.SetFloat(m_BLOOM_STRENGTH_ID, GlowStrength.GetValue());
|
||||
renderMat.SetFloat(m_OUTPUT_GAMMA_ID, MonitorGamma.GetValue());
|
||||
|
||||
m_multipPassCmd.Blit(src, result);
|
||||
for (int i = 0; i < renderMat.shader.passCount; i++)
|
||||
{
|
||||
m_multipPassCmd.Blit(result, m_wrapRT, renderMat, i);
|
||||
m_multipPassCmd.Blit(m_wrapRT, result);
|
||||
}
|
||||
|
||||
m_multipPassCmd.ReleaseTemporaryRT(m_wrapRT);
|
||||
Graphics.ExecuteCommandBuffer(m_multipPassCmd);
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fb6622dcbc754b744bb70f1655c3e526
|
@ -23,64 +23,19 @@ Material:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _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}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
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}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
- _gamma: 2.24
|
||||
- _horiz_gauss_width: 1.89
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _BLOOM_STRENGTH: 0.45
|
||||
- _BOOST: 0.4
|
||||
- _GLOW_ROLLOFF: 2.2
|
||||
- _GLOW_WHITEPOINT: 0.4
|
||||
- _OUTPUT_GAMMA: 2.2
|
||||
- _gamma: 11
|
||||
- _horiz_gauss_width: 0.4
|
||||
m_Colors: []
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
@ -1,13 +1,13 @@
|
||||
Shader "Filter/RetroArch/Glow"
|
||||
Shader "Filter/RetroArch/MattiasCRTWithGlow"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_MainTex ("Texture", 2D) = "white"
|
||||
_gamma("Input Gamma option: 2.4/2.0/2.6/0.02",float) = 2.4
|
||||
_horiz_gauss_width("Gaussian Width option: 0.5/0.4/0.6/0.02",float) = 0.5
|
||||
_BOOST("Color Boost option: 1.0/0.5/1.5/0.02",float) = 1.0
|
||||
_GLOW_WHITEPOINT("Glow Whitepoint option: 1.0/0.5/1.1/0.02",float) = 1.0
|
||||
_GLOW_ROLLOFF("Glow Rolloff option: 3.0 1.2 6.0 0.1",float) = 3.0
|
||||
_gamma("Input Gamma option: 2.4/2.0/2.6/0.02",float) = 11
|
||||
_horiz_gauss_width("Gaussian Width option: 0.5/0.4/0.6/0.02",float) = 0.4
|
||||
_BOOST("Color Boost option: 1.0/0.5/1.5/0.02",float) = 0.4
|
||||
_GLOW_WHITEPOINT("Glow Whitepoint option: 1.0/0.5/1.1/0.02",float) = 0.4
|
||||
_GLOW_ROLLOFF("Glow Rolloff option: 3.0 1.2 6.0 0.1",float) = 2.2
|
||||
_BLOOM_STRENGTH("Glow Strength option: 0.45/0.0/0.8/0.05",float) = 0.45
|
||||
_OUTPUT_GAMMA("Monitor Gamma option: 2.2/1.8/2.6/0.02",float) = 2.2
|
||||
}
|
||||
@ -42,6 +42,93 @@
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
Pass
|
||||
{
|
||||
Name "MattiasCRT"
|
||||
|
||||
CGPROGRAM
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
#pragma vertex vert_img
|
||||
#pragma fragment frag
|
||||
|
||||
sampler2D _MainTex;
|
||||
float2 _iResolution;
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
float2 curve(float2 uv)
|
||||
{
|
||||
uv = (uv - 0.5) * 2.0;
|
||||
uv *= 1.1;
|
||||
uv.x *= 1.0 + pow((abs(uv.y) / 5.0), 2.0);
|
||||
uv.y *= 1.0 + pow((abs(uv.x) / 4.0), 2.0);
|
||||
uv = (uv / 2.0) + 0.5;
|
||||
uv = uv *0.92 + 0.04;
|
||||
return uv;
|
||||
}
|
||||
|
||||
float4 mainImage( float2 fragCoord )
|
||||
{
|
||||
|
||||
float4 fragColor = float4(0,0,0,1);
|
||||
|
||||
float2 q = fragCoord.xy / _iResolution.xy;
|
||||
float2 uv = q;
|
||||
uv = curve( uv );
|
||||
float x = sin(0.3*_Time+uv.y*21.0)*sin(0.7*_Time+uv.y*29.0)*sin(0.3+0.33*_Time+uv.y*31.0)*0.0017;
|
||||
|
||||
float3 col;
|
||||
col.r = tex2D(_MainTex,float2(x+uv.x+0.001,uv.y+0.001)).x+0.05;
|
||||
col.g = tex2D(_MainTex,float2(x+uv.x+0.000,uv.y-0.002)).y+0.05;
|
||||
col.b = tex2D(_MainTex,float2(x+uv.x-0.002,uv.y+0.000)).z+0.05;
|
||||
col.r += 0.08*tex2D(_MainTex,0.75*float2(x+0.025, -0.027)+float2(uv.x+0.001,uv.y+0.001)).x;
|
||||
col.b += 0.08*tex2D(_MainTex,0.75*float2(x+-0.02, -0.018)+float2(uv.x-0.002,uv.y+0.000)).z;
|
||||
col.g += 0.05*tex2D(_MainTex,0.75*float2(x+-0.022, -0.02)+float2(uv.x+0.000,uv.y-0.002)).y;
|
||||
|
||||
|
||||
col = clamp(col*0.6+0.4*col*col*1.0,0.0,1.0);
|
||||
|
||||
float vig = (0.0 + 1.0*16.0*uv.x*uv.y*(1.0-uv.x)*(1.0-uv.y));
|
||||
col *= pow(vig,0.3);
|
||||
|
||||
col *= float3(0.95,1.05,0.95);
|
||||
col *= 2.8;
|
||||
|
||||
float scans = clamp( 0.35+0.35*sin(3.5*_Time+uv.y*_iResolution.y*1.5), 0.0, 1.0);
|
||||
|
||||
float s = pow(scans,1.7);
|
||||
col = col*( 0.4+0.7*s) ;
|
||||
|
||||
col *= 1.0+0.01*sin(110.0*_Time);
|
||||
if (uv.x < 0.0 || uv.x > 1.0)
|
||||
col *= 0.0;
|
||||
if (uv.y < 0.0 || uv.y > 1.0)
|
||||
col *= 0.0;
|
||||
|
||||
|
||||
col*=1.0-0.65*clamp((fragCoord.x % 2.0 -1.0 )*2.0,0.0,1.0);
|
||||
|
||||
float comp = smoothstep( 0.1, 0.9, sin(_Time) );
|
||||
|
||||
fragColor = float4(col,1.0);
|
||||
|
||||
return fragColor;
|
||||
}
|
||||
|
||||
fixed4 frag(v2f i) : SV_Target
|
||||
{
|
||||
float2 pos = _iResolution.xy*i.uv;
|
||||
fixed4 col = mainImage(pos);
|
||||
return col;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
Pass
|
||||
{
|
||||
|
@ -22,16 +22,20 @@ namespace AxibugEmuOnline.Client
|
||||
private void OnSliderValueChanged(float value)
|
||||
{
|
||||
txt_value.text = $"{value:.00}";
|
||||
m_valueMenu.OnValueChanged(value);
|
||||
|
||||
if (!m_dataSetting) m_valueMenu.OnValueChanged(value);
|
||||
}
|
||||
|
||||
bool m_dataSetting;
|
||||
public void SetData(ValueSetMenu valueMenu)
|
||||
{
|
||||
m_dataSetting = true;
|
||||
m_valueMenu = valueMenu;
|
||||
slider.minValue = (float)valueMenu.Min;
|
||||
slider.maxValue = (float)valueMenu.Max;
|
||||
slider.value = (float)valueMenu.ValueRaw;
|
||||
m_step = (slider.maxValue - slider.minValue) * 0.05f;
|
||||
m_dataSetting = false;
|
||||
}
|
||||
|
||||
public void OnLeft()
|
||||
|
Loading…
Reference in New Issue
Block a user