프로젝트 소개

G3N("gen"으로 발음)은 Go 프로그래밍 언어로 작성된 오픈소스 OpenGL 3D 게임 엔진으로, 풍부하고 동적인 3D 표현을 갖춘 크로스 플랫폼 Go 애플리케이션을 구축하기 위해 설계되었습니다. ### 핵심 기능 - **크로스 플랫폼 지원:** Windows, Linux, macOS에서 작동하며, WebAssembly 지원은 90% 완료된 것으로 명시되어 있습니다. - **통합 GUI:** 다양한 위젯을 갖춘 기본 GUI 프레임워크를 포함합니다. - **계층적 장면 그래프:** 노드가 다른 노드를 포함하여 3D 장면을 구성할 수 있습니다. - **공간 음향:** OpenAL을 통한 3D 공간 음향을 지원하며, .wav 및 .ogg 형식을 포함합니다. - **조명 및 렌더링:** 실시간 주변광, 방향광, 점광, 스포트라이트 조명과 함께 물리 기반 렌더링(프레넬 반사율, 기하학적 폐색, 미세면 분포)을 제공합니다. - **모델 및 지오메트리 지원:** glTF(.gltf, .glb), Wavefront OBJ(.obj), COLLADA(.dae)용 로더를 포함합니다. 또한 박스, 구, 원기둥, 토러스용 지오메트리 생성기를 갖추고 있으며, 모프 타겟과 멀티머티리얼을 지원합니다. - **애니메이션 및 셰이더:** 위치, 회전, 크기 조정을 위한 애니메이션 프레임워크를 제공하며, 사용자가 만든 GLSL 버텍스, 프래그먼트, 지오메트리 셰이더를 지원합니다. - **기타 기능:** HiDPI 디스플레이, 원근 및 직교 카메라, TrueType 폰트, 이미지 텍스처(GIF, PNG, JPEG)를 지원하며, 실험적인 기본 물리 엔진을 포함합니다. ### 의존성 및 설치 이 엔진은 Go 1.8 이상, OpenGL 드라이버, GCC 호환 C 컴파일러가 필요합니다. Unix 기반 시스템은 특정 C 라이브러리(xorg-dev, libgl1-mesa-dev, libopenal-dev, libvorbis-dev 등)가 필요합니다. Windows 빌드는 mingw-w64 툴체인을 사용하며, macOS는 OpenAL 및 Vorbis용 Homebrew 패키지가 필요합니다. 이 엔진은 저장소를 복제하고 `go install ./...`을 실행하는 표준 Go 명령으로 설치할 수 있습니다. ### 예제 및 커뮤니티 저장소에는 파란색 토러스와 그 색상을 변경하는 버튼을 보여주는 기본 "Hello G3N" 예제가 포함되어 있으며, 카메라, 조명, GUI 통합을 시연합니다. 이 프로젝트는 GoDoc을 통한 API 문서, 위키 가이드, 지원 및 토론을 위한 Discord 커뮤니티 채널을 제공합니다.