Shader 섹션 41Image 구성 요소의 색상 변경에 해당되는 Shader

6848 단어 Unityshadertech

쉐더를 할 시간이 얼마 안 남았어요.


하마터면 Shader를 할 뻔했다.쉐더를 할 시간이 많지 않을 것 같아서요.
100부까지 열심히 하겠습니다.10년이 걸려도 돼요.
100편의 글을 배웠다면 초보자라도 이해할 수 있을 것 같아요.
이렇게 하는 거야.
※ 초보자는 필기 레벨로 기록
기술 보도로는 도움이 안 될 것 같습니다.

미리 준비하다


아래 참조
Shader 파트 1Unite 2017 애니메이션을 볼 때가 많지 않아요. (기초지식~종이 스크레이퍼로 색깔 바꾸기)

데모


우선 문제의 정의다.Unlit/Texture Shader용 Material을 준비합니다.
그 Material은 Image 어셈블리의 Material에 적용됩니다.
적용 후 Color를 변경하는 것은 다음 GIF입니다.

색깔을 바꿔도 반응이 없다.
Shader에 대해 적절히 기술하면 잘 될 거야.
다음 GIF는 Material만 첨부된 경우와 Sprite만 첨부된 경우를 비교합니다.
소재만 부착된 Image 어셈블리의 Color의 변경 스프릿과 마찬가지로 잘 반영됐다.

Shader 샘플


Shader "Custom/WorkOnImageComponent"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
    }
    SubShader
    {
        Tags
        {
            "RenderType"="Tranparent"
        }
        Blend SrcAlpha OneMinusSrcAlpha

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
                float4 color : COLOR;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
                float4 color : COLOR;
            };

            sampler2D _MainTex;

            v2f vert(appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = v.uv;
                o.color = v.color;
                return o;
            }

            fixed4 frag(v2f i) : SV_Target
            {              
                float4 finalColor = tex2D(_MainTex,i.uv);
                //頂点カラーを使用する
                float4 vertexColor = i.color;
                return finalColor * vertexColor;
            }
            ENDCG
        }
    }
}
하는 일은 매우 간단하다. 단지 정점 색깔을 종이 파쇄기에 사용해서 최종 출력의 픽셀과 곱할 뿐이다.
Image 어셈블리의 Color가 교점 색상을 변경했습니다.

참조 링크


Access UI Image Color in Shader
https://unity-yuji.xyz/material-xxx-doesnt-have-yyy-property/

좋은 웹페이지 즐겨찾기