URP(27)
-
[Unity] 나무와 풀이 바람에 영향을 받는 것처럼 보이는 셰이더 만들기
나무와 풀에 적용될 바람 셰이더를 이전에 만든 줄 알았는데 없어서 글을 쓰게 되었다.아래의 유니티 공식 영상을 참고하였다. 모델을 구하거나 셰이더그래프를 만드는 방법은 해당 영상 앞부분을 살펴보거나 다른 데에서 찾을 수 있기 때문에 생략한다. Fragment ShaderBush BaseMap 텍스쳐를 [Sample Texture 2D] 노드로 가져왔고 색을 수정해야할 오브젝트가 있어서 [BaseColor] 프로퍼티를 만들어 곱한 후 [Base Color]에 연결했다.NormalMap도 가져와서 [Normal Strengh]를 높여야 해서 해당 노드를 사용했고 최종적으로 [Normal]에 연결했다.여기서, 노말의 [Sample Texture 2D] - [Type] - [Normal]로 설정을 해야 노..
2024.07.09 -
[Unity] URP 프레넬 셰이더(Fresnel Shader) 응용 2 (홀로그램 만들기)
[Unity] URP 프레넬 셰이더(Fresnel Shader) 응용 (조명 효과, 깜빡이는 조명 만들기) HDR과 Bloom 효과는 저사양의 모바일 게임에서 사용하거나 레트로한 느낌을 주기 힘들기 때문에 프레넬 효과를 이용하여 만들어 볼 것이다. 조명 효과 Street Light 3D Model Free Download | 3DModelsCC0 Free Stre lightbakery.tistory.com 이전 글에 이어서, 가로등 조명 효과 셰이더에서 [One Minus] 노드를 빼면, 반대가 되므로 가운데가 투명하고 바깥으로 갈수록 진해지는 보호막, 비눗방울 효과가 생기게 된다. 예제 공룡 뼈에 간단하게 홀로그램을 적용하기 위해 [Fresnel Effect] 노드를 연결해보면, [HalfLambert..
2023.07.20 -
[Unity] URP 프레넬 셰이더(Fresnel Shader) 응용 (조명 효과, 깜빡이는 조명 만들기)
HDR과 Bloom 효과는 저사양의 모바일 게임에서 사용하거나 레트로한 느낌을 주기 힘들기 때문에 프레넬 효과를 이용하여 만들어 볼 것이다. 조명 효과 Street Light 3D Model Free Download | 3DModelsCC0 Free Street Light 3D Model. Public Domain License. No credit or attribution required. www.3dmodelscc0.com 책의 예제와 같이, 무료 가로등 에셋을 받아서 프레넬 효과를 적용해 줄 Sphere 하나를 가로등에 씌워준다. 조명 효과를 줄 것이기 때문에 [Surface Type] - [Transparent], [Blending Mode] - [Additive]를 적용시켜 준다. [Fresne..
2023.07.20 -
[Unity] URP 셰이더 프레넬 셰이더(Fresnel Shader)
프레넬(Fresnel) 효과는 게임에서 배경과 캐릭터의 분리나 강조를 위해 또는 선택되었을 때 프레넬 효과를 과장하여 사용한다. 테두리를 강조하는 비슷한 효과인 림 라이트도 프레넬로 만든다. Fresnel Shader 만들기 프레넬(Fresnel)은 물체가 기울어질수록 반사가 심해진다. 이 말은 내가 바라보는 방향(벡터)에 따라 노말 벡터와 계산으로 반사가 달라져야 한다는 것이고, 따라서 [Normal Vector]와 [View Direction]의 [Dot Product] 연산을 한다. 카메라를 바라보는 면이 밝고, 각도가 커질 수록 어둡게 보인다. [One Minus] 노드를 이용해서 반전을 시켜보면, 하지만 아직 빛나는 부분의 면적이 넓으므로 일부만 빛나게 만들려면 어두운 부분은 완전히 어둡게, 밝..
2023.07.20 -
[Unity] URP 셰이더 Time 노드로 움직이는 불 만들기
배경이 투명해야 하기 때문에 셰이더 Graph Settings를 [Transparent]로 바꾼다. [Blending Mode] - [Additive]는 배경과 덧셈이 되면서 더 밝아지게 된다. [Render Face]는 양면 렌더링을 위해 [Both]로 설정한다. V 방향으로만 [Time]에 [Negate] 음수를 곱하여 위로 올라가게 [Add] 노드로 더했고 [Sample Texture 2D]로 텍스쳐에 적용한다. 고정할 텍스쳐와 움직일 텍스쳐의 rgb와 알파를 각각 곱해서 Fragment에 전달한다. 책의 예제에서는 (0.5, 0.5, 0.5)의 값을 갖는 회색 텍스쳐를 UV 값을 [Split]하여 각 U, V 값에 [Add]하는 부분이 있는데, 정확히 U, V 값이 0.5씩 이동되지 않는 결과가 ..
2023.07.12 -
[Unity] URP 셰이더 흑백 만들기 (Saturation)
흑백을 만들기 위해서 고려해야 하는 부분 흑백(Grayscale)이란, 컬러가 없는 상태로써 RGB의 숫자가 동일한 상태이다. RGB로 된 각 채널은 하나씩 따로 출력하면 각각 흑백이다. 흑백이어도 밝기는 유지해야 한다. R 하나만 켜진 상태라면 3개의 서브픽셀 중 1개만 켜진 것이니 밝기가 1/3이 된다. R 채널, G 채널, B 채널이 각각 흑백이기 때문에 [Add] 노드로 더해도 흑백이 유지된다. 하지만 밝기는 점점 밝아지는 것을 볼 수 있다. 이후 [Divide] 노드로 3을 나눈 것을 볼 수 있다. 하지만 RGB의 밝기(휘도)는 정도가 달라서 우리 눈에 밝게 인식되는 강도가 다르다. 각각을 흑백으로 표현했을 때 초록색이 가장 밝게 보이고 그 다음이 빨강, 파랑 순서이다. 이 비율은 (0.2126..
2023.07.11