Skip to content

Instantly share code, notes, and snippets.

@unitycoder
Forked from lonewolfwilliams/cheatsheet.shader
Created October 17, 2021 19:27
Show Gist options
  • Select an option

  • Save unitycoder/e277f085e1a834dc4bb4c365533f2f03 to your computer and use it in GitHub Desktop.

Select an option

Save unitycoder/e277f085e1a834dc4bb4c365533f2f03 to your computer and use it in GitHub Desktop.
A cheatsheet and or boilerplate for CG / shaderlab in Unity
Shader "Unlit/ScreenFade"
{
Properties
{
//https://docs.unity3d.com/Manual/SL-Properties.html
//[HideInInspector]
//[NoScaleOffset]
//[Normal]
//[HDR]
//[Gamma]
//[PerRendererData]
//name ("display name", Range (min, max)) = number
//name ("display name", Float) = number
//name ("display name", Int) = number
//name ("display name", Color) = (number,number,number,number)
//name ("display name", Vector) = (number,number,number,number)
//name ("display name", 2D) = "defaulttexture" {}
//name ("display name", Cube) = "defaulttexture" {}
//name ("display name", 3D) = "defaulttexture" {}
_MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
//https://docs.unity3d.com/Manual/SL-SubShaderTags.html
//Tags{ "RenderType"="" "DisableBatching"="" "ForceNoShadowCasting"="" "IgnoreProjector"="" "CanUseSpriteAtlas"="" "PreviewType"="" }
Tags { "RenderType"="Transparent" "Queue"="Transparent" "ForceNoShadowCasting"="true"}
LOD 100
Pass
{
//https://docs.unity3d.com/Manual/SL-SubShaderTags.html
//Cull Back | Front | Off
//ZTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always)
//ZWrite On | Off
//Offset OffsetFactor, OffsetUnits
//Blend sourceBlendMode destBlendMode
//Blend sourceBlendMode destBlendMode, alphaSourceBlendMode alphaDestBlendMode
//BlendOp colorOp
//BlendOp colorOp, alphaOp
//AlphaToMask On | Off
//ColorMask RGB | A | 0 | any combination of R, G, B, A
ZWrite Off
//https://docs.unity3d.com/Manual/SL-PassTags.html
//Tags{ Lightmode="" }
Tags {Lightmode="Always"}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
// make fog work
//#pragma multi_compile_fog
#include "UnityCG.cginc"
//CG keywords
//http://developer.download.nvidia.com/CgTutorial/cg_tutorial_appendix_d.html
//CG library functions:
//http://developer.download.nvidia.com/CgTutorial/cg_tutorial_appendix_e.html
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
//UNITY_FOG_COORDS(1)
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
//UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
// sample the texture
fixed4 col = tex2D(_MainTex, i.uv);
// apply fog
//UNITY_APPLY_FOG(i.fogCoord, col);
return col;
}
ENDCG
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment