// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'


///<summary>

///Alpha-VertexLit.shader Unity BuiltIn Shader 참고문헌

///Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)

///https://docs.unity3d.com/kr/530/Manual/SL-SurfaceShaderTessellation.html

///link 1 : https://inkiu0.gitbooks.io/codenote/content/alphatest.html

///link 2 : https://sourcetip.tistory.com/119

///link 3 : https://stackoverflow.com/questions/746899/how-to-calculate-an-rgb-colour-by-specifying-an-alpha-blending-amount

///link 4 : https://chipmunk-plump-plump.tistory.com/125

///link 5 : http://rapapa.net/?p=2723

///</summary>




Shader "NeckDoris Labs/NShader4D" {

Properties{

_Color("Main Color (RGB)", Color) = (1,1,1,0)

_MainTex("Texture(RGB)", 2D) = "white" {}

_Bump("Normals", 2D) = "bump" {}

}

SubShader{

Tags { "Queue" = "Transparent" "RenderType" = "Opaque" "IgnoreProjector" = "False" "PreviewType"="Cube" }

LOD 200

Pass {

CGPROGRAM

#pragma vertex vertex

#pragma fragment frag

#include "UnityCG.cginc"


sampler2D _MainTex;

sampler2D _Bump;


struct appdata {

float4 vertex : POSITION;

float2 texcoord : TEXCOORD0;

float3 normal : NORMAL;

float4 tangent : TANGENT;

};

//link <summary>https://darkcatgame.tistory.com/84' target="_blank">https://darkcatgame.tistory.com/84</summary>

struct v2f 

float4 pos : POSITION;

float2 uv : TEXCOORD0;

float2 normal : NORMAL;

};

///link <summary>https://m.blog.naver.com/sorkelf/40157218010</summary>

///link <summary>https://docs.unity3d.com/kr/2019.4/Manual/SL-VertexFragmentShaderExamples.html</summary>

v2f vert(appdata v) {

v2f o;

o.pos = UnityObjectToClipPos(v.vertex);

o.uv = TRANSFROM_TEX(v.texcoord, _MainTex);

o.normal = UnityObjectToClipPos(float4(v.normal, 0));

return o;

}

//link <summary>https://darkcatgame.tistory.com/84' target="_blank">https://darkcatgame.tistory.com/84</summary>

float4 frag(v2f i) : TARGET {

float uv = _Color * tex2D(_MainTex, i.uv);

float normal = _Color * tex2D(_Bump, i.normal);


return (float4)uv + normal;

}

ENDCG

}

}

Fallback "Diffuse"

}



이거 너무 어렵더라고...,
쉽게 쉽게 이걸 왜쓰는지 공부하려는데 블로그 왠만한거 다 보았는데,
너무 복잡해... 정신나갈것 같해...,
6년전에 게을리한게 후회됨...