Skip to content

AchcarLucas/learn-modern-opengl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

325 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

learn-modern-opengl

Projeto criado para aprender opengl - exemplos com refatorações do site learn opengl

📋 Instalações das dependências (Linux)

Instalação da lib X11

sudo apt-get install doxygen xorg-dev
sudo apt install libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libglx-dev libgl1-mesa-dev libxxf86vm-dev

Instalação da lib GLFW (GLFW-3.3.8)

Baixar o pacote GLFW-3.3.8

Após baixar, extrair e faça a compilação usando os comandos dentro da pasta glfw-3.3.8

cmake -S . -B build
cmake build
cd build
sudo make install

Ao finalizar, será exibido no terminal, os locais de instalações das libs e os includes como pode ser visto na imagem abaixo:

glfw-install

Instalação do Assimp (Assimp-5.3.1)

Baixe o Assimp assimp-5.3.1 após baixar, extrair e faça a sua build

cd assimp
cmake CMakeLists.txt 
cmake --build .

após fazer a build, copie os arquivos .so para a pasta /usr/local/lib e crie um atalho do libassimp.so.5 para a pasta principal do projeto clonado

Instalação do FreeType 2 (freetype-2.13.2)

Baixe o freetype freetype-2.13.2

Após baixar, extrai e faça a build

cd freetype-2.13.2
./configure --enable-static
make

O arquivo .a deverá estar em uma pasta oculta chamada .lib dentro de objs Copie a lib libfreetype.a para dentro da pasta ./lib/freetype-2.13.2/lib do projeto

PS: O projeto já consta com a lib compilada e configurada para linux (Ubuntu 24.04 - 6.2.0-37-generic)

🔧 Configuração do CodeBlock

Verifique se a configuração do seu codeblock como segue as imagens a seguir:

img_2 img_3 img_4 img_5

Pronto, o Codeblock está configurado

🚀 Executando um exemplo

Após finalizar a instalação das libs e a configuração do codeblock, no arquivo tests.hpp mude os exemplos pela definition #define run(width, height) run_XXX(width, height) , onde o XXX é o número do exemplo que você deseja.

Exemplo-1 (Draw Quad)

ex_1

Exemplo-2 (Draw Quad)

ex_2

Exemplo-3 (Draw Quad)

ex_3

Exemplo-4 (Draw Cube)

ex_4

Exemplo-5 (Light Shader)

ex_5

Exemplo-6 (Material Shader)

ex_6

Exemplo-7 (Material Shader)

ex_7

Exemplo-8 (Emit Shader)

ex_8

Exemplo-9 (Light Shader)

ex_9

Exemplo-10 (Light Shader)

ex_10

Exemplo-12 (Loading Model)

ex_12

Exemplo-14 (Outline Shader)

ex_14

Exemplo-15 (Transparent Shader)

ex_15

Exemplo-16 (Kernel Shader)

ex_16

Exemplo-17 (Kernel Shader)

ex_17

Exemplo-18 (Skybox Mapping)

ex_18

Exemplo-22 (Geometry Shader)

ex_22

Exemplo-23 (Geometry Shader)

ex_23

Exemplo-24 (Exploded Shader)

ex_24

Exemplo-25 (Normal Vertex Shader)

ex_25

Exemplo-26 (Instances)

ex_26

Exemplo-27 (Instances)

ex_27

Exemplo-28 (Instances)

ex_28

Exemplo-29 (MSAA)

ex_29

Exemplo-30 (Blinn-Phong)

ex_30

Exemplo-31 (Gamma Correction)

ex_31

Exemplo-32 (Camera Depth Mapping)

ex_32

Exemplo-33 (Directional Shadow Mapping)

ex_33

Exemplo-34 (Point Shadow Mapping)

ex_34

Exemplo-35 (Normal Mapping)

ex_35

Exemplo-37 (Model Normal Mapping)

ex_37

Exemplo-38 (Render Text)

ex_38

Exemplo-41 (Parallax Mapping)

ex_40

Exemplo-41 (Parallax Mapping Occlusion)

ex_41_1 ex_41_2

Exemplo-42 (Multi Shadow and Light)

ex_42

Exemplo-43 (HDR with Multi Light)

ex_43

Exemplo-44 (Bloom Without HDR)

ex_44_1

Exemplo-44 (Bloom With HDR)

ex_44_1

Exemplo-45 (Deferred Shader no Optimization)

ex_45

Exemplo-46 (Deferred Shader Simple Optimization)

ex_46

Exemplo-47 (SSAO - Ambiente Occlusion)

ex_47

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors