# Part 11 | Lit 셰이더의 추가 기능과 응용기능을 사용해 봅시다

## 01 Height Map (Parallax Mapping)

![](https://velog.velcdn.com/images/biomatrix117/post/22614de4-4fdc-42aa-9df4-ce62af9546ed/image.png)

**Height Map** : 높이를 저장하고 있는 그레이 스케일의 텍스쳐를 통칭

* 유니티 Lit Shader에선 Parralax의 맵으로 사용
* 실제 코드로 구현하긴 복잡하지만, 미리 구현된 Parallax Mapping을 사용하면 간단하게 구현 가능
* Parallax Maping의 출력을 모든 텍스쳐의 UV에 연결해주고, Amplitude를 20 정도로 올려주면 효과가 잘 보인다.

> Parallax Mapping(시차 맵핑)?\
> 시야각에 따라 UV를 이동시켜 깊이감을 흉내내는 기법.\
> 실제로 vertex를 이동시키지는 않고, Normal map으로 표현하기 힘든 기울어진 표면에서 입체감을 강화시켜주는 효과를 보여줌.\
> 기울기에 의한 차폐까지 계산되는 Paorallax Occlusion이라는 기술도 있음.

## 02 Detail Map

![](https://velog.velcdn.com/images/biomatrix117/post/c9ceba16-35e8-414d-9b3c-833b6580eee6/image.png)

**Detail Map** : 근접했을 때 흐려지는 텍스쳐의 디테일을 보완하고자 만든 기법

* 내장 Lit 셰이더 Inspector > Detail Inputs에서 사용할 수 있는 기능이다.
* Tiling And Offset으로 Tiling을 (20,20) 적용한 DirtDetail 텍스쳐를 Blend 노드로 합쳐준다
  * 이때 Detail Map은 결과물의 밝기의 변화를 주지 않기 위해 sRGB 옵션을 꺼야 하고, 이미지도 회색이다.
  * Detail Map의 Normal Map을 블랜딩할 땐 Normal Blend 노드를 사용한다. (Normal Map은 데이터 텍스쳐이기 때문에, 그냥 블랜딩으로 합치면 값이 손실되거나 옳지 않은 벡터가 나올 수 있다)
* 사람의 모공 등에서 사용할 수 있다
  * Lit Shader > Detail Inputs > Maks 옵션이 이때 쓰인다. 입술과 같은 부분은 Detail Map이 나오지 않도록 Masking을 할 수 있다.

## 03 \[응용하기] 돌이 젖고 마르는 기능을 만들어 봅시다

돌이 젖는다는 것은,

* 돌 위에 물 레이어가 한 겹 올라가는 것
* 물 레이어가 돌의 요철을 메꾸어 매끈하게 만들어 정반사가 심해지게 만든다
* 물의 굴절율에 따라 많은 양의 빛을 반사해서 표면이 어두워진다
* 물과 표면 사이에서 한 번 더 내부적으로 전반사가 이루어져 색이 강해진다

정리하면,

* 텍스쳐가 어두워지고
* 색이 진해지고
* 정반사가 높아진다

![](https://velog.velcdn.com/images/biomatrix117/post/fe4dad2f-5f8f-4aab-94b3-897bb1ddc3fa/image.png)

* Base Color에 Base Color를 곱해서 색을 진하고 어둡게 만들고,
* Smoothness를 0.8로 올려서 정반사를 올리는 것만으로

간단하고 효율적으로 젖은 표면을 만들 수 있다.

![](https://velog.velcdn.com/images/biomatrix117/post/66114684-3d33-4fc5-a6be-ef4cc1dd9ecf/image.png)

* Polybrush로 윗면을 칠하고
* Vertex Color의 칠한 색깔 채널로
  * 원래 색 / Multiply로 어둡게 만든 색을 Lerp하고
  * Smoothness에 연결해주면

색을 칠한 윗 부분만 어두워지고 정반사가 늘어난다.

> **Troubleshooting**\
> 책에서 말하는대로 윗부분만 어두워지는게 아니라 아래 부분도 어두워지길래 다시 한 번 확인해봤더니, 책에선 색을 칠하지 않은 부분은 검은색으로 칠해져있었다. 나는 검은색을 칠해두지 않아서 윗부분과 아래 부분의 차이가 없었다.

![](https://velog.velcdn.com/images/biomatrix117/post/a6f0ab83-c14c-4cf7-9f14-858492ae64d1/image.png)

Lerp에 연결하는 값에 Multiply로 계수를 조절해줄 수도 있다.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lazyartisan.gitbook.io/note/main-page/books/urp/part-11-or-lit.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
