Giter VIP home page Giter VIP logo

learn-modern-opengl's Introduction

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 dnf xorg-dev
sudo dnf install libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel

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
make 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

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

learn-modern-opengl's People

Contributors

achcarlucas avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.