NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Lekce 1 - 3D grafika v OpenGL a C++ - Úvod a instalace

Vítejte u první lekce z on-line kurzu OpenGL, ve kterém se naučíte používat moderní OpenGL 4.6. Probereme si úplné základy, pokročilé použití knihovny a na konci si i naprogramujeme vlastní hru :)

Co je to OpenGL

OpenGL je tzv. grafické API, jinak-li rozhraní pro tvorbu aplikací počítačové grafiky. Je multiplatformní, takže ho můžeme používat třeba na Linuxu nebo Windows. Hlavní rolí OpenGL je umožnění interakce programu s grafickým procesorem, aby mohl využít jeho hardwarově-zrychleného vykreslování a výpočtů. OpenGL staví na architektuře klient-server, kde klient (program) posílá příkazy serveru (grafický procesor) a ten je vykonává. To je jeden z důvodů, proč se v OpenGL nepoužívá objektově orientované programování. OpenGL je navíc open source, takže je v něm možné vytvářet soukromé i komerční aplikace.

Instalace

Bohužel si nemůžeme všechno nainstalovat jedním klinutím. Všechny komponenty si musíme stáhnout a propojit s programem jednotlivě. V instalaci budeme používat knihovny pro 64-bitový Windows, ovšem jiné platformy by neměly být problém.

Vývojové prostředí

Jako naše vývojové prostředí budeme používat Visual Studio. Doporučuji použít nejnovější vydání Visual Studio 19, ovšem starší verze by měly fungovat bez problémů. Nejnovější verzi si můžete stáhnout na https://visualstudio.microsoft.com/cs/ . Ve Visual Studio Installer si nezapomeňte dostáhnout modul Vývoj desktopových aplikací pomocí C++.

Pokud již máte nainstalované Visual Studio a potřebný modul, vytvořte si nový projekt a zvolte si Console App. Konzoli budeme používat pro prozatímní debuggování a až budeme tvořit naší hru, tak si jí v nastavení vyřadíme z kompilace. Po vytvoření projektu na něj klikněte pravým tlačítkem a zvolte Properties. Zde budeme připojovat OpenGL k našemu projektu.

Potřebné knihovny a jejich stažení

Pro vývoj v OpenGL budeme potřebovat tři hlavní knihovny:

  • GLEW - umožňuje používání správné verze OpenGL pro každou implementaci
    • u sekce Downloads zvolte Binaries a tu stáhněte
  • GLFW - umožňuje jednoduše zpracovávat vstupy a vytvářet okna
    • zase budeme stahovat binárky, pro nás to bude 64-bit Windows binaries
  • GLM - umožňuje používání pokročilých matematických výpočtů
    • zvolte si nejnovější verzi a dole u kolonky Assets stáhněte .zip archiv (ne source code)

pokud si nejste jistí, co stáhnout, tak dám všechny potřebné archivy dolů ke stažení

Propojení knihoven s projektem

Po stažení všech potřebných knihoven si pro ně vytvořte složku, odkud je budeme importovat. Zvolte si lokaci, která je pevná a nezmění se. Do této složky si rozbalte všechny tři archivy a přejmenujte je pouze na zkratky glew, glfw a glm.

Nyní se vraťme na okno Properties, které jsme si předtím otevřeli. Nahoře si nastavte Platform na svou platformu, v našem případě 64x.

Include directories

Nejdříve musíme kompileru přidat cesty ke kódu, který budeme includovat. V Properties okně najeďte na Configuration Properties -> C/C++ -> General -> Additional Include Directories, klikněte do volného místa napravo, klikněte na šipku a zvolte <Edit...>. Tím se nám otevře nové okno. Zvolte první tlačítko New Line, klikněte na ... a přidejte následující složky:

  • C:\...\knihovny\glew\include
  • C:\...\knihovny\glfw\include
  • C:\...\knihovny\glm

Následně zvolte OK a v Properties okně Použít.

Library directories

Dále musíme linkeru ukázat, kde se nachází jednotlivé knihovny. Proces bude stejný jako v předchozím kroku, ale následující složky budeme přidávat do Configuration Properties -> Linker -> General -> Additional Library Directories a hodnoty budou pouze dvě:

  • C:\...\knihovny\glew\lib\Release\x64 (poslední složka závisí na platformě)
  • C:\...\knihovny\glfw\lib-vc2019 (poslední složka závisí na použité verzi Visual Studia)

Aditional dependencies

Jako poslední krok musíme ještě přidat názvy samotných knihoven, které chceme používat. Proces bude zase velice podobný předchozím krokům. Přesuňme se na Configuration Properties -> Linker -> Input -> Additional Dependencies a po otevření okna se zde místo tlačítek nachází pouze textové pole, do kterého vložíme tyto odřádkované hodnoty:

  • opengl32.lib
  • glew32.lib
  • glfw3.lib
  • glfw3dll.lib

Tímto bychom měli mít všechno potřebné nastaveno. Nezapomeňte kliknout na tlačítko Použít, ať se nám všechny změny uloží. Nyní zavřeme okno Properties a vrátíme se do Visual Studia.

Před psaním kódu se ještě musíme ujistit, že se kód kompiluje pro naší platformu. To zjistíme tak, že se podíváme na druhý řádek lišty (nahoře), kde uvidíme dvě drop-down menu. Jejich hodnoty by měly být defaultně nastaveny na Debug a x86. Druhou hodnotu musíme nastavit na tu platformu, na kterou jsme linkovali knihovny. Pokud tam bude nesprávná platforma, tak by se objevil problém hned po naincludování OpenGL souborů, protože by je kompiler nenašel.

Pro ověření správnosti instalace si můžete zkusit naincludovat hlavičkové soubory knihoven:

#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <glm/glm.hpp>

using namespace glm;

int main(void)
{

}

Pokud jste postupovali správně, kód by neměl ukazovat žádné chyby a měl by se bez problémů zkompilovat.

Tímto jsme si úspěšně stáhli a otestovali všechny klíčové moduly. Pokud se vám nepovedlo stáhnout správné knihovny, jsou níže ke stažení.

V další lekci, 3D grafika v OpenGL a C++ - Vytvoření okna, si popíšeme souřadnicový systém a otevřeme si naše první okno.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 24x (10.51 MB)
Aplikace je včetně zdrojových kódů v jazyce C++

 

Všechny články v sekci
OpenGL - 3D grafika v C++
Přeskočit článek
(nedoporučujeme)
3D grafika v OpenGL a C++ - Vytvoření okna
Článek pro vás napsal Richard Bleier
Avatar
Uživatelské hodnocení:
8 hlasů
Aktivity