Sobre o projeto
G3N (pronunciado "gen") é um motor de jogo 3D OpenGL de código aberto escrito na linguagem de programação Go, projetado para construir aplicações Go multiplataforma com representações 3D ricas e dinâmicas.
### Principais Recursos
- **Suporte Multiplataforma:** Funciona em Windows, Linux e macOS, com suporte a WebAssembly listado como 90% completo.
- **GUI Integrada:** Inclui um framework básico de GUI com vários widgets.
- **Grafo de Cena Hierárquico:** Nós podem conter outros nós para organizar cenas 3D.
- **Áudio Espacial:** Suporta áudio espacial 3D via OpenAL, incluindo formatos .wav e .ogg.
- **Iluminação e Renderização:** Oferece iluminação ambiente, direcional, pontual e spot em tempo real, além de renderização baseada em física (reflectância de Fresnel, oclusão geométrica, distribuição de microfacetas).
- **Suporte a Modelos e Geometria:** Inclui carregadores para glTF (.gltf, .glb), Wavefront OBJ (.obj) e COLLADA (.dae). Também possui geradores de geometria para caixas, esferas, cilindros e toros, com suporte a morph targets e multimateriais.
- **Animação e Shaders:** Possui um framework de animação para posição, rotação e escala, e suporta shaders GLSL de vértice, fragmento e geometria criados pelo usuário.
- **Outros Recursos:** Suporta displays HiDPI, câmeras perspectiva e ortográfica, fontes TrueType, texturas de imagem (GIF, PNG, JPEG), e inclui um motor de física básico experimental.
### Dependências e Instalação
O motor requer Go 1.8+, um driver OpenGL e um compilador C compatível com GCC. Sistemas baseados em Unix requerem bibliotecas C específicas (como xorg-dev, libgl1-mesa-dev, libopenal-dev e libvorbis-dev). Builds no Windows usam o toolchain mingw-w64, enquanto macOS requer pacotes Homebrew para OpenAL e Vorbis. O motor pode ser instalado via comandos padrão do Go clonando o repositório e executando `go install ./...`.
### Exemplos e Comunidade
O repositório inclui um exemplo básico "Hello G3N" mostrando um toro azul e um botão que muda sua cor, demonstrando câmeras, luzes e integração com GUI. O projeto fornece documentação de API via GoDoc, guias wiki e um canal de comunidade no Discord para suporte e discussão.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.