# Part 06 | Shader Graph 기본 조작하기 2 : 분해와 재조립, 노드와 색상의 연산과 감마 코렉션

## 01 노드의 값을 분해하고 재조립하기 (Split과 Combine)

**Split**

![](https://velog.velcdn.com/images/biomatrix117/post/381cbc05-9717-40d2-b504-82d2d45f4f23/image.png)

XYZ에 들어간 값은, RGBA에 차례대로 배정. A에는 아무런 값도 안 들어갈 것. R에는 1, G,B에는 0 들어갈 거고 A는 자동으로 0될 것.

**Combine**

값을 다시 합쳐줄 수 있다

**셰이더 그래프 정리하는 법**

![](https://velog.velcdn.com/images/biomatrix117/post/671b40da-f247-4987-9e65-7769a7490fd5/image.png)

* 노드 프리뷰 창 접기 : 프리뷰에 마우스 올리고 화살표 클릭
* 한 번 더 접기 : 노드 제목 오른쪽 화살표 누르면 선택하지 않은 옵션 숨겨짐. 동시에 드래그한 후에 하나 접으면 다 접힘.
* 중간 연결 노드 넣기 : 선 선택하고 더블 클릭
* 그룹 만들기 : 노드 여러개 선택하고 `Ctrl+G` 누르거나 우클릭 > Group Selection. 그룹에 다른 노드 추가할 땐 노드를 그룹 안으로 드래그&드롭. 그룹 안에 있는 노드 빼내려면 `Ctrl+U` 누르거나 우클릭 > Ungroups Selection
* Sticky Note : 우클릭 > Create Sticky Note. 도움말 적어놓기. 우클릭해서 옵션 설정 가능.

## 02 노드(숫자)의 연산

더하기 : Add 노드 곱하기 : Multiply 노드 빼기 : Substract 노드 나누기 : Divide 노드

반전 : One Minus 노드 블랜드 : Blend 노드

숫자가 1을 넘어가면? : 1 이상일 때 Bloom 효과 발생하도록 Post Process 상태가 되어있다면 (처음 프로젝트 만들 때 Standard로 만들었다면) 빛나는 것처럼 보인다.

## 03 Color의 연산과 감마 코렉션

RGB(0.5,0.5,0.5)인 Vector3 노드 2개를 Add 노드로 합치면 흰색이 되지만, RGB(0.5,0.5,0.5)인 Color 노드 2개를 합치면 약간 밝은 회색이 된다. (0이나 1이면 상관 없음)

굳이 안 더해도 Color 회색이 숫자 0.5로 만든 회색보다 어둡다. Color에는 sRGB 처리가 돼있어서 숫자 회색의 Linear와는 다르기 때문. 이를 사람의 색 감각에 맞추기 위한 색상보정인 '감마 코렉션'이라 한다.

> **감마 코렉션?** \
> 인간 눈은 어두운 부분의 변화에 민감하기 때문에, 모니터는 인간의 감각에 맞추기 위해 중간 부분을 어둡게 끌어내림. 이것을 감마(Gamma)라 부름.

하지만 그렇게 되면 원래 이미지보다 어두워지기 때문에, color는 sRGB 공간이라는 밝은 영역으로 저장됨. 셰이더로 불러올 때 감마가 연산되어 다시 원래 색으로 돌아옴.

Color를 제대로 연산하려면 Color 노드를 Linear 공간으로 만들어야 함. Colorspace Conversion 노드를 만들고, Linear > RGB로 컬로 공간 변환을 하면 컬러가 정상적으로 돌아온다.

![](https://velog.velcdn.com/images/biomatrix117/post/03052b67-76ef-43bf-aea5-f26b9371bd9c/image.png)

여기까지 잘 이해 안되면, '컬러는 무조건 Colorspace Conversion으로 Linear > RGB로 해주는게 옳은 계산'이라고 외워도 된다. (유니티 3D URP의 기본 컬러 공간이 Linear라서 생기는 문제다. 2D URP로 프로젝트를 만들면 컬러 공간이 Gamma가 되면서 이런 문제가 발생하지 않는다.)


---

# 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-06-or-shader-graph-2.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.
