Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Framebuffer fetch shader in Unity
#include "UnityCG.cginc"
#pragma vertex vert
#pragma fragment frag
// in practice: only compile for gles2,gles3,metal
#pragma only_renderers framebufferfetch
struct appdata_t {
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
};
struct v2f {
float4 vertex : SV_POSITION;
fixed4 color : TEXCOORD0;
};
v2f vert (appdata_t v)
{
v2f o;
o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
o.color.rg = v.texcoord*4.0;
o.color.ba = 0;
return o;
}
void frag (v2f i, inout fixed4 ocol : SV_Target)
{
i.color = frac(i.color);
ocol.rg = i.color.rg;
ocol.b *= 1.5;
}
@crazii

This comment has been minimized.

Copy link

@crazii crazii commented Aug 7, 2020

Hey Aras, how do I check if the shader is supported? if I have an optional pass that uses framebuffer fetch, and the target platform doesn't supported it, then the whole shader is not supported?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment