Upgrade to Pro — share decks privately, control downloads, hide ads and more …

1. Introduction to OpenGL

1. Introduction to OpenGL

Tatsuya Yatagawa

April 06, 2021
Tweet

More Decks by Tatsuya Yatagawa

Other Decks in Technology

Transcript

  1. What is OpenGL? ◼ OpenGL (Open Graphics Library) ◼ Standard

    library for 3D graphics programming ◼ Khronos Group manages OpenGL ◼ OpenGL features ◼ OS independent (it works on Windows, Mac etc.) ◼ Hardware independent (it works on every CPU, GPU) ◼ Others? ◼ DirectX: Graphics library for Windows (by Microsoft) ◼ Metal: Graphics library for MacOS (by Apple) ◼ Vulkan: Modern (but super-complicated!) graphics library (by Khronos Group) Computer Graphics Course @Waseda University
  2. How can we use OpenGL? ◼ No installation required! ◼

    Already installed when your OS is setup. ◼ But, you should use utility libraries ◼ OpenGL itself does not have OS-dependent features ◼ E.g.) Show up windows, mouse and keyboard interaction. ◼ GLUT (GL Utility Toolkit), GLFW (GL Framework), Qt, openFrameworks are famous utility libraries ◼ This course uses GLFW (it’s basic and good for study!) Computer Graphics Course @Waseda University
  3. GLFW ◼ GLFW (OpenGL Framework) ◼ Utility library for easily

    using OpenGL ◼ GLUT is quite similar, but is rather out-dated ◼ Pros of GLFW ◼ OpenGL version is controllable (4.6 is latest version in 2020) ◼ Easy to implement OS-independent programs ◼ Possible to implement object-oriented programs ◼ Cons of GLFW ◼ GLFW provides minimum (but often enough) functions ◼ Compared to Qt/openFrameworks, source code will be longer Computer Graphics Course @Waseda University
  4. Where to place GLFW files? ◼ Recommends ◼ Make a

    folder at C:/graphics/lib/ ◼ Place “glfw-3.x.x.bin.WIN64” in this folder after renaming it to “glfw” ◼ Locations of your source codes ◼ Make a folder at C:/graphics/src/ ◼ Inside this, make “Day1”, and include source codes in it. Computer Graphics Course @Waseda University
  5. Quick introduction to Visual Studio ◼ Visual Studio ◼ IDE

    for multiple languages by Microsoft ◼ In this course, we use it for C++ ◼ Both code editor and compilers are available ◼ Latest version is Visual Studio 2019 (in Mid 2020.) ◼ Terms for Visual Studio ◼ Build: ◼ Compile source codes and link binaries. ◼ Project: ◼ Set of source codes for building a single executable (or library). ◼ Solution: ◼ Set of projects to provide a solution to your problem. ◼ For this course, you should use 1 solution to 1 class. Computer Graphics Course @Waseda University
  6. FAQ ◼ I’m a Mac user! ◼ Use Homebrew (https://brew.sh/index)

    ◼ Only what you can do is type “brew install glfw” on terminal ☺ ◼ Be careful, homebrew needs Xcode installation (it takes hours!) ◼ What editor should I use? ◼ Visual Studio would be the best (it’s free!) ◼ For Mac users, VS code would be the best choice (sorry, but please setup by yourself). ◼ You should prepare “launch.json” and “tasks.json” for your convenience (check by yourself for details) Computer Graphics Course @Waseda University
  7. Install IDEs (start now!) ◼ Visual Studio Community (for Windows)

    ◼ Access: https://visualstudio.microsoft.com/ja/vs/community/ ◼ Download and install it. ◼ When installing, please tick the package “Desktop development with C++”. ◼ It may take hours! ◼ Xcode (for Mac) ◼ It’s necessary even if you use VS code as an editor. ◼ Install it through Apple Store app. ◼ It may take hours! Computer Graphics Course @Waseda University
  8. Start Visual Studio ◼ Search from application list (with Win-key)

    ◼ Following display is shown up ◼ Proceed to click “Continue without code” Computer Graphics Course @Waseda University Click here
  9. Create a new project ◼ From “File (F)” menu, choose

    “New (N)” → “Project (P)” Computer Graphics Course @Waseda University
  10. Create a new project Computer Graphics Course @Waseda University 2.

    Find out “Empty project” 3. Press “Next” to proceed 1. Specify language as “C++”
  11. Project settings ◼ For example, each item is set as:

    ◼ Project name: Program01 ◼ Location: C:/graphics/src ◼ Solution name: Day1 Computer Graphics Course @Waseda University
  12. Add another project ◼ While you’re opening a solution, ◼

    File(F) → Add(D) → New project(N) Computer Graphics Course @Waseda University
  13. Add a new project Computer Graphics Course @Waseda University ◼

    Setup project as you did to create one Add a project to solution when you work on an assignment (1 project for 1 assignment)
  14. Settings for GLFW ◼ Property sheet ◼ Setup include (for

    header files) and library directories ◼ This can skip common settings for different projects Computer Graphics Course @Waseda University
  15. Settings for GLFW ◼ Show up “Property Manager” ◼ View(V)

    → Property manager(N) Computer Graphics Course @Waseda University
  16. Add a property sheet Computer Graphics Course @Waseda University ◼

    Add a new property sheet ◼ Right click “Release | x64” in “Program01” ◼ Choose “Add new property sheet(P)”
  17. Add a property sheet ◼ Specify name and location ◼

    Name(N): OpenGL.Common.x64.props (Extension necessary!) ◼ Location(L): C:/graphics/src/props/ Computer Graphics Course @Waseda University
  18. Edit property sheet ◼ Double click the name of sheet

    Computer Graphics Course @Waseda University
  19. Setup include directory Computer Graphics Course @Waseda University ◼ On

    “VC++ directory”, ◼ Click down arrow at the right of “Include directory” ◼ Choose “Edit”
  20. Setup include directory ◼ Click “new folder” icon (see figure

    below) Computer Graphics Course @Waseda University
  21. Setup library directory ◼ For library directory in “VC++ directory”,

    ◼ Choose C:/graphics/libs/glfw/lib-vc2019 Computer Graphics Course @Waseda University
  22. After setup Computer Graphics Course @Waseda University Notice: lib-vcXXXX for

    library directory can be changed depending on your VS version
  23. Setup additional dependencies (library names) Computer Graphics Course @Waseda University

    ◼ On “Linker” → “Inputs” → “Additional dependencies” ◼ Choose “Edit” from pull-down menu
  24. Setup additional dependencies (library names) Computer Graphics Course @Waseda University

    Add “opengl32.lib”, “glu32.lib”, and “glfw3.lib”. (Need line breaks!)
  25. Save property sheet ◼ Make sure setting on the sheet

    is saved! ◼ Every time after setup, click “Save OpenGL.Common.x64”. Computer Graphics Course @Waseda University
  26. Add existing property sheet Computer Graphics Course @Waseda University ◼

    You can use the sheet in other settings. ◼ Right click “Debug | x64” Choose “Add existing property sheet (E)”
  27. After setup Computer Graphics Course @Waseda University ◼ Make sure

    the sheet is set to both “Release | x64” and “Debug | x64”
  28. Add source code Computer Graphics Course @Waseda University ◼ Add

    a C++ source for project ◼ From “Solution explorer” at the side (maybe at left or right) Right click “Program001” → “Source Files” Then, choose “Add(D)” → “New item(W)”
  29. Build project Computer Graphics Course @Waseda University ◼ Change build

    mode to “Release” and “x64” ◼ “Build(B)” → “Build solution(B)” or ◼ “Ctrl + Shift + B” (Press together)
  30. Build project Computer Graphics Course @Waseda University ◼ After build

    Make sure your build finish successfully (yon can find “1 success”)
  31. Run Computer Graphics Course @Waseda University ◼ “Debug (D)” →

    “Start without debug (H)” or ◼ “Ctrl + F5” (press together)