본문 바로가기

전체 글63

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.
URP Shader Study #2 (pragma, Rendering Pipeline, hlsl, 코드리뷰) 구글에 unity shader outline glow 라는 식으로 쳐보면 R&D하거나 공부하는 자료들을 많이 찾아볼 수 있다. 레거시 코드에서는 CG를 많이 사용했는데 요즘은 hlsl을 많이 사용하게 된다. pragma 컴파일러 입력을 처리하는 방법을 지정하는 문법 체계이다. C언어에서 pragma는 컴파일러가 입력을 처리하는 방법을 지정하는 언어 문법이며 이는 셰이더가 어떻게 컴파일 될지를 지시하는 전처리 문법이다. 우리가 작성하는 쉐이더로 PC나 Mobile등 여러가지 플랫폼으로 사용하기 위해 컴파일을 해주는 지지자임 분기를 만들거나 다른 선언자가 들어가는 둥 여러가지 사용을 할 때 프라그마 지지자를 통해 사용하게 된다. ## 지금 URP에서는 필요한 것들을 사용자가 직접 인클루트 시켜야한다. //c.. 2023. 11. 29.