게임 개발/개발 공부(13)
-
[ 개발 공부 ] 2D Light, Shadow Cast 등등
타일맵 찍고 간단하게 라이팅과 Shadow Cast를 이용해서 이런 것을 만들어보았다. 근데 지금 용암 라이팅을 일일히 넣어줘야하는 게 불편해서 메테리얼로 라이팅이 가능한지 알아볼 예정이다.
2024.09.23 -
[ 개발 공부 ] 2D 게임 퀄리티를 높이는 방법 1 - Normal Map
Normal Map은 3D에서 리소스를 최적화하면서 그래픽 퀄리티를 높이기 위해 사용하는 방법 중 하나인데,2D에서도 사용할 수 있다. 이에 대해서 공부를 했는데 2D 노말 맵을 만드는 방법은 다른 곳에서 자세한 설명이 많았고, 완벽히 설명하기가 힘들어사용방법만 얘기할 것이다. 1. Material에 집어넣기2. Sprite Secondary Texture 사용하기가 있다. Material은Material->Normal에다가 준비한 노말 맵을 넣어주면 된다. Secondary Texture는-> Sprite Editor 에다가 준비한 텍스쳐를 _NormalMap이라는 이름으로 추가해주면 된다. 이렇게 하면 노말 맵이 적용되는데몇몇 부분에 스프라이트 안쪽에 그림자가 생기는 모습을 볼 수 있다. 비교를 위한..
2024.09.02 -
[ 개발 공부 ] Sprite Atlas의 장단점
Unity Sprite Atlas Sprite Atlas는 Unity 2D 제작 환경에서 여러 개의 텍스처를 단일 텍스처로 결합하는 에셋이다.이를 통해 드로우 콜을 줄인다. 예를 들어 개별 이미지 3개를 그려줄 때 드로우콜이 3번 실행되는데,개별 이미지 3개를 Sprite Atlas로 묶어주면 드로우콜이 1번 실행되도록 할 수 있다. 장점드로우 콜 실행 횟수가 적어져 최적화가 된다. 단점1. 메모리가 두 배가 된다.개별 이미지, 묶인 이미지가 둘 다 존재하기 때문에 메모리가 두 배가 된다. 2. 너무 많은 스프라이트를 하나의 아틀라스에 묶었을 경우, 하나의 오브젝트를 그릴 때 가져오는 텍스처를 한 번에 로드할 때 메모리 문제가 생겨서 오히려 성능이 떨어질 수 있다.스프라이트 아틀라스를 여러 개로 분할해 ..
2024.05.24 -
[ 개발 공부 ] 객체지향의 4대 특징
객체지향, OOP의 4대 특징추상화, 상속, 다형성, 캡슐화 1) 추상화어떤 대상/집단의 공통적이고 본질적인 특징을 추출하여 정의하는 것abstract class, interface가 활용된다. 예를 들어 트럭, 비행기, 스포츠카, 배가 있다고 한다면,모두 탈 수 있는 이동 수단이기 때문에 Riding이라는 추상 클래스를 만든다.Riding은 탑승을 실행하는 Ride함수와 이동 속도인 Speed값을 가지고 있다. 이 중에서도 트럭과 스포츠 카는 둘 다 바퀴를 가지고 있기에Car라는 추상 클래스를 만들어 바퀴 값을 추가로 가지게 한다. 이러한 과정을 추상화라고 보면 된다. 결과적으로 트럭, 스포츠 카는 Car를 상속받고, 비행기와 배는 Riding을 상속받는다. 2) 상속상위 개념을 하위 개념이 물려받는..
2024.05.22 -
[ 개발 공부 ] Dynamic / Static Batching 최적화
Batching을 통해 최적화를 할 때 사용하는 방법들인Dynamic / Static Batching에 대해 알아보자 ! 3D 기준으로 설명한다. !2D 스프라이트 Batching은 Static/Dynamic 설정이 안 되어있더라도 자동으로 Batching된다. Static Batching정적인 오브젝트를 대상으로 하는 배칭 기법이다.위치, 회전, 스케일 등의 변화가 없는 오브젝트 스태틱 배칭은 폴리곤 수와 상관없이 같은 메테리얼을 사용하는 오브젝트들을 하나의 메시로 묶어준다.단, 메테리얼이 1개라고 해서 무조건 1개의 배치로 합쳐지지는 않는다. 빛 같은 요소로 인해 배칭이 나뉠 수 있다. 주의할 점메테리얼을 메모리에 올려놓고 사용하기 때문에 적은 메모리, 과도하게 많은 메모리를 사용할 때는 피해야 한다..
2024.05.21 -
[ 개발 공부 ] Unity Batching 개념
최근에 최적화 공부를 하며 배운 Unity Batching이다. 배칭( Batching )이란?드로우 콜을 줄이기 위해 동일한 메테리얼을 공유하는 오브젝트를 묶어 한 번에 드로우 콜해주는 작업이다. 유니티 오른쪽 위 스탯창을 열어보면 Batches라는 값과 SetPass Call이 있다.Batches라는 값이 무엇이냐면 DrawCall과 갖가지 렌더 상태 변경을 합한 값이다.Batches = Draw Call + 갖가지 렌더 상태 변경 근데 갖가지 렌더 상태 변경 중에는 Set Pass Call이 포함된다.Set Pass Call이 나뉘어져 Stat창에 표기되어 있는데 왜냐하면, Set Pass Call은 GPU에 부하를 주기 때문이다. 저 커맨드들은 GPU에 상태값을 전달하는 명령이라는 공통점이 있다..
2024.05.20