텍스쳐 한장을 받겠다.
sampler2D _MainTex; 으로 변수를 받는다.
tex2D 샘플러를 uv 좌표에 받아서 알베도나 필요한 곳에 넣어주는 키워드 !
해당 UV 에있는 색상 정보는 쓸수 있다.
프로퍼티시
_MainTex ("Albedo (RGB)", 2D) = "white" {}
"white" {} // 흰색 텍스쳐링의 기본값임
o.Albedo = (c.r + c.g + c.b) / 3 ; //흑백으로 만들겠다는것
//lerp(컬러1, 컬러2, 비율); // 컬러1 과 컬러2 비율 만큼 섞을때 사용함
void surf (Input IN, inout SurfaceOutputStandard o)
{
fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
fixed4 d = tex2D (_Tex2, IN.uv_Tex2);
o.Albedo = lerp(c.rgb, d.rgb, 0.5) //lerp(컬러1, 컬러2, 비율);
}
-----
이미지를 받을 구멍을 뚫어준다 .
알파가 있는 이미지(나뭇잎)를 넣어준다.
변수를 넣어주고,
struct Input
{
float2 uv_MainTex;
float2 uv_Tex2;
};
Input에 UV값을 하나 더 넣어준다.
lerp를 사용서 값을 넣어준다.
//lerp(컬러1, 컬러2, 비율); // 컬러1 과 컬러2 비율 만큼 섞을때 사용함
비율을 알파로도 가능함 !
반전은 1 - c.a 으로 가능
Shader "Custom/test"
{
Properties
{
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Tex2 ("Tex2", 2D) = "white" {}
_Amount ("Amount", Range(0,1)) = 0.5
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard fullforwardshadows
sampler2D _MainTex;
sampler2D _Tex2;
float _Amount;
struct Input
{
float2 uv_MainTex;
float2 uv_Tex2;
};
void surf (Input IN, inout SurfaceOutputStandard o)
{
// Albedo comes from a texture tinted by color
fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
fixed4 d = tex2D (_Tex2, IN.uv_Tex2);
o.Albedo = lerp(c.rgb, d.rgb, 1 - c.a);
}
ENDCG
}
FallBack "Diffuse"
}
'Unity > 그래픽스프로그래밍' 카테고리의 다른 글
0503 _ 그래픽스 움직이는 불 만들기 (0) | 2021.05.03 |
---|---|
0503 _ 그래픽스 _Time.y (y/20 , y , y*2, y*3) 써서 UV 맵 움직이기 (0) | 2021.05.03 |
0503_그래픽스 UV 만 출력해보기, UV 움직여보기 (0) | 2021.05.03 |
0503 _ 그래픽스 프로퍼티 뚫고, 그 값으로 출력하기 (0) | 2021.05.03 |
0503 _ 그래픽스 앞 부분 수업 내용 정리 (0) | 2021.05.03 |