рдЖрдЬ рдореИрдВ рдПрдХ рд╢реИрдбрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдкреИрд▓реЗрдЯ рдкрд░ / рдмрд╛рд╣рд░ рдлреАрдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдПрдирдИрдПрд╕ рдЧреЗрдо рдЖрджрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рд░рдВрдЧреЛрдВ рдХреЗ рдПрдХ рд╕реАрдорд┐рдд рдкреИрд▓реЗрдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЪрд┐рддреНрд░ рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рд▓рд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛ (рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдЕрдВрдзреЗрд░реЗ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ), рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдкреИрд▓реЗрдЯ рдореЗрдВ рд╕рд╣реА рд░рдВрдЧ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдЧрд╣рд░рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЖрдкрдХреЛ рдПрдХ рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рд╡рд╕реНрддреБ рдореЗрдВ рдлреАрдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдФрд░ рдкреИрд▓реЗрдЯ рдореЗрдВ рдЧрд╣рд░реЗ рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рдЫрд╛рдпрд╛ рдирд╣реАрдВ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╡рд╕реНрддреБ рдХреЛ рдиреАрд▓рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЧрд╣рд░рд╛ рджрд┐рдЦрддрд╛ рд╣реИ), рдлрд┐рд░ рд▓рд╛рд▓, рдЖрджрд┐ред
рдиреАрдЪреЗ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рд▓рд┐рдЦрд┐рдд рд╢реЗрдбрд░ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
рдмрд╕ рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ - рд╣рдорд╛рд░реЗ рдЦреЗрд▓ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╢реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд╣рдордиреЗ рдЕрднреА рддрдХ рдлреИрд╕рд▓рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдзреБрдирд┐рдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд▓рд╛ рдкрд░ рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдереЛрдбрд╝рд╛ рдмрд╣рд╕ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИред
рддреЛ, рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ shader рдбрд┐рд╕реНрдХ рд▓рд┐рдЦреЗрдВ:
рд╢реЗрдбрд░Shader "Custom/Palette Shader" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { Pass { ZTest Always Cull Off ZWrite Off Fog { Mode off } CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma fragmentoption ARB_precision_hint_fastest #include "UnityCG.cginc" #pragma target 3.0 struct v2f { float4 pos : POSITION; float2 uv : TEXCOORD0; }; uniform sampler2D _MainTex; v2f vert(appdata_img v) { v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.vertex); o.uv = MultiplyUV(UNITY_MATRIX_TEXTURE0, v.texcoord); return o; } half4 frag(v2f i): COLOR { half4 color = tex2D(_MainTex, i.uv);
рд╕реА # using UnityEngine; [ExecuteInEditMode] [RequireComponent(typeof(Camera))] public class PaletteShader : MonoBehaviour { public Shader shader; private Material _material;
рдЪрд▓рд┐рдП рдЕрдм рд╕реЛрдЪрддреЗ рд╣реИрдВ ...
рдкрд╣рд▓рд╛, рдереЛрдбрд╝рд╛ рд╕рд┐рджреНрдзрд╛рдВрддред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛, рд░рдВрдЧреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдиреАрд▓рд╛ рдХреЛ рд╕рдмрд╕реЗ рдЧрд╣рд░рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрджрд┐ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдЖрдк рдЯреАрд╡реА рд╕реЗрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ b / w рдЯреАрд╡реА рдкрд░ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢ рд╕реЗ рдЕрдВрдзреЗрд░реЗ рддрдХ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
рдЗрд╕ рд░рдВрдЧ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ b / w рдореЗрдВ рдЬрд╛рджреБрдИ рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
R*0.21 + G*0.72 + B*0.07
ред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ "рдЪрдордХ" рдХрд╣реЗрдВрдЧреЗред
рд╢реЗрдбрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛: рдпрд╣ рдореВрд▓ рдЫрд╡рд┐ рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХреА рдЪрдордХ (рдХрдо) рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЙрдкрд▓рдмреНрдз рдкреИрд▓реЗрдЯ рд╕реЗ рдПрдХ рд░рдВрдЧ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ рдЬреЛ рдЪрдордХ рдореЗрдВ рдирд┐рдХрдЯрддрдо рд╣реЛрдЧрд╛ред рдпрд╣реА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╢реЗрдбрд░ рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: 1) рдХрдо рдЪрдордХ рдФрд░ 2) рдкреИрд▓реЗрдЯ рд╕реЗ рдПрдХ рд░рдВрдЧ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рдЪрдордХ рдХрдо рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рд╣рдо рдПрдХ рдХрд╛рд░рдХ рджреНрд╡рд╛рд░рд╛ рд░рдВрдЧ рдХреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЧреБрдгрд╛ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдкреИрд▓реЗрдЯ рдореЗрдВ рдирд┐рдХрдЯрддрдо рд░рдВрдЧ рдвреВрдВрдврдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред
рдЬреЛ рд▓реЛрдЧ shaders рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рд╡реЗ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ shader рдореЗрдВ рдХреЛрдИ рднреА рдЪрдХреНрд░ рдЖрддреНрдордШрд╛рддреА рд╣реИред рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рд░рдВрдЧ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдкреИрд▓реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрдВрдЯрдиреА рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИ - рдПрдХ рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдПрдХ рд░рдВрдЧреАрди рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдмрд╣реБрдд рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИ рдХрд┐ рддреАрди рдЖрдпрд╛рдореА рдмрдирд╛рд╡рдЯ рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рд╣реИред рдпрд╣реА рд╣реИ, рд╣рдо рд╕реНрд░реЛрдд рд░рдВрдЧ рдХреЛ рдкреИрд▓реЗрдЯ рдореЗрдВ рд░рдВрдЧ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░ - рддреБрд░рдВрдд рдЕрдВрддрд┐рдо рд░рдВрдЧ рдореЗрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдмрдирд╛рд╡рдЯ рдореЗрдВ, рдЖрд░ / рдЬреА / рдмреА рдШрдЯрдХ рдореВрд▓реНрдп рддреАрди рдЕрдХреНрд╖реЛрдВ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдВрдЧреЗ, рдФрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрд┐рдХреНрд╕реЗрд▓ рд░рдВрдЧ рдПрдХ рдкрд░рд┐рдгрд╛рдореА рд░рдВрдЧ рд╣реЛрдЧрд╛ред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ! рдпрд╣ рдХреЗрд╡рд▓ рдРрд╕реА рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
рдмреЗрд╢рдХ, рд╕рдЯреАрдХ рд░рдВрдЧ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рдЬреИрд╕реА рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреА рд╣реЛрдЧреА, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдзреБрд░реА рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдо рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рдЙрдиреНрдирдпрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛ред рдпрд╛рдиреА 256x256x256ред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдЯреАрдХрддрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд░рдВрдЧ рдХреА рдЧрд╣рд░рд╛рдИ рдХрдо рдХрд░реЗрдВ рдФрд░ рдкреИрд▓реЗрдЯ рдореЗрдВ рдХрдИ рд░рдВрдЧреЛрдВ рдХреЛ рдХрдо рдХрд░реЗрдВред
рддреЛ, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рдкреИрд▓реЗрдЯ рдмрдирд╛рдПрдВ рдФрд░ рддреБрд░рдВрдд рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдХреЛ рдЙрд╕рдХреА рдЪрдордХ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦреЗрдВ:
const int depth = 3;
рдпрд╣ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЕрдВрддрддрдГ рдЖрд░ рдШрдЯрдХ рдХреЛ 2 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рдкреИрд▓реЗрдЯ рдореЗрдВ, рд▓рд╛рд▓ рд░рдВрдЧ рдмрд╣реБрдд "рдЪрд┐рдкрдХрд╛ рд╣реБрдЖ" рдерд╛ред
рдФрд░ рдЕрдм - рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдкред рдЖрдкрдХреЛ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ 3D рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
const int dim = 16;
рдЦреИрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдЦреБрдж рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:
half4 color = tex2D(_MainTex, i.uv); half4 rc = tex3D(_PaletteTex, color.rgb * _Br); float d = abs(Luminance(color) - Luminance(rc)); if ((d < 0.15) || (_Br == 1)) rc = color; return rc;
рдпрд╣рд╛рдБ рдпрд╣
if
рд╕рд╛рде рд▓рд╛рдЗрди рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рд╕реНрдкрд╖реНрдЯ рд╣реИ - "рдпрджрд┐ рдЪрдордХ == 1, рддреЛ рд╣рдо рдореВрд▓ рд░рдВрдЧ рдмрд░рдХрд░рд╛рд░ рд░рдЦрддреЗ рд╣реИрдВред" рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╡рд╛рд▓рд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╢рд░реНрдд рд╣реИ рдХрд┐ тАЬрдЬрдм рдкреИрд▓реЗрдЯ рд╕реЗ рд░рдВрдЧ рдкрд░рд┐рдгрд╛рдореА рдПрдХ рдХреЗ рдХрд░реАрдм (15% рдХреЗ рднреАрддрд░) рд╣реИ, рддреЛ рдореВрд▓ рд░рдВрдЧ рдХреЛ рднреА рдЫреЛрдбрд╝ рджреЗрдВред рдпрд╣ рдлреВрд▓реЛрдВ рдХреЗ рдХреБрдЫ рдЕрдирд╛рд╡рд╢реНрдпрдХ "рдЦрдбрд╝рдЦрдбрд╝рд╛рд╣рдЯ" рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рддрд░рд╣ рдХреА рддрдбрд╝рдХ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИред рдФрд░ рдЗрд╕реАрд▓рд┐рдП рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░реАрди рдкрд░ рдореМрдЬреВрдж рдХреБрдЫ рддрддреНрд╡ рдЕрдВрддрд┐рдо рдЪрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдирд╛ рд░рдВрдЧ рдмрди рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рдЖрдЦрд┐рд░реА рддрдХ рд╡реЗ рдЕрдкрдиреЗ рд░рдВрдЧ рдХреЗ рдирд╣реАрдВ рдереЗ, рд▓реЗрдХрд┐рди рдкреИрд▓реЗрдЯ рд╕реЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрд░реАрдмред рдЧрд╣рд░реЗ рд░рдВрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдмреБрд░рд╛ рд▓рдЧреЗрдЧрд╛ред
рджрд░рдЕрд╕рд▓, рдмрд╕ рдЗрддрдирд╛ рд╣реАред
рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк:
рд╢реЗрдбрд░ Shader "Custom/Palette Shader" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _Br("Brightness", Float) = 0 _PaletteTex ("Pelette texture", 3D) = "white" {} } SubShader { Pass { ZTest Always Cull Off ZWrite Off Fog { Mode off } CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma fragmentoption ARB_precision_hint_fastest #include "UnityCG.cginc" #pragma target 3.0 struct v2f { float4 pos : POSITION; float2 uv : TEXCOORD0; }; uniform sampler2D _MainTex; uniform sampler3D _PaletteTex; uniform float _Br; v2f vert(appdata_img v) { v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.vertex); o.uv = MultiplyUV(UNITY_MATRIX_TEXTURE0, v.texcoord); return o; } half4 frag(v2f i): COLOR { half4 color = tex2D(_MainTex, i.uv); half4 rc = tex3D(_PaletteTex, color.rgb * _Br); float d = abs(Luminance(color) - Luminance(rc)); if ((d < 0.15) || (_Br == 1)) rc = color; return rc; } ENDCG } } FallBack "Diffuse" }
рд╕реА # using UnityEngine; [ExecuteInEditMode] [RequireComponent(typeof(Camera))] public class PaletteShader : MonoBehaviour { public Shader shader; private Material _material; [Range(0, 1)] public float brightness = 0.0f; [Range(0, 1)] public float random = 1f; private float _r = 0f; private Texture3D _tex;
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рдореИрдВрдиреЗ рдРрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рдордХреНрдЦреА рдкрд░ рд░рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЕрд╡рд╕рд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкреИрд▓реЗрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ред рдпрд╣реА рд╣реИ, рдореИрдВрдиреЗ рдкреИрд▓реЗрдЯ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рдЧреЗрдо рдХреЛ рдкреИрд▓реЗрдЯ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ред
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рд▓реЗрдЦ:- рд╡рд┐рдЪрд╛рд░, рджреГрд╖реНрдЯрд┐, рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рд╡рд┐рдХрд▓реНрдк, рдордВрдЪ, рд╡рд┐рддрд░рдг рдореЙрдбрд▓, рдЖрджрд┐ред
- CRT / LCD рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрдбреНрд╕
- рд╣рдо рдПрдХрддрд╛ (UniLua) рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдЯрдХрдерд╛ рднрд╛рд╖рд╛ рдЙрдкрд╡рд╛рд╕
- рдкреИрд▓реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдлреАрдХрд╛ рдХреЗ рд▓рд┐рдП рдЫрд╛рдпрд╛ (рдПрдХ рд▓рд╛ NES)
- рд╕рдмрдЯреЛрдЯрд▓ (рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк)
- рдЖрдЗрдП рдкреАрдЖрд░ рдЗрдВрдбреА рдЧреЗрдореНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
- рдПрдХрддрд╛ рдореЗрдВ 2 рдбреА рдПрдирд┐рдореЗрд╢рди ("рдлреНрд▓реИрд╢ рдХреА рддрд░рд╣")
- рдПрдХрддрд╛ (рдХрдЯрдХ) рдореЗрдВ рдХрдЯ рджреГрд╢реНрдпреЛрдВ рдХреА рджреГрд╢реНрдп рдкрдЯрдХрдерд╛