유니티(87)
-
[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 -
[Unity]텍스쳐 최적화를 위한 TexturePacker 사용하기
[Unity] Sprite Atlas 기능 사용하기 [Unity] Sprite Atlas 기능 사용하기 Unity 프로젝트에서 UI 최적화를 위해 Sprite Atlas를 사용할 수 있다. Sprite Atlas에 대해서 알아보자. 먼저, 에셋 스토어에 있는 무료 이모지를 이용해서 기능을 사용해보려고 한다. (링크) 해당 이모지 lightbakery.tistory.com 이전에 UI의 드로우콜을 줄이는 최적화를 위해 SpriteAtlas를 사용했었다. 이번에는 Texture의 최적화를 위한 TexturePacker 에셋에 대해서 알아보고자 한다. Sprite Atlas는 아틀라스를 만들어서 그 안에 내가 패킹하고자 하는 UI들을 넣어서 하나의 묶음으로 만드는 기능이다. 하나의 묶음으로 만듦으로써 드로우콜..
2023.03.27 -
[Unity] Sprite Atlas 기능 사용하기
Unity 프로젝트에서 UI 최적화를 위해 Sprite Atlas를 사용할 수 있다. Sprite Atlas에 대해서 알아보자. 먼저, 에셋 스토어에 있는 무료 이모지를 이용해서 기능을 사용해보려고 한다. (링크) 해당 이모지를 받아서 Package Manager로 프로젝트에 import를 시켜주면 많은 이모지 스프라이트들이 들어있는 것을 확인할 수 있다. UI 이미지를 넣듯 2D 상에 9가지의 이모지를 골라서 씬에 올려보았다. 추가로, [Window] - [Analysis] - [Frame Debugger] 로 드로우 콜을 함께 보도록 한다. 총 9개의 드로우 콜이 생기는 것을 볼 수 있다. 이제 프로젝트 안에 Sprite Atlas를 생성하여 어떤 변화가 있는지 살펴보자. 원하는 폴더 안에 만든 후 ..
2023.02.19