제가 게임 엔진을 할 때.

「Applibot Advent Calendar 2021」 열흘째 보도다.
Applibot 서버 측 엔지니어 사나37입니다.
이 글을 쓴 배경
학창시절에 기세만으로 만든 게임 엔진이 있었는데 아마 이미 사용하지 않았을 거예요. 제가 좀 먹여 살릴게요.
만든 물건
c++로 3D 대상의 충돌 판정과 물리 연산을 실현하였다.
3D 공간 드로잉은 Qt 및 OpenGL을 사용합니다.
실제 시운전을 한 경우여기.였다.
(행동이 불안정해서 물체가 계속 늘어나고 있다.)
기본적으로github에 원본 코드를 추가했습니다.
이것은 상당히 자기 만족 코드입니다. 좀 부끄럽습니다. 원하시면 한번 보세요.
https://github.com/sana37/PeculiarEngine
어떻게 했어요?
처음부터 다 설명하면 길어질 수 있으니 충돌 판정의 알고리즘에 대해 간단하게 말씀드리고 싶습니다.
충돌 판정
주로
1. 대상이 포함된 구체 간의 충돌 판정
2. 다각형과 정점의 충돌 판정
3. 변과 변의 충돌 판정
라는 절차로 충돌 판정을 한다.
1. 대상이 포함된 구체 간의 충돌 판정
객체 간에 정확하게 충돌하는 계산량이 없는지 확인할 수 있습니다.
구가 서로 겹치면 객체 간의 충돌일 수 있습니다.

반대로 겹치지 않으면 대상 간에 충돌이 일어나지 않는다.

구체 간 충돌이 없으면 후속 충돌 판정을 건너뛰어 계산량을 줄일 수 있다.
2. 다각형과 정점의 충돌 판정
객체 A의 다각형과 객체 B의 정점에서 충돌 판정을 합니다.

는 객체 B의 정점이 객체 A의 다각형을 찌르는지 여부를 조사하는 이미지입니다.
3. 변과 변의 충돌 판정
각 객체의 가장자리가 서로를 관통하는지 확인합니다.

위 절차를 통해 대상 간의 충돌을 판단할 수 있다.
뒤돌아보다
나는 그것을'움직이는 것처럼 보인다'는 곳으로 가져가는 것은 상당히 어려웠지만, 자신이 실시한 법칙 중의 동작을 보았을 때 매우 감동적이었다.
최후
본 보도에서 나는 나의 게임 엔진의 일부 구조를 간단하게 소개하였다.
이상「Applibot Advent Calendar 2021」열흘째 보도입니다.

좋은 웹페이지 즐겨찾기