Unity(119)
-
[Unity] 텍스쳐와 UV를 이용한 셰이더 (Tiling, Offset, Scrollout)
Tiling & Offset 셰이더로 만들기 Tiling과 Offset 적용을 변수 프로퍼티 추가로 셰이더로 만들 수 있다. [Tiling And Offset]은 유니티 내에 기본 노드가 있어서 추가하여 연결만 해주면 된다. Tiling & Offset_ScrollSpeed ScrollSpeed 변수가 추가된 셰이더이다. 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배가 된다. Pow Pow는 지수를 말한다. x의 몇 제곱인데, Pow 값이 1 이상이면 흔히 아는 급격하게 기울기가 커지는 그래프가 만들어지지만, Pow 값이 1보다 작다면 서서히 기울기가 작아지는 그래프가 만들어진다. Saturate [Saturate]는 0 이하를 0으로 만들고 1 이상을 1로 만들어주는 ..
2023.06.03 -
[Unity] 간단한 URP 셰이더 그래프 만들기
Opaque HDR 적용하기 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 셰이더 그래프 기초 개념
ShaderGraph URP에서 생성할 수 있는 셰이더 그래프 종류를 볼 수 있다. Lit Shader Graph: 빛을 받고 그림자를 만들 수 있는 셰이더 Unlit Shader Graph: 빛과 무관하게 텍스쳐 그대로 보여주는 셰이더 셰이더 그래프 [Inspector] 창에서 [View Generated Shader]를 누르면 비주얼 스튜디오에서 코드를 볼 수 있다. 마스터 스택은 "Vertex"와 "Fragment"로 분리되어 있는데 각각 Vertex Shader와 Fragment Shader를 말한다. Precision [Graph Inspector]를 보면 [Precision]이라고 정밀도를 선택할 수 있는 메뉴가 있다. Single: float과 같으며 32비트의 매우 높은 고정밀도이다. De..
2023.05.26 -
[Unity] URP 셰이더를 위해 알아야 할 것들
셰이더란 무엇인가? -화면에 그려지는 픽셀의 색을 결정하는 프로그램. GPU 내부에서 실행되기 때문에 여러 픽셀에 대해서 동일한 셰이더가 동시에 실행된다. -아티스트의 시각에서는 "그래픽 데이터의 음영과 색상을 계산하여 다양한 재질을 표현하는 계산 방법" Graphics API 종류와 프로세스 -Direct3D, OpenGL, Vulkan, Metal 등 고해상도 픽셀 수가 많아져도 Vertex Shader의 실행 횟수는 일정. 하지만 Pixel Shader는 늘어난 픽셀 수만큼 많이 실행된다. Pixel Shader는 최종적으로 모니터에 보이는 점. Fragment Shader는 raterizer에서 생성된 점. Fragment Shader에서 다른 조각에 의해 가려졌는지, Stencil 검사 통과, ..
2023.05.23 -
[Unity]C# for, foreach, while, do-while문 정리
for 문 // for loop int[] nums = { 1, 2, 3, 4, 5 }; for (int i = 0; i < nums.Length; i++) { Console.WriteLine(nums[i]); } 자료형[] 변수 = { 1, 2, 3, 4, 5}; for (자료형 i = 0; i < 변수.Length; i++) { Console.WriteLine(변수[i]); } 반복 횟수를 알고 있을 때 배열과 함께 주로 사용 foreach 문 // foreach loop foreach (int num in nums) { Console.WriteLine(num); } foreach (자료형 변수 in 배열변수) { Console.WriteLine(변수); } 배열이나 List의 크기를 구할 필요가 없..
2023.04.11