메탄 키트
사용하기 쉬운 최신 3D 그래픽 렌더링 추상화 API 및 크로스 플랫폼 응용 프로그램 프레임 워크 :
- Windows의 Modern Native 3D Graphics API : DirectX 12, Linux의 Vulkan, MacOS의 금속, iOS 및 TVOS 위에 제작됩니다 .
- Apple Metal의 단순성에서 영감을 얻은 객체 지향 중간 레벨 그래픽 API로 최신 그래픽 프로그래밍을 단순화합니다 . HLSL 6의 공통 셰이더 코드는 모든 플랫폼에서 사용됩니다.
- CMAKE 빌드 빌드 툴체인, 플랫폼 독립 응용 프로그램 기초 클래스 및 Windows, Linux 및 MACOS 용 기본 GUI 레이어와 함께 크로스 플랫폼 애플리케이션 프레임 워크를 제공합니다 .
사전 구축 된 샘플, 튜토리얼 및 테스트를 통해 릴리스 빌드를 다운로드하여 시험해보십시오. 최신 빌드 상태, 테스트, 코드 적용 범위 및 분석 결과를 확인하거나 GitHub Action CI 및 Sonar Cloud에서 빌드 아티팩트를 얻으십시오. 수동 구축 지침에 대한 빌드 지침 주제를 참조하고 Hello Triangle 및 기타 튜토리얼 문서를 사용하여 메탄 그래픽 RHI API 학습을 시작하십시오.
| 플랫폼 | 그래픽 API | 마스터 빌드 | 빌드를 개발하십시오 |
|---|
렌더링 하드웨어 인터페이스 (RHI) 메탄 그래픽 RHI 모듈은 일련의 공개 객체 지향 인터페이스를 구현하여 플랫폼과 API 독립적 인 방식으로 최신 그래픽 프로그래밍을 쉽고 편리하게 만듭니다. 튜토리얼 Hello Triangle 튜토리얼 문서를 통해 메탄 그래픽 API 학습을 시작하고 다른 사람들과 함께 계속하십시오. 이름 / 링크 | 스크린 샷 | 설명 |
|---|
| 1. 안녕하세요 삼각형 |  | 100 줄의 코드로 컬러 삼각형 렌더링. | | 2. 안녕하세요 큐브 |  | Vertex 및 Index Buffer를 사용하여 200 줄의 코드로 컬러 큐브 렌더링. | | 3. 텍스처 큐브 |  | 텍스처 큐브는 Phong 음영으로 버퍼, 텍스처 및 샘플러 사용을 소개합니다. | | 4. 그림자 큐브 |  | Shadow Cube는 렌더 패스로 멀티 패스 렌더링을 소개합니다. | | 5. 타이포그래피 |  | 타이포그래피는 메탄 UI를 사용한 동적 글꼴 Atlas 업데이트로 애니메이션 텍스트 렌더링을 보여줍니다. | | 6. 큐브 맵 어레이 |  | 스카이 박스 렌더링과 함께 큐브 맵 어레이 텍스처링. | | 7. 병렬 렌더링 |  | 텍스처 큐브 인스턴스의 평행 렌더링을 단일 렌더 패스로. | | 8. 콘솔 컴퓨팅 |  | Conway의 삶의 게임은 Compute Shader에서 구현되고 Pure Console Application에서 실행되었습니다. |
샘플 메탄 샘플은 위의 자습서보다 더 복잡한 구현으로 고급 기술 및 사용 시나리오를 보여줍니다. 샘플은 별도의 리포지토리 형태로 분배됩니다. 이름 / 링크 | 스크린 샷 | 설명 |
|---|
| 소행성 |  | 벤치 마크는 여러 스레드에서 처리 된 다수의 이종 소행성 물체에 대해 단일 렌더 패스로 인코딩하는 병렬 렌더 명령을 보여줍니다. |
특징- 크로스 플랫폼 응용 프로그램 및 입력 클래스 : Windows, MacOS 및 Linux가 지원됩니다.
- 편리한 응용 프로그램 빌드 구성, 셰이더 및 임베디드 리소스 추가를위한 cmake 모듈
- 모든 그래픽 API를 제공하는 HLSL-6 셰이더는 기본 셰이더 언어로 변환되고 Spirv-Cross & DirectXCompiler를 사용하여 빌드 시간으로 컴파일됩니다.
- C ++의 HLSL- 유사 구문이있는 HLSL ++ 수학 라이브러리 및 다양한 플랫폼에 대한 벡터 변동 최적화
- 현대 그래픽 API 추상화 : Directx 12, Vulkan 및 Metal API를 기반으로합니다.
- 소형 초기화 구문으로 상태 및 프로그램 구성을 렌더링합니다
- 프로그램 바인딩 객체는 리소스에 대한 셰이더 인수의 효율적인 바인딩을 구현합니다.
- 자동 자원 전환 장벽 설정에 사용되는 자동 자원 상태 추적
- 명령 목록 상태에서 공유 포인터와 함께 GPU에서 사용 중에 자원이 자동으로 파괴되지 않음
- 옵션 GPU 타임 스탬프 쿼리가 포함 된 명령 목록 실행 상태 추적
- 단일 렌더링 패스로 인코딩하는 다중 스레드 렌더 명령에 대한 병렬 렌더 명령 목록
- 펜스를 사용한 동기화와 GPU에서 다중 명령 대기열 실행
- 개인 GPU 리소스 업로드 명령 목록 및 공유 리소스를 통해 비동기 적으로 업데이트
- 명명 된 그래픽 객체 레지스트리 렌더링 상태 및 렌더러 객체 간의 렌더링 상태 재사용 가능
- 그래픽 프리미티브 및 확장 :
- 프레임당 리소스 관리 및 프레임 버퍼 크기 조정 가능 효과적인 트리플 버퍼링을 갖춘 그래픽 애플리케이션 기본 클래스
- 카메라 원시 및 대화식 아크 볼 카메라
- 쿼드, 박스, 구체, Icosahedron 및 Uber Mesh에 대한 절차 메쉬 생성
- 스크린 쿼드 및 스카이 박스 렌더링 확장 클래스
- 텍스처 로더 (현재 STB로 구현되어 OpenImageio로 교체 할 계획)
- 사용자 인터페이스 :
- 통합 HUD, 로고 배지 및 도움말/매개 변수 텍스트 패널이있는 UI 애플리케이션 기본 클래스
- 글꼴 로딩, 동적 아틀라스 업데이트, 텍스트 렌더링 및 레이아웃 용 타이포그래피 라이브러리
- 위젯 도서관 (개발 중)
- 플랫폼 인프라 :
- Windows, MacOS 및 Linux 용 Window Management 및 입력 처리 기능이있는 기본 응용 프로그램
- 이벤트 메커니즘 콜백 인터페이스를 통해 이미지와 수신기를 연결합니다
- 애니메이션 서브 시스템
- 임베디드 리소스 제공 업체
- 통합 디버깅 및 프로파일 링 기능 :
- 추적 프로파일 링 도구를 사용한 성능 분석을위한 라이브러리 기기
- 모든 GPU 객체 및 그래픽의 디버그 영역에 대한 디버그 이름 API는 프레임 프로파일 링 도구와 함께 사용을 요청합니다.
- GitHub 작업에서 자동화 된 멀티 플랫폼 빌드, 단위 테스트 및 소나 클라우드 정적 코드 분석과의 지속적인 통합
자세한 기능 설명 및 개발 계획은 모듈 문서를 참조하십시오. 지원되는 개발 도구 개발 환경 
- Microsoft Visual Studio 2019
- 솔루션 및 프로젝트 빌드 (Build/Windows/Build.bat로 생성)
- CMAKE 기본 빌드 지원 (cmakepresets.json과 사전 구성)
- Apple Xcode
- Xcode Workspace 및 Projects (Build/Unix/Build.sh로 생성)
- Microsoft vs Code 및 GitPod (cmakepresets.json 및 .vscode/settings.json으로 사전 구성)
- Jet Brains Clion (.idea와 사전 구성)
- CMAKE 기본 지원을 가진 QT 제작자
Methane Kit는 Jet Brains 개발 도구를 지원하여 개발 중입니다. 오픈 소스 프로젝트 개발 라이센스는 메탄 키트 프로젝트의 모든 주요 기여자에게 무료로 제공됩니다. 정적 코드 분석 Methane Kit에는 모든 지원되는 플랫폼에 대해 Sonar Cloud에 개별적으로 게시 된 최신 결과와 함께 자동화 된 CI "스캔"빌드의 일부로 수행 된 연속 C ++ 정적 코드 및 코드 적용 범위 분석이 함께 제공됩니다. | 마스터 스캔 결과 | 창 | 마코스 | 리눅스 |
|---|
| 스캔 빌드 상태 | | | | | 품질 게이트 | | | | | 유지 가능성 | | | | | 신뢰할 수 있음 | | | | | 보안 | | | | | 기술 부채 | | | | | 버그 | | | | | 취약성 | | | | | 코드 냄새 | | | | | 복제 된 라인 | | | | | 적용 범위를 테스트합니다 | | | | | 코드 줄 | | | |
추적 프로파일 링 도구 메탄 키트에는 다음 도구를 사용하여 추적 수집을 통해 성능 분석을위한 모든 라이브러리의 통합 계측이 포함되어 있습니다. 추적 수집 지침 및 관련 빌드 옵션에 대한 자세한 내용은 Methane Instrumentation 문서를 참조하십시오. | 트레이시 프레임 프로파일 러 | 인텔 그래픽 추적 분석기 |
|---|
 |  |
프레임 프로파일 링 및 디버깅 도구- 인텔 그래픽 프레임 분석기
- Apple Xcode Metal Debugger
- 렌더링
- Microsoft Pix
- nvidia nsight 그래픽
외부 의존성 특허 메탄 키트는 Apache 2.0 라이센스에 따라 배포됩니다. 무료로 사용할 수 있으며 기부 할 수 있습니다! Copyright 2019-2022 © Evgeny Gorodetskiy
확장하다
|