shader

UnityでToon
Toonシェーダーをやってみる。 メニューからインポートすると、 Assets > Import Package > Effects Assetsが現れる。 Standard Assets/Effects/ToonShading Toon/Lit Standard Assets/Effects/ToonShadingのshaderを自分のフォルダにコピーして改造する。 #UsePassを展開して改造準備 Shader "MyToon/Lit Outline" { Properties { _Color ("Main Color", Color) = (0.5,0.5,0.5,1) _OutlineColor ("Outline Color", Color) = (0,0,0,1) _Outline ("Outline width", Range (.002, 0.03)) = .005 _MainTex ("Base (RGB)", 2D) = "white" {} _Ramp ("Toon Ramp (RGB)", 2D) = "gray" {} } SubShader { Tags { "RenderType"="Opaque" } UsePass "Toon/Lit/FORWARD" UsePass "Toon/Basic Outline/OUTLINE" } Fallback "Toon/Lit" } Toon/Litのinspectorの

UnityのShaderを書いてみる
アルファブレンディング シャドウキャスター シャドウレシーバー なシェーダー。 基本 新規作成 Create -> Shader -> UnLitShader CustomShader Shader "CustomShader" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag // make fog work #pragma multi_compile_fog #include "UnityCG.cginc" 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.

UnityのUsePassを追う
下記のUnityの半透明シェーダーがいったいどういうメカニズムなのかを調べる。 Shaderの元ネタはこちら Unity で Transparent/Diffuse で描画順が崩れてしまう際の対処法 Shader "Transparent/Diffuse ZWrite" { Properties{ _Color("Main Color", Color) = (1,1,1,1) _MainTex("Base (RGB) Trans (A)", 2D) = "white" {} } SubShader{ Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" } LOD 200 // extra pass that renders to depth buffer only Pass{ ZWrite On ColorMask 0 } // paste in forward rendering passes from Transparent/Diffuse UsePass "Transparent/Diffuse/FORWARD" } Fallback "Transparent/VertexLit" } 2パス描画になる。