Flex Engine은 2017 년 초에 작업을 시작한 개인 게임 엔진입니다. 실시간 렌더링 및 시뮬레이션 기술에 대한 학습을위한 놀이터로 사용합니다. Flex Engine은 상용 게임 엔진이 아니며 공개적으로 사용하기위한 것도 아닙니다.
플렉스 구축
build.md를 참조하십시오
주목할만한 기능
- Vulkan 렌더링 백엔드 (Vulkanrenderer.cpp)
- 게임 내 스크립팅 언어 컴파일러/편집기 및 가상 머신 (virtualmachine.cpp)
- 조건부 체크섬 기반 셰이더 재 컴파일 (ShaderCompiler.cpp)
- 텍스처, 메시, 사전 랩, 셰이더, 구성 파일 등에 대한 파일 수정 모니터링 (Resourcemanager.cpp)
- 직렬화와 장면 편집기 (Basescene.cpp)
- 편집기 도구 (Transform Gizmo, Property Editor, KeyBinding Editor 등) (Editor.CPP)
- 기본 프로파일 링 캡처/검사 도구
- Windows & Linux 지원
- 표현:
- 마칭 큐브 지형 발전기 및 렌더러
- Gerstner Wave Ocean 렌더러
- 직사각형 영역 조명 (직접 전용 확산 및 포기)
- 물리 기반 음영 모델
- 이미지 기반 조명
- 스크린 공간 주변 폐색
- 안정적인 계단식 그림자 매핑
- 시간적 반 알리 아스
- 서명 거리 필드 (SDF) 글꼴 생성 및 렌더링
- GPU 기반 입자 시뮬레이션
GPU에서 생성 된 절차 지형
Gerstner Wave Ocean 시뮬레이션
계단식 그림자 매핑
2 백만 개의 입자가 GPU에 전적으로 시뮬레이션되고 렌더링됩니다.
단일 프레임의 CPU 시간을 분해하는 프로파일러 오버레이
일부 편집기 창
스크린 공간 앰비언트 폐색 (SSAO)
gbuffer (왼쪽 ~ 하단) : 위치, 알베도, 정상, 최종 이미지, 깊이, 금속, AO, 거칠기
편집자로 봅니다


여기에서 더 많은 스크린 샷을 참조하십시오
의존성
Flex Engine은 다음과 같은 오픈 소스 라이브러리를 사용합니다.
- 총알 - 충돌 감지 및 강성 바디 시뮬레이션
- 프리 타입 - 글꼴 로딩
- GLFW- 창 생성, 입력 처리
- GLM- 수학 운영
- imgui- 사용자 인터페이스
- Openal- 오디오로드 및 재생
- STB- 이미지 로딩
- CGLTF- 메쉬 로딩
- Volk -Vulkan 메타 로더
특허
Flex 엔진은 MIT 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 License.md를 참조하십시오.
감사의 말
믿을 수 없을만큼 유용한 자원에 대해 다음 개인과 조직에게 큰 감사를 표해야합니다.
- github.com/baldurk/renderdoc의 Baldur Karlsson
- vulkan-tutorial.com의 Alexander Overvoorde
- github.com/saschawillems/vulkan의 Sascha Willems
- LearnOpEngl.com의 Joey de Vries
- 권총 모델 및 텍스처의 Andrew Maximov artisaverb.info/pbt.html
- 고품질 PBR 텍스처를위한 freepbr.com
- 위에서 언급 한 오픈 소스 라이브러리의 모든 저자 및 기고자
블로그
이 프로젝트에 대한 최신 정보 (Ajweeks.com/blog)의 블로그에서 최신 상태를 유지하십시오.