이 책은 실제 프로젝트 개발 타임 라인을 사용하여 가장 기본적인 OpenGL 환경 구성에서 골격 애니메이션, 다중 스레드 렌더링, 그림자 구현 등에 이르기까지 게임 엔진의 모든 모듈을 완전히 소개하고 완전한 게임 엔진을 실현합니다.

1 장에서는 게임 엔진 프레임 워크를 소개하고 게임 엔진의 구성을 소개하기위한 예제로서 유니티를 취합니다.
2 장에서는 OpenGL 개발 환경의 구성을 소개하고 OpenGL 빈 창을 생성하여 함정에 들어갑니다.
3 장에서는 OpenGL을 사용하여 삼각형, 사각형 및 큐브를 그리기 위해 게임 렌더링의 가장 기본적인 요소에 익숙해집니다.
4 장에서는 셰이더, 컴파일 링크 및 셰이더 형식 및 키워드의 개념을 소개합니다.
5 장에서는 텍스처 형식을 소개하고 PNG 및 JPG 렌더링을 직접 읽은 다음 GPU가 사용하는 압축 텍스처를 소개합니다.
6 장은 인덱스 및 버퍼 객체를 소개합니다. 버퍼는 Vertex 데이터를 비디오 메모리에 저장하며 더 이상 모든 프레임을 메모리에서 GPU로 업로드 할 필요가 없습니다.
7 장에서는 엔진의 맞춤형 메쉬 파일 형식 및 재료 구성을 소개합니다. 코드에 원래 작성된 Vertex 데이터를 메시 파일에 저장하고 코드에 원래 작성된 셰이더 매개 변수를 자료에 저장하십시오.
8 장에서는 Blender를 사용하여 모델을 만들고 Python 코드를 작성하여 메쉬 파일로 내보내는 것을 소개합니다.
제 9 장에서는 GameObject 컴포넌트 모드를 구현하는 방법을 소개합니다.
10 장에서는 카메라의 내용과 여러 카메라를 렌더링하는 방법을 소개합니다.
11 장에서는 마우스 및 키보드 입력 획득을 소개합니다.
12 장에서는 데모 코드를 엔진 소스 코드 및 프로젝트 소스 코드로 분할하는 방법을 소개합니다.
13 장에서는 프리 타입을 사용하여 지정된 문자를위한 단일 알파 채널의 텍스처를 생성하고 렌더링하고 컬러 텍스트를 구현하기 위해 정점 색상을 사용합니다.
14 장에서는 UIIMAGE, UIMASK, UITEXT 및 UIBIRTTON을 포함한 기본 GUI 컨트롤의 구현을 소개합니다. 이러한 기본 사항을 사용하면 다른 복잡한 컨트롤이 구현 될 수 있습니다.
15 장에서는 FMOD를 사용하여 MP3 및 Wav Music을 재생하고 FMOD 전문 오디오 편집기를 사용하여 음향 효과를 만들고 재생을 분석합니다.
16 장에서는 C ++ 성능 분석 라이브러리 인 Easy_Profiler를 소개합니다.
17 장에서는 오픈 소스 라이브러리 인 SOL2의 사용을 소개하고 LUA를 엔진에 통합 한 다음 C ++ 개발 엔진을 사용한 다음 LUA를 사용하여 테스트 코드를 작성합니다.
18 장에서는 스켈레톤 애니메이션의 원리를 소개하고 블렌더를 사용하여 스켈레톤 애니메이션을 만들고, Skeleton_anim 파일로 내보내고, 엔진에서 구문 분석합니다.
19 장에서는 골격 피부 애니메이션을 소개하고, 믹서기의 무게를 새로 고치고, 웨이트 파일로 내보내고, 엔진에서 구문 분석하고, 렌더링합니다.
20 장에서는 메쉬, 골격 애니메이션 및 FBX 파일의 가중치를 내보내고 고대 스타일 소녀를 내보내고 예제에 렌더링하는 방법을 소개합니다.
21 장에서는 멀티 스레드 렌더링을 소개하고 OpenGL API를 별도의 렌더링 스레드에 올려 놓고 기본 스레드에서 렌더링 스레드로 명령을 발행하고 기본 스레드의 부담을 줄이기 위해 DrawCall의 영향을 나누어줍니다.
22 장 업데이트 소개 때때로.
이 책을 작성하는 목적은 게임 엔진의 기본 지식을 대중화하고 특정 Unity 경험이 있고 엔진의 특정 지점에 관심이있는 독자에게 대중화하는 것입니다.
각 장에서 소개 된 지식은 입문 이해를위한 것이며 깊이 파기하지 않습니다.
단순하고 단기 목표가 지루하지 않습니다.
각 기사는 입문 관점에서 작성됩니다. 예를 들어, C 언어 컴파일을 사용하여 Shader의 컴파일을 Link와 비교합니다.
| C 언어 | 셰이더 | |
|---|---|---|
| 대상 하드웨어 | CPU | GPU |
| 컴파일 프로세스 | 프로젝트를 만듭니다 | GPU 프로그램을 만듭니다 |
| 여러 C 코드 파일을 작성하고 작성하십시오 | 셰이더 작성 및 쓰기 (정점 셰이더 및 파편 셰이더) | |
| 컴파일러로 C 코드를 보내십시오 | 셰이더 코드를 컴파일러로 보냅니다 | |
| C 코드를 컴파일합니다 | 셰이더 코드를 컴파일합니다 | |
| 링크 목록에 추가하십시오 | 링크 목록에 추가하십시오 | |
| 링크 | 링크 |
이 섹션의 프로젝트 주소는 각 섹션의 시작 부분에 게시되었으며 폴더를 Clion으로 끌어 즉시 디버그로 드래그합니다. 
코드 스 니펫은 파일과 코드가있는 줄 수로 시작됩니다. 
가장 간단한 삼각형 도면에서 골격 애니메이션 렌더링, 조명 및 그림자, 멀티 스레딩, 물리학, 패스 파인딩 AI 및 오디오 분석에 이르기까지.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
엔진 북에서 모델링 및 오디오 편집 방법을 가르치는 것은 이번이 처음입니다.
블렌더 모델링, FMOD, WWISE 오디오 제작에 대한 비디오를 녹화했습니다.
다른 물질, 도구 백 플러그인 개발, RenderDoc DrawCall 분석이 간단히 소개됩니다.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
렌더링 된 모델 애니메이션은 미녀, 잘 생긴 남자 및 다채로운 물체를 사용하여 더욱 성취됩니다.
특정 기능을 갖는 후에는 기존 기능을 기반으로 작은 게임이 개발되므로 단계적 성과는 오랫동안 지속될 수 있습니다.
![]() | ![]() | ![]() |
|---|
온라인 읽기 : http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
지역 건설 : https://github.com/ThisisGame/thisisgame-web-openresty
현재 Windows 및 MacOS에 적합합니다.
- 由于Arm版Mac只支持OpenGL Core,所以《6.3 OpenGL Core Profile》之前的章节实例无法在Arm版Mac运行。 책 인스턴스는 Windows 및 Mac을 지원하는 Clion을 사용하여 개발되며 크로스 플랫폼에는 추가 학습 비용이 필요하지 않습니다.
VisureStudio는 2019 년부터 CMAKE 프로젝트를 지원하므로 VisualStudio 2019 이상을 사용하여 Windows의 책 인스턴스와 함께 Clion 프로젝트를 열 수 있습니다.
자세한 내용은 VisualStudio를 사용한 2.3 개발을 참조하십시오
엔진은 C ++를 사용하여 개발되며 Google C ++ 사양을 준수하며 코드를 기여할 때는 먼저 코드 스타일에 익숙해야합니다. 
코드에 기여할 때는 먼저이 프로젝트를 귀하의 이름으로 포크 한 다음 코드를 수정 한 다음 요청을 결합하여 제출하십시오.
현재 Windows 및 Mac에 적응하여 두 시스템 모두에서 개발할 수 있습니다. 코드를 제출하기 전에 기능이 정상이며 두 시스템 모두에서 일관성이 있는지 확인하십시오.
http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md 를 읽을 수 있도록 온라인으로 직접 열 수 있습니다
이 책은 오픈 소스 이며이 프로젝트를 포크 한 다음 코드를 수정 한 다음 병합 요청을 제출할 수 있습니다.
모든 사람은 발생하는 문제에 대한 문제와 피드백을 언급하는 것을 환영합니다. 인트라넷에서 직접 저에게 연락 할 수 있습니다. 또한 Q 그룹 (879187705)에 가입하여 답을 얻은 후 다른 사람들의 쿼리를 촉진하기 위해 문제를 업데이트 할 수 있습니다.
![]() |
|---|
이 프로젝트는 Clion IDE를 사용하고 오픈 소스 라이센스 덕분에 PVS-Studio를 코드 스캔 분석 도구로 사용합니다.
![]() | ![]() |
|---|---|
| PVS-Studio | JetBrains |