목록전체 글 (49)
Typing diary

게임에서 물리 효과는 유저가 게임과 상호작용하는 과정에서 게임을 더욱 생동감 있고, 사실적으로 느끼게 해주는 중요한 요소이다. Physics Bone은 게임에서 의상, 헤어와 같은 물체의 물리 효과를 실시간으로 표현하기 위한 효과 중 하나이다. 스키닝된 메쉬 본에 대해서만 연산을 진행하기 때문에 모든 버텍스에 물리 연산을 진행하는 Vertex Physics보다 연산이 매우 가볍고, 아티스트가 버텍스에 Weight를 어떻게 할당하냐에 따라서 디테일한 연출도 가능하기 때문에 게임에서 널리 사용되고 있다. 이번 포스팅에선 PhysicsBone을 구현하는 방법 중 하나인 Verlet알고리즘을 사용하여 PhysicsBone을 구현하는 방법에 대해서 포스팅할 예정이다. Verlet 알고리즘?Verlet 알고리즘은..

https://typingdiary.tistory.com/61 드로우 콜(Draw Call)드로우 콜이란?CPU가 GPU에게 특정 오브젝트를 그리게 하기 위한 단일 명령이다. 한 프레임에 여러번 호출 될 수 있으며, 호출 수가 많아질 수록 CPU와 GPU의 오버헤드가 커지기 때문에, 호출 횟수를typingdiary.tistory.com앞선 글에서 드로우 콜을 다루면서 Unity의 Batch와 Set Pass Call에 대해서 간단히 설명하였다. 이번 포스팅에선 Unity에서 드로우 콜을 최적화하기 위해, Unity에서 제공하는 솔루션에 대해서 포스팅해보겠다. 본론에 앞서, 우리는 드로우콜 최적화에 대한 중요점을 다시 짚고 넘어갈 필요가 있다. 특히, 모바일 게임 개발을 주로 이루는 Unity에선 더욱 ..

드로우 콜이란?CPU가 GPU에게 특정 오브젝트를 그리게 하기 위한 단일 명령이다. 한 프레임에 여러번 호출 될 수 있으며, 호출 수가 많아질 수록 CPU와 GPU의 오버헤드가 커지기 때문에, 호출 횟수를 줄여 드로우 콜 비용을 낮추는 것이 게임 최적화의 핵심이다. 왜 여러 번 나눠서 보내야 할까?왜 드로우콜은 여러번 호출되는 걸까? GPU는 수많은 정점과 픽셀 연산을 위해 대량 병렬 처리에 특화되어있다. 때문에 GPU는 효율적인 병렬 처리를 위한 GPU만의 특별한 작업 단위가 있는데 그것이 Render State이다. RenderState?GPU가 효율적인 병렬 처리를 수행하기 위하여는, GPU 고유의 작업 단위, 즉 규칙의 집합이 요구된다. 이를 바로 **렌더 상태(Render State)**라..

직렬화 ( Serialize)작렬화란 데이터의 구조나, 오브젝트의 상태를 저장하고 나중에 다시 재구성할 수 있는 포맷으로 변환하는 과정이다. 상황에 따라 byte스트림이나 Json,XML과 같은 문자 포맷을 사용한다. 유니티에선 YAML언어를 사용하여 데이터를 저장하는데, .prefab이나 .scene파일을 텍스트 편집기로 열어보면 YAML형태로 데이터가 저장된 것을 볼 수 있다. 유니티는 YAML언어로 저장된 데이터를 읽어와 Inspector창에서 데이터를 편집할 수 있게 제공한다. [Serializable], [SerializeField]데이터를 직렬화 하기 위해 명시하는 어트리뷰트이다. Serializable한 타입을 public이나, SerializeField로 선언해 주면 유니티에서 해당 데이..