Unity(121)
-
[Unity] URP 셰이더 Z Buffer와 반투명(Translucent)
Z BufferZ Buffer는 픽셀이 얼마나 멀리 있는지 거리 정보를 기록하는 이미지이다. 가장 가까운 곳은 0으로 완전히 검은색, 가장 멀리 있는 곳은 1로 흰색이다. 반투명 폴리곤은 Sorting(거리 순서로 그리는 방식)이나 Z Buffer로도 해결할 수 없는 문제가 있다.Z Buffer의 정밀도는 플랫폼에 따라 다르지만 보통 16비트나 32비트 정밀도를 사용한다. 이 정도면 검은색에서 흰색 사이의 그라데이션 계조가 매우 풍부해서 미세한 거리 차이도 색상으로 구분할 수 있다. 하지만 구분할 수 없을 정도로 비슷한 거리의 폴리곤이면 Z Fighting이 일어나게 된다. 반투명(Translucent)반투명 재질은 Z Buffer에 기록하는 Z Write를 끄고 렌더링 해야 한다. Z Test는 ..
2023.06.07 -
[Unity] URP 셰이더 Sub Graph, Custom Lighting, Keyword
서브 그래프유니티 URP에는 원하는 노드들을 커스텀으로 묶어서 저장할 수 있는 '서브 그래프' 기능이 있다. 만들어진 Sub Graph는 Create Node 리스트에서 찾아볼 수 있다. 저장된 이름은 "IsoscelesTrapezoid"이다. Sub Graph의 장점셰이더 그래프의 가독성이 좋아진다.그래프의 재활용을 통해 작업 효율이 향상된다.유지 보수 측면에서 좋다. 특정 기능 서브 그래프가 여기저기 쓰였는데 수정을 해야 한다면 하나만 수정해도 전체에 반영될 수 있다. 셰이더 그래프 커스텀 라이팅Custom Function 노드 활용Unlit 셰이더에 라이팅을 적용하려면 [Custom Function] 노드가 필요하다.[Custom Function]은 HLSL 코드를 작성해서 노드의 행동을 정의..
2023.06.05 -
[Unity] 텍스쳐와 UV를 이용한 셰이더 (Tiling, Offset, Scrollout)
Tiling & Offset 셰이더로 만들기Tiling과 Offset 적용을 변수 프로퍼티 추가로 셰이더로 만들 수 있다. [Tiling And Offset]은 유니티 내에 기본 노드가 있어서 추가하여 연결만 해주면 된다. Tiling & Offset_ScrollSpeedScrollSpeed 변수가 추가된 셰이더이다. Tiling & Offset_ScrollSpeed2[Tiling And Offset] 노드에서 Offset은 Vector2 타입이라 [Vector 2] 노드를 만들었고 가장 처음 [Time] 노드도 만들었다. [Fraction] 노드는 Time 값이 전달되는 중간에 소수점 이하의 값만 얻어오기 위해 넣는다. Time 값은 0~1 사이에서 계속 증가하다가 0으로 초기화되는 상황을 반복한다..
2023.06.05 -
[Unity] URP 셰이더 그래프 기본적인 노드와 응용 (Add/Multiply/Divide/Pow/Saturate/Clamp/Abs)
Add / Multiply / Divide각각 [Add], [Multiply], [Divide]인데, [Add]는 말 그대로 색상을 더해주는 기능이고 [Multiply]는 함수 기울기가 급격해지도록(여기서는 색상이 급격하게 변하도록) 만들어준다. [Divide]는 [Multiply]의 반대로, [Multiply]에 4를 넣어 기울기가 4배가 된다면, [Divide]에 4를 넣으면 기울기가 0.25배가 된다. PowPow는 지수를 말한다. x의 몇 제곱인데, Pow 값이 1 이상이면 흔히 아는 급격하게 기울기가 커지는 그래프가 만들어지지만, Pow 값이 1보다 작다면 서서히 기울기가 작아지는 그래프가 만들어진다. Saturate[Saturate]는 0 이하를 0으로 만들고 1 이상을 1로 만들어주는 ..
2023.06.03 -
[Unity] 간단한 URP 셰이더 그래프 만들기
OpaqueHDR 적용하기URP 프로젝트에서 메테리얼 하나, Unlit Shader Graph 하나를 만들고 캡슐 에셋에 적용한다. Unlit Shader Graph에서 BaseColor 프로퍼티를 하나 만든 후 [Mode]를 [HDR]로 바꾼다. 이후 색을 바꾸면 HDR 색상으로 적용되는 것을 볼 수 있다. 조정 슬라이드 만들기만약 Unlit 셰이더를 Lit으로 바꾸고 싶다면, 셰이더 그래프 편집 창에서 오른쪽에 보이는 [Graph Inspector]에서 [Material]을 [Lit]으로 바꿔주면 된다. float 프로퍼티를 추가하고 각각 Smoothness, Metallic으로 [Slide] 모드를 적용하면 슬라이드로 원하는 값을 넣을 수 있게 된다. 스페큘러 사용하기Metallic으로 조절..
2023.06.01 -
[Unity] URP 셰이더 그래프 기초 개념
ShaderGraphURP에서 생성할 수 있는 셰이더 그래프 종류를 볼 수 있다.Lit Shader Graph: 빛을 받고 그림자를 만들 수 있는 셰이더Unlit Shader Graph: 빛과 무관하게 텍스쳐 그대로 보여주는 셰이더 셰이더 그래프 [Inspector] 창에서 [View Generated Shader]를 누르면 비주얼 스튜디오에서 코드를 볼 수 있다. 마스터 스택은 "Vertex"와 "Fragment"로 분리되어 있는데 각각 Vertex Shader와 Fragment Shader를 말한다. Precision[Graph Inspector]를 보면 [Precision]이라고 정밀도를 선택할 수 있는 메뉴가 있다.Single: float과 같으며 32비트의 매우 높은 고정밀도이다. Def..
2023.05.26