Uma tentativa de evolução e refatoração do meu clone de Minecraft feito com OpenGL Legado.
Este repositório nasceu da percepção de que a minha primeira tentativa de construir um motor de voxels — embora funcional — utilizava práticas defasadas e pouco performáticas (o "modo imediato" do OpenGL). A ideia aqui era fazer as coisas do jeito certo: implementando a pipeline programável com Shaders, VBOs (Vertex Buffer Objects) e VAOs (Vertex Array Objects).
Sendo honesto, este projeto não atingiu o seu objetivo principal.
Na época do desenvolvimento (final do semestre letivo), o meu tempo livre foi engolido pelas demandas da escola. Aliado a isso, a curva de aprendizado para pular do OpenGL Legado para o Moderno se provou mais íngreme do que eu antecipava. Configurar a abstração das classes de Shader, montar e gerenciar buffers manualmente em C++ e fazer a matemática de matrizes passar corretamente para a GPU me tomou muito esforço.
Acabei não conseguindo reproduzir no OpenGL Moderno a mesma quantidade de funcionalidades e o mesmo "mundo" gerado que eu tinha na versão anterior. O projeto travou em um estágio inicial.
Mesmo não tendo terminado em um motor completo e funcional, a tentativa foi extremamente válida:
- Entendimento da Pipeline Programável: Foi aqui que escrevi e carreguei meus primeiros
vertex_shader.vertefragment_shader.frag. - Arquitetura de Motor Gráfico: A estrutura das pastas e a organização das classes tentou ser muito mais limpa do que na minha versão inicial, delegando as responsabilidades corretamente entre a Câmera, Entradas (Callbacks) e as Camadas de Renderização (WindowTool e Shader).
- C++ 20: Linguagem base.
- OpenGL (Moderno): Pipeline programável (Core Profile).
- GLEW: Utilizado desta vez para carregar as extensões do OpenGL (em vez do GLAD).
- GLFW & GLM: Manuseio de janelas e matemática matricial, respectivamente.
- CMake: Orquestração do build.
Este repositório serve como um "cemitério de código" produtivo. É a prova de que reescrever um projeto do zero com tecnologias melhores não é garantia de sucesso imediato, mas os tropeços no meio do caminho (especialmente com a compilação de Shaders na mão) ensinaram lições que ficaram.