본문 바로가기

유니티/Shader Study14

URP Shader Study #6 - Transparent Shader + Culling Transpaent 부터는 유니티가 자동으로 정렬해주지 않아서 사용자가 직접 정렬을 해줘야만 한다. 겹치는 픽셀을 픽셀을 어떻게 그려야하는지에 대한 선언을 해줘야한다. 프로퍼티스에 제어해줄 것을 꺼내준다 _MainTex("Main Texture", 2D) = "white" {} _AlphaCut("Alphacut", Range(0,1)) = .5 그 다음 Tags 에서 이것은 Transpaent 이라고 알려주자 "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" 인풋 어셈블리 레벨에서 UV 쓸거니까 선언해주고 float2 uv : TEXCOORD0; 지금 필요한 변수들을 꺼내어보자. float _Alph.. 2023. 12. 2.
URP Shader Study #5 -AlphaTest Shader Alphatest(Cutout) 이란? 불투명(Opaque)오브젝트를 그린 후 알파 테스트를 거쳐 픽셀값을 제거한 오브젝트가 그려지게 된다. 불투명 오브젝트를 그린 후에 알파테스트된 오브젝트를 렌더링 하는 것이 효율적이기 때문에 이를 별개의 Queue로 구분해서 (TransparentCutout 2450) 사용하게 된다. 먼저 tags를 다음과 같이 변경해준다 Tags { //Render type과 Render Queue를 여기서 결정합니다. "RenderPipeline"="UniversalPipeline" "RenderType"="TransparentCutout" "Queue"="AlphaTest" } 일단은 Alpha Test를 하기 위해선 쟤료로 사용할 수 있는 텍스쳐가 필요할텐데 그것은 전 강의를.. 2023. 12. 1.
URP Shader Study #4 - Texture Sampling hlsl에서는 fixed를 지원을 하지 않는다. 컬러 연산은 half면 충분하고 float는 그보다 훨씬 정밀한 range값 정도 사용할때 사용된다. (최소를 half라고 생각하면 된다) Texture Sampling - Coupled textures and samplers 샘플러와 텍스쳐를 한번에 선언하여 사용하는 경우이다. 메모리에 올려진 텍스쳐를 해당 픽셀에 맵핑하는 과정이라고 생각하면 된다. (정확히는 Texture filtering된 texel의 정보값을 해당 pixel에 맵핑하는 과정 먼저 프로퍼티스에서 텍스쳐를 제어할 수 있게끔 만들어준다. _MainTex("Texture2D", 2D) = "white" {} 그 다음 우리는 UV를 사용할 것이기 때문에 VertexBuffer에 UV를 불러와.. 2023. 11. 30.
URP Shader Study #3 - Properties에 Range 항목을 추가하고 색 밝기/변경으로 슬라이드로 조절하기 Properties에 Range 항목을 추가하고 색 밝기/변경으로 슬라이드로 조절하기 Properties에 Range 변수및 변수 타입 선언 Properties { _intensity("Range Sample", Range(0, 1)) = 0.5 // 색상의 세기를 최소 0에서 최대 1로 조절하는 변수 선언. 기본값은 0.5 _TintColor(“Tint Color”, color) = (1, 1, 1, 1) // color 지정하는 변수를 선언. 변수 타입은 color 기본값은 RGBA (1,1,1,1) } Shader내에 변수 타입 선언 //보간기를 통해 버텍스 셰이더에서 픽셀 셰이더로 전달할 정보를 선언합니다. struct VertexOutput { float4 vertex : SV_POSITION;.. 2023. 11. 29.