Vertex Shader

Unity3D/Shader 2020. 12. 21. 15:23
반응형
Shader "Custom/VertexShader"
{
    //http://suyeongpark.me/archives/2173
    //https://docs.unity3d.com/kr/530/Manual/SL-Pass.html
    //https://docs.unity3d.com/kr/2018.4/Manual/SL-BuiltinFunctions.html
    //https://docs.unity3d.com/Manual/SL-VertexProgramInputs.html
    //https://docs.unity3d.com/kr/current/Manual/SL-VertexProgramInputs.html
    //https://docs.unity3d.com/kr/530/Manual/SL-ShaderPrograms.html
    //https://docs.unity3d.com/kr/530/Manual/SL-BuiltinIncludes.html
    //https://m.blog.naver.com/PostView.nhn?blogId=ateliersera&logNo=220405036320&proxyReferer=https:%2F%2Fwww.google.com%2F
    //https://docs.microsoft.com/ko-kr/windows/win32/direct3dhlsl/dx-graphics-hlsl-semantics?redirectedfrom=MSDN
    //https://funfunhanblog.tistory.com/46

    SubShader
    {
        //Pass 블록은 오브젝트 지오메트리를 한 번만 렌더링하도록 합니다.
        Pass{
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            struct v2f {
                float4 pos : SV_POSITION;
                fixed4 color : COLOR;
            };

            v2f vert(appdata_base v){
                v2f o;
                    //https://chulin28ho.tistory.com/539
                o.pos = UnityObjectToClipPos(v.vertex); //오브젝트 공간의 한 점을 동질적인 좌표에 있는 카메라의 클립 공간으로 변환합니다. mul(UNITY_MATRIX_MVP, float4(pos, 1.0))과 같으며, 이를 대신하여 사용해야 합니다
                o.color.xyz = v.normal * 0.5 + 0.5;
                o.color.w = 1.0;
                return o;
            }
            
            fixed4 frag (v2f i): SV_Target{
                return i.color;
            }
            ENDCG
        }
        
    }
}
반응형

'Unity3D > Shader' 카테고리의 다른 글

Diffuse Warping  (0) 2020.12.21
끊어지는 음영  (0) 2020.12.21
Introduction to Shaders in Unity  (0) 2020.06.16
Unity Shader 기초강좌 링크  (0) 2020.05.26
게임용 텍스쳐 포맷 이론  (0) 2020.05.26
: