셰이더(37)
-
[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 셰이더 그래프로 Lambert Light 만들기 (+Half Lambert)
간단한 Lambert Light [Normal Vector] 노드와 [CustomLight] 커스텀 노드를 [Dot Product]로 내적하여 Lambert Light를 표현할 수 있게 되었다. 하지만 여기서 -1부터 1까지 표현되는 그림자이기 때문에 추가 조명을 더해도 -1에서 0이상 밝아지지 않는 문제가 있을 수 있으므로 0~1로 제한하는 [Saturate] 노드를 붙여준다. ([Maximum] 노드를 사용해 들어온 값과 0을 비교하여 0 이하는 더 큰 값인 0을 출력하게 할 수도 있고, [Clamp] 노드를 이용하여 직접 0~1 범위를 설정할 수도 있다.) Normal Map 적용 예제 파일에 함께 들어있는 Normal Map을 사용한 모습인데, 기존 Normal Map의 Space가 Tangent..
2023.07.18 -
[Unity] URP 셰이더 커스텀 노드로 Light Vector 노드 만들기
먼저, [Custom Function] 노드의 Graph Inspector를 정리하면, Precision: 값의 정밀도이다. Inherit: 이전 노드에서 상속받는 정밀도 Single: Float과 같으며 32bit 정밀도이다. 높은 품질과 정밀도를 가진다. Half: 16bit 정밀도로 Single보다는 조금 떨어진다. Use Graph Precision: Graph Setting에서 결정한 정밀도를 사용하는 옵션이다. HLSL 함수 이름이 Precision에 맞춰서 자동으로 접미어가 붙기 때문에 출력 변수의 단위가 이 Precision에 맞지 않으면 에러가 난다. Preview: 2D/3D 어떤 것으로 볼지를 결정한다. Inputs/Outputs: 다른 노드의 Input과 Output처럼 입력과 출력..
2023.07.18