Синтаксис:
Используется csharp
Shader "Custom\Pixelate" {
Properties {
_CellSize ("Cell Size", Vector) = (0.02,0.02,0,0)
}
SubShader {
LOD 200
Tags { "QUEUE" = "Transparent" "RenderType" = "Opaque" }
GrabPass {
"_PixelationGrabTexture"
}
LOD 200
GpuProgramID 9664
13 Program "vp" {
SubProgram "d3d11 " {
"vs_4_0
#version 330
#extension GL_ARB_explicit_attrib_location : require
#extension GL_ARB_explicit_uniform_location : require
#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
#define UNITY_UNIFORM
#else
#define UNITY_UNIFORM uniform
#endif
#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
#if UNITY_SUPPORTS_UNIFORM_LOCATION
#define UNITY_LOCATION(x) layout(location = x)
#define UNITY_BINDING(x) layout(binding = x, std140)
#else
#define UNITY_LOCATION(x)
#define UNITY_BINDING(x) layout(std140)
#endif
layout(std140) uniform UnityPerDraw {
mat4x4 unity_ObjectToWorld;
vec4 unused_0_1[6];
};
layout(std140) uniform UnityPerFrame {
vec4 unused_1_0[17];
mat4x4 unity_MatrixVP;
vec4 unused_1_2[2];
};
in vec4 in_POSITION0;
out vec4 vs_TEXCOORD0;
vec4 u_xlat0;
vec4 u_xlat1;
void main()
{
u_xlat0 = in_POSITION0.yyyy * unity_ObjectToWorld[1];
u_xlat0 = unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
u_xlat0 = unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
u_xlat0 = u_xlat0 + unity_ObjectToWorld[3];
u_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
gl_Position = u_xlat0;
u_xlat1.xyz = u_xlat0.xwy * vec3(0.5, 0.5, -0.5);
vs_TEXCOORD0.zw = u_xlat0.zw;
vs_TEXCOORD0.xy = u_xlat1.yy + u_xlat1.xz;
return;
}"
}
}
Program "fp" {
SubProgram "d3d11 " {
"ps_4_0
#version 330
#extension GL_ARB_explicit_attrib_location : require
#extension GL_ARB_explicit_uniform_location : require
#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
#define UNITY_UNIFORM
#else
#define UNITY_UNIFORM uniform
#endif
#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
#if UNITY_SUPPORTS_UNIFORM_LOCATION
#define UNITY_LOCATION(x) layout(location = x)
#define UNITY_BINDING(x) layout(binding = x, std140)
#else
#define UNITY_LOCATION(x)
#define UNITY_BINDING(x) layout(std140)
#endif
layout(std140) uniform PGlobals {
vec4 unused_0_0[2];
vec4 _CellSize;
};
uniform sampler2D _PixelationGrabTexture;
in vec4 vs_TEXCOORD0;
layout(location = 0) out vec4 SV_Target0;
vec2 u_xlat0;
void main()
{
u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
u_xlat0.xy = u_xlat0.xy / _CellSize.xy;
u_xlat0.xy = roundEven(u_xlat0.xy);
u_xlat0.xy = u_xlat0.xy * _CellSize.xy;
SV_Target0 = texture(_PixelationGrabTexture, u_xlat0.xy);
return;
}"
}
}
}
}
Properties {
_CellSize ("Cell Size", Vector) = (0.02,0.02,0,0)
}
SubShader {
LOD 200
Tags { "QUEUE" = "Transparent" "RenderType" = "Opaque" }
GrabPass {
"_PixelationGrabTexture"
}
LOD 200
GpuProgramID 9664
13 Program "vp" {
SubProgram "d3d11 " {
"vs_4_0
#version 330
#extension GL_ARB_explicit_attrib_location : require
#extension GL_ARB_explicit_uniform_location : require
#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
#define UNITY_UNIFORM
#else
#define UNITY_UNIFORM uniform
#endif
#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
#if UNITY_SUPPORTS_UNIFORM_LOCATION
#define UNITY_LOCATION(x) layout(location = x)
#define UNITY_BINDING(x) layout(binding = x, std140)
#else
#define UNITY_LOCATION(x)
#define UNITY_BINDING(x) layout(std140)
#endif
layout(std140) uniform UnityPerDraw {
mat4x4 unity_ObjectToWorld;
vec4 unused_0_1[6];
};
layout(std140) uniform UnityPerFrame {
vec4 unused_1_0[17];
mat4x4 unity_MatrixVP;
vec4 unused_1_2[2];
};
in vec4 in_POSITION0;
out vec4 vs_TEXCOORD0;
vec4 u_xlat0;
vec4 u_xlat1;
void main()
{
u_xlat0 = in_POSITION0.yyyy * unity_ObjectToWorld[1];
u_xlat0 = unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
u_xlat0 = unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
u_xlat0 = u_xlat0 + unity_ObjectToWorld[3];
u_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
gl_Position = u_xlat0;
u_xlat1.xyz = u_xlat0.xwy * vec3(0.5, 0.5, -0.5);
vs_TEXCOORD0.zw = u_xlat0.zw;
vs_TEXCOORD0.xy = u_xlat1.yy + u_xlat1.xz;
return;
}"
}
}
Program "fp" {
SubProgram "d3d11 " {
"ps_4_0
#version 330
#extension GL_ARB_explicit_attrib_location : require
#extension GL_ARB_explicit_uniform_location : require
#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
#define UNITY_UNIFORM
#else
#define UNITY_UNIFORM uniform
#endif
#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
#if UNITY_SUPPORTS_UNIFORM_LOCATION
#define UNITY_LOCATION(x) layout(location = x)
#define UNITY_BINDING(x) layout(binding = x, std140)
#else
#define UNITY_LOCATION(x)
#define UNITY_BINDING(x) layout(std140)
#endif
layout(std140) uniform PGlobals {
vec4 unused_0_0[2];
vec4 _CellSize;
};
uniform sampler2D _PixelationGrabTexture;
in vec4 vs_TEXCOORD0;
layout(location = 0) out vec4 SV_Target0;
vec2 u_xlat0;
void main()
{
u_xlat0.xy = vs_TEXCOORD0.xy / vs_TEXCOORD0.ww;
u_xlat0.xy = u_xlat0.xy / _CellSize.xy;
u_xlat0.xy = roundEven(u_xlat0.xy);
u_xlat0.xy = u_xlat0.xy * _CellSize.xy;
SV_Target0 = texture(_PixelationGrabTexture, u_xlat0.xy);
return;
}"
}
}
}
}