OpenGL Course - Create 3D and 2D Graphics With C++

Поделиться
HTML-код
  • Опубликовано: 20 авг 2024
  • Learn how to use OpenGL to create 2D and 3D vector graphics in this course.
    Course by Victor Gordan. Check out his channel: / @victorgordan
    💻 Code: github.com/Vic...
    See top comment for more resources.
    ⭐️ Contents ⭐️
    Introduction
    0:00:00 Introduction to Course
    Install
    0:00:00 Downloads
    0:02:11 Setting Up VS Project
    0:02:50 Generating GLFW
    0:03:29 Build Solution GLFW
    0:04:03 Importing Libraries
    0:04:53 Configuring VS
    0:06:02 Finishing up & Testing
    Window
    0:06:36 Initializing GLFW
    0:07:03 Configuring GLFW
    0:08:26 Creating Window
    0:09:53 While Loop
    0:11:01 OpenGL Viewport
    0:11:36 Buffer Explanation
    0:12:55 Adding Color
    0:14:03 Comments for Window
    Triangle
    0:14:25 Graphics Pipeline
    0:16:56 Shaders Source Code
    0:17:24 Vertices
    0:18:54 Vertex and Fragment Shaders
    0:20:45 Shader Program
    0:21:36 Vertex Buffer Object
    0:24:35 Vertex Array Object
    0:26:57 Cleaning Up
    0:27:34 Rendering Loop
    0:28:38 Comments for Triangle
    Index Buffer
    0:29:24 Normal Triangle
    0:29:47 Duplicate Vertices
    0:30:06 Solution
    0:30:26 Index Buffer
    0:30:51 Implementation
    0:32:22 Comments for Index Buffer
    Organizing
    0:32:33 Introduction to Organizing
    0:32:43 Shader Text Files
    0:33:21 Shader Class
    0:35:27 VBO Class
    0:36:18 EBO Class
    0:36:35 VAO Class
    0:37:36 Adding Classes to Main.cpp
    0:37:59 Comments for Organizing
    Shaders
    0:38:34 Introduction to Shaders
    0:38:44 Shaders Properties
    0:38:57 Vertex Shader
    0:40:01 Fragment Shader
    0:40:17 Adding Colors
    0:41:23 Modifying the VAO class
    0:41:54 Vertex Attribute Pointer Explanation
    0:43:09 linkAttrib Code
    0:43:19 Interpolation
    0:43:50 Uniforms
    0:46:08 Error Checking Shaders
    0:46:29 Comments for Shaders
    Textures
    0:46:39 Types of Textures
    0:46:54 stb Library
    0:47:58 Square
    0:48:14 Texture Sizes
    0:48:37 Importing in an Image
    0:49:19 Creating the Texture
    0:49:43 Texture Units
    0:50:19 Interpolation Types
    0:51:11 Texture Mapping
    0:52:27 Assigning the Image to the Texture
    0:53:10 Errors
    0:53:21 Mipmaps
    0:53:50 Texture Coordinates
    0:54:15 Vertex and Fragment Shaders
    0:54:51 Finishing up
    0:55:39 Texture Class
    0:55:56 Comments for Textures
    Going 3D
    0:56:01 Introduction to Going 3D
    0:56:11 Correction
    0:56:23 Matrices
    0:56:57 GLM
    0:57:26 Coordinate Types
    0:58:35 Transformation Matrices
    0:59:13 Matrix Initialization
    0:59:41 View & Projection Matrices
    1:01:16 Importing Matrices
    1:01:53 Matrices Final Multiplication
    1:02:07 Pyramid
    1:02:41 Rotation & Timer
    1:03:11 Depth Buffer
    1:03:36 Comments for Going 3D
    Camera
    1:04:11 Header File
    1:05:04 Basic Camera Class Functions
    1:05:54 Main File Changes
    1:06:21 Vertex Shader Changes
    1:06:43 Key Inputs
    1:07:38 Mouse Inputs
    1:09:21 Fixing Camera Jumps
    1:09:49 Comments for Camera
    Lighting
    1:10:13 Modify Camera
    1:10:30 Light Cube
    1:10:50 Light Color
    1:12:03 Diffuse Lighting & Normals
    1:15:36 Ambient Lighting
    1:16:18 Specular Lighting
    1:17:54 Comments for Lighting
    Specular Maps
    1:18:15 Modify Texture Class
    1:18:34 Plane With Texture
    1:19:06 Specular Maps Theory
    1:19:30 Implementing Specular Maps
    1:20:06 Ending for Specular Maps
    Types of Light
    1:20:16 Types of Light
    1:20:26 Point Light
    1:20:41 Intensity Attenuation
    1:20:51 Inverse Square Law
    1:21:03 CG Intensity Equation
    1:21:36 Implementation of Attenuation
    1:22:09 Directional Light
    1:22:52 Spotlight
    1:23:08 Light Cones
    1:23:18 Cones Comparison
    1:23:31 Cos vs Angle
    1:23:45 Finishing the Spotlight
    1:24:19 Comments for Types of Light
    Mesh Class
    1:24:33 Introduction for Mesh Class
    1:24:46 Mesh Definition
    1:25:01 Mesh Class Header
    1:25:58 Modify the VBO Class
    1:27:06 Modify the EBO Class
    1:27:16 Mesh Constructor
    1:27:41 Rearrange Shader Layouts
    1:28:10 Mesh Draw Function I
    1:28:51 Modify the Texture Class
    1:29:22 Mesh Draw Function II
    1:29:54 Modify the Uniforms
    1:30:20 Main.cpp Changes
    1:31:06 Comments for Mesh Class
    Model Loading
    1:31:28 Introduction for Model Loading
    1:31:47 Small Note on 3D Models
    1:32:27 JSON Library
    1:32:41 Model Header
    1:33:03 Model.cpp File
    1:33:13 JSON File Structure
    1:33:30 Getting the Binary Data
    1:34:07 glTF File Structure
    1:36:28 getFloats() and getIndices()
    1:39:09 Grouping Functions
    1:39:19 assembleVertices()
    1:39:50 Modifying the Texture Class
    1:40:22 getTextures()
    1:41:50 loadMesh()
    1:42:23 Matrix Transformations Explanation
    1:42:54 traverseNode() Declaration
    1:43:28 Modifying the Mesh Class
    1:43:41 Modifying the Vertex Shader
    1:44:15 traverseNode() Writing
    1:45:18 Modifying the Main.cpp File
    1:45:28 Examples of Models
    1:46:01 Comments for Model Loading

Комментарии • 868

  • @VictorGordan
    @VictorGordan 3 года назад +1779

    Hey everyone, I hope you've enjoyed the course I've made, had a lot of fun making it! :)

    • @user-pr8jz7fz8j
      @user-pr8jz7fz8j 3 года назад +7

      Just what I was looking for, thanks!

    • @oggy107
      @oggy107 3 года назад +7

      thanks dude...

    • @ANILKUMAR-cc3lb
      @ANILKUMAR-cc3lb 3 года назад +6

      Nice dude

    • @samiulislamsharan
      @samiulislamsharan 3 года назад +5

      I'm getting error while including #include

    • @oggy107
      @oggy107 3 года назад +5

      @@samiulislamsharan try checking additional include directory is correct or not in project properties.

  • @EminTuralic
    @EminTuralic 3 года назад +295

    What a blessing - I'm learning OpenGL currently and it's hard to find self-consistent sources. Thank you so much.

    • @vitorgdc
      @vitorgdc 2 года назад +15

      Yeah, for sure... I kinda wish those types of things came with some kind of pdf or documentation guiding you through all the commands and codes. But hey, I found this video so I'll dive right in

    • @wertiaaudit5746
      @wertiaaudit5746 2 года назад +4

      @@vitorgdc they do

    • @magmu7956
      @magmu7956 3 месяца назад

      @@wertiaaudit5746 where ?

    • @chrisflory1268
      @chrisflory1268 3 месяца назад +1

      keep going man i just started preddy much i just have the knolege of barely the apps and software i got to use its insane how many loop holes u goota go threew and how many things u gotta know just to start try ing to code almost anything . good luck

  • @anasssoulimani9288
    @anasssoulimani9288 3 года назад +196

    No way, I start this semestre with C++,you guys put an oop video. I start UML before Java and you guys put an UML video. My teacher asks me to create an-ecomerce website and you guys put the same thing. And now I'm on holiday, I start watching brian will videos on opengl and you guys post this.Thanks a lot!!❤❤❤❤❤❤❤❤

    • @vojtastruhar8950
      @vojtastruhar8950 3 года назад +2

      @Victor Joseph me too

    • @bmejia220
      @bmejia220 3 года назад +6

      Awesome Anass
      best of luck in your programming career!

    • @AZ-wz8oq
      @AZ-wz8oq 3 года назад

      Tell me open gl work on windows ?

    • @SirusStarTV
      @SirusStarTV 2 года назад

      @@AZ-wz8oq of course, it's not like mac os

    • @ZiplawDev
      @ZiplawDev 2 года назад

      @BeeBop I still find UML somewhat useful, if not in it's purest form, to lay out code structure and how problems should be tackled and what not

  • @freecodecamp
    @freecodecamp  3 года назад +94

    More OpenGL resources that wouldn't fit in the description:
    🔗 OpenGL Docs: www.khronos.org/registry/OpenGL-Refpages/gl4/
    🔗 glTF file format: godotengine.org/article/we-should-all-use-gltf-20-export-3d-assets-game-engines
    🔗 JSON library: github.com/nlohmann/json
    🔗 glm Library: glm.g-truc.net/0.9.9/index.html
    🔗 3Blue1Brown's Linear Algebra Playlist: ruclips.net/p/PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
    🔗 stb Library: raw.githubusercontent.com/nothings/stb/master/stb_image.h
    🔗 Visual Studio: visualstudio.microsoft.com/downloads
    🔗 CMake: cmake.org/download
    🔗 GLFW: www.glfw.org/download.html
    🔗 Glad: glad.dav1d.de

    • @SujeetKumar-gu8ox
      @SujeetKumar-gu8ox 3 года назад +2

      Please one video for CUDA C

    • @prezadent1
      @prezadent1 3 года назад +1

      The chapter timelist thingy isn't working.

    • @samuelgirmagirma4019
      @samuelgirmagirma4019 3 года назад

      i am geting this error on glad
      Application is not available
      The application is currently not serving requests at this endpoint. It may not have been started or is still starting.
      Possible reasons you are seeing this page:
      The host doesn't exist. Make sure the hostname was typed correctly and that a route matching this hostname exists.
      The host exists, but doesn't have a matching path. Check if the URL path was typed correctly and that the route was created using the desired path.
      Route and path matches, but all pods are down. Make sure that the resources exposed by this route (pods, services, deployment configs, etc) have at least one pod running.

    • @milanchrenko
      @milanchrenko 3 года назад

      @@samuelgirmagirma4019 You can change link from http to https and then work.

    • @neilwilkinson4243
      @neilwilkinson4243 2 года назад

      Please pin this post, it's lost down here :)

  • @takapapatapaka5326
    @takapapatapaka5326 Год назад +54

    If needed, here are some timestamps :
    (edit : there is a more precise list in the description)
    0:08 Welcome
    1:22 Install
    6:34 Window
    14:25 Triangles
    29:24 Index Buffer
    32:33 Organizing
    38:34 Shaders
    46:38 Textures
    56:07 Going 3D
    1:04:09 Camera
    1:10:10 Lighting
    1:18:15 Specular Maps
    1:20:17 Types of Light
    1:24:33 Mesh Class
    1:31:27 Model Loading
    Good luck to you all and thx to the creator for this course

    • @anniemannie6
      @anniemannie6 11 месяцев назад

      checkout the description

    • @takapapatapaka5326
      @takapapatapaka5326 11 месяцев назад +1

      @@anniemannie6 yeah, i did not notice them first time i watched the video and once found, i find them to be a bit too overwhelming. I edited my comment to avoid confusion, thank you for pointing it out !

  • @radshiba_
    @radshiba_ 2 года назад +89

    This course is super useful, my only issue has been that the footage is sped up so much to the point where I have trouble following along with the video at 0.25x speed. It gets pretty frustrating. Aside from that, I'm learning a lot though!

    • @swishchee
      @swishchee Год назад +12

      What I've been often doing in that case (for any sped-up video like that) is to pause the video and use comma and full-stop to frame skip forward and backwards.

    • @daskampffredchen9242
      @daskampffredchen9242 Год назад +3

      I would also recommend Enhancer for RUclips. It also allows you to set the speed to 10%

    • @Freg-ld2lo
      @Freg-ld2lo 11 месяцев назад +7

      skill issue

    • @Csaim
      @Csaim 7 месяцев назад

      lol@@Freg-ld2lo

  • @matteo_mcguinness
    @matteo_mcguinness 3 года назад +242

    Literally what I wanted to learn. How am I so lucky?

  • @TheMrInnokenty
    @TheMrInnokenty 3 года назад +42

    I’ve started an SDL course a week ago, and here’s OpenGl. That’s just perfect 👌🏽

  • @TheVideoChatter
    @TheVideoChatter 3 года назад +35

    I've been searching for ways to learn C++ graphics rendering and then you go and upload my solution. Just what I needed today, thank you so much!

    • @_Mrunalwankhede
      @_Mrunalwankhede 2 года назад +2

      i have no idea what gl do, can you please explain, what it is and what it is used for, so that i can think, if i need it

    • @gooficat
      @gooficat 5 месяцев назад

      @@_Mrunalwankhede It is used for low level graphics development,
      for example if you wanted to make a 3d graphics engine you would use opengl

  • @jeanjacquesstrydom
    @jeanjacquesstrydom 3 года назад +42

    This is an absolutely awesome tutorial, thank you so much for making it! I just wish people would make more OpenGL tutorials that are a bit more cross-platform, rather than just always focusing on Windows

    • @VictorGordan
      @VictorGordan 3 года назад +6

      Thank you! Sadly it would be quite a bit more work to translate it to the other OSs and then also check if it works properly on them, and I just don't have that kind of time right now in university...

    • @jeanjacquesstrydom
      @jeanjacquesstrydom 3 года назад +1

      @@VictorGordan yeah I can definitely imagine that. And as someone that makes videos as well I can totally sympathize with you, it was more just my frustration from trying to do graphics programming outside of windows 😅

    • @SomeRandomPiggo
      @SomeRandomPiggo Год назад

      I'm doing this on Linux, fine so far

  • @EL-cb1nu
    @EL-cb1nu 3 года назад +111

    I guess a lot of people have started building their own graphics engines during pandemic haha. Nice video!

  • @moccadocca9234
    @moccadocca9234 3 года назад +18

    OMG I've been looking around for good OpenGL courses. Perfect timing!

  • @mattstopa9436
    @mattstopa9436 Год назад +2

    Excellent lecture. I at first had a hard time with the accent but the way things were explained was so good that I got it!

  • @jamespottex5197
    @jamespottex5197 3 года назад +211

    This channel solely can beat a university degree

    • @alexismandelias
      @alexismandelias 3 года назад +52

      This comment is precisely why you should get a university degree

    • @techtycho4752
      @techtycho4752 3 года назад +3

      True

    • @mujtabahussain7015
      @mujtabahussain7015 3 года назад +7

      but still having a degree helps.

    • @theworldminusraphtheninjat4378
      @theworldminusraphtheninjat4378 3 года назад +3

      @@alexismandelias when did u graduate exactly?

    • @alexismandelias
      @alexismandelias 3 года назад +5

      @@theworldminusraphtheninjat4378 haven't graduated yet, but still I know more than what a RUclips channel could ever hope to "teach"

  • @BangMaster96
    @BangMaster96 3 года назад +48

    This was so awesome. I love you guys for giving us free education. Please if possible, make a course on developing a video game using OpenGL

  • @industrialdonut7681
    @industrialdonut7681 2 года назад +5

    this is crazy high quality like I'm actually able to follow along with almost no problems so far

  • @ajinkyax
    @ajinkyax 3 года назад +21

    Quick info. Open GL is not a framework or library, it's just a set of rules/guidelines that each Graphics card companies have to implement. And we as programmers have to call them. Hence each card has different openGL API

    • @harryplotter1389
      @harryplotter1389 2 года назад +9

      Yes, but GLFW is a library.

    • @wertiaaudit5746
      @wertiaaudit5746 2 года назад +2

      Opengl does have a framework and a library , video card companies also have their own library to communicate with opengl and vice versa

  • @Kapalatus
    @Kapalatus 2 года назад +7

    You had me at "You can show that window to your imaginary friends"....

  • @ra1games79
    @ra1games79 3 года назад +16

    Amazing! I want more tutorials like this about OpenGL ! :)

  • @thebeaverkidd2970
    @thebeaverkidd2970 2 года назад +5

    You plus the OpenGL/C++ 3D Tutorial by Suraj Sharma combined has helped me learn a lot really quickly for starting to do a 3d game.
    The only thing I feel like you could have touched on is Resizing the window which i later on found out I could to by changing the width and height from 'const static int' to just 'int' and then in the while loop do this:
    glfwGetFramebufferSize(window, &width, &height);
    glViewport(0, 0, width, height);
    camera.Matrix(45.0f, 0.1f, 100.0f, shaderProgram, "camMatrix", height, width);
    I added int height and width to the camera::matrix function in Camera.cpp and .h to update the camera size or else everything just stretched whenever I resized the window
    but for anyone else experiencing this issue here you go : )
    (oh yea, you also need 'glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);' by all the other glfwWindowHint's for resizing)

  • @BLOPIsUrM8
    @BLOPIsUrM8 3 года назад +5

    I like the fact that he organized the files after the basics.

    • @VictorGordan
      @VictorGordan 2 года назад +1

      Thank you, I tried. Still not the best organization, but better than nothing I guess 😅

  • @omegafala720
    @omegafala720 2 года назад +3

    17:30 Bad... I want link of this code

  • @tappingrat2469
    @tappingrat2469 2 года назад +3

    BEST course ever! Thanks man, thanks to you I'll pass my college!

  • @ThatGuyDownInThe
    @ThatGuyDownInThe 2 года назад

    after a year of talking I'm finally coding openGL in c++, thanks so much for this tutorial it was GREAT.

    • @VictorGordan
      @VictorGordan 2 года назад +2

      Good to hear u liked it :)

  • @ConspiracyCraftersStudio
    @ConspiracyCraftersStudio 3 года назад +8

    Its a bit too fast delivery for a beginner but i've managed after 5 hours of following the tutorial to code spinning, textured pyramide. If you could explain and code it slower it would be one of the best opengl tut on youtube. Its still very good! Gonna build my simple render/game engine based on this project. Much appreciated

    • @VictorGordan
      @VictorGordan 3 года назад +4

      Yeah, it can be a bit fast at times, but it's hard to find a good balance. Too slow and more advanced programmers will get bored and just quit, too fast, and beginner programmers will get lost and quit. I tried to do it somewhat in between fast and slow, with fast programming, but slow explanations. Thanks for the compliments though :) And good luck with your project!

    • @michaelatorn8380
      @michaelatorn8380 2 года назад +1

      @@VictorGordan Some parts where he copy and pasted things were just 0.1 seconds. It's not about the explainations, the talking was fine.

    • @josephfoster1987
      @josephfoster1987 2 года назад

      Watch it on a lower speed?

  • @mlag15
    @mlag15 3 года назад +45

    13:53 That's a lot of damage.

  • @ath.bar.7671
    @ath.bar.7671 2 года назад +2

    Anyone else has tried to learn OpenGL/WebGL and given up but later on found this video and understood everything?

  • @anprabh1
    @anprabh1 Год назад +2

    Learning OpenGL makes me feel like I am learning black magic. It feels surreal to use the core and the quite dreaded concepts of C++ so much. I didn't even know that there is something called a "void pointer", which is basically a shape-shifter beast that cannot be killed unless it takes on a proper form.

  • @mehlodey8615
    @mehlodey8615 Год назад +7

    This is genuinely the best programming tutorial i think i have ever seen in my life. you really saved me with this, and i feel like i actually understand everything that went into doing this. cant thank you enough for this amazing course

  • @michaelatorn8380
    @michaelatorn8380 2 года назад +4

    "Copy the same functions as me"
    ~proceeds with 10x speed~

  • @gabegonzalez764
    @gabegonzalez764 5 месяцев назад

    Thanks for the tutorial. 99 percent of all my problems were self inflicted typos in the shaders. Spent forever trying to fix a lighting issue only to find out I had a comma instead of a period in one of the floats. lol Thanks again!

  • @WhatDoYouWant000
    @WhatDoYouWant000 3 месяца назад +1

    really good tutorial the information sticks to your head faster than gum sticking to your dry hair

  • @KennyYipCoding
    @KennyYipCoding 3 года назад +15

    Ahh this brings back so many memories. I took computer graphics in college. Was one of the most difficult courses I've ever taken :(

    • @Adhithya2003
      @Adhithya2003 2 года назад

      @@kidmosey I felt that. What once considered scarce is now available just clicks away.

    • @zwackyzack
      @zwackyzack 2 года назад +2

      @@kidmosey feel proud that you did that because some people wont even get through this video haha

  • @1Chitus
    @1Chitus Год назад +4

    This course is so fun and it is really interesting to see how OpenGL works. I currentlly used mingw and vscode. I got the libglfw3.a and the libglfw3.dll from the windows binaries and to compile the code i used g++ to link the libraries and include the include folder. But thanks anyways for showing me how to set up a OpenGL project in VS.

  • @BBdaCosta
    @BBdaCosta 3 года назад +16

    Great course, loving the exercises and the explanations

  • @cassolmedia
    @cassolmedia 2 года назад +1

    Definitely the best opengl tutorial I've seen so far!

    • @wertiaaudit5746
      @wertiaaudit5746 2 года назад +2

      While true , definitely needs more detail. To learn opengl to become expert it's like 12 hours

    • @cassolmedia
      @cassolmedia 2 года назад

      @@wertiaaudit5746 I'm glad you agree with me that is the best one I've seen lol

    • @arthurvieira2104
      @arthurvieira2104 Год назад

      @@wertiaaudit5746 for real, he doesn't teach much of how it actually works

  • @suleimanmalocanstveni2342
    @suleimanmalocanstveni2342 7 месяцев назад

    Honestly, this is the only course I've ever enjoyed learning

  • @robopigs6877
    @robopigs6877 Год назад

    You are honestly a legend, thanks to you i finally understand all these complex topics of openGL and have made an amazing project alongside you

  • @Rittberger.
    @Rittberger. 2 года назад +7

    Очень хороший туториал. Просто отличный. Всё понятно, всё доступно. Все основные проблематики разобраны. Супер.

  • @rootwayder77
    @rootwayder77 3 года назад +4

    Finally what i wanted the most... Love you codecamp 💕

  • @faei1897
    @faei1897 Год назад +1

    Heads up for anyone concerned - this works perfectly fine with Visual Studio 17 (Visual Studio 2022). The application's Intellisense will take a hot second (usually one-two days at worst) to comprehend all the functions inside the glfw/glad libraries but will work and help later on.

    • @paluszki14741
      @paluszki14741 Год назад

      does this mean i should specify the generator in cmake as visual studio 17 or 16 like in the video?

  • @dansanfranman
    @dansanfranman Год назад +32

    Such a good course made SO FRUSTRATING by the fact that it's sped up so much that you have to scrub through frame by frame in order to catch changes.

  • @JamesJohnAgar
    @JamesJohnAgar 3 года назад +12

    Excellent tutorials especially using graphics in C++, maybe offer some tutorials on creating a full scale Application in C++ as well.

  • @mariusd6100
    @mariusd6100 2 года назад +3

    why is this so mind numbingly complicated. Great tutorial explaining it all.

    • @acatfrompoland5230
      @acatfrompoland5230 Год назад

      Because OpenGL is reasonably flexible with what it allows you to do (Aka low level).

  • @qdeanc
    @qdeanc 2 года назад

    Your English pronunciation is beautifully clear 👌

  • @innovationscode9909
    @innovationscode9909 3 года назад +1

    It's absolutely breath-taking. Beautiful

  • @EngineerDJ_Julius
    @EngineerDJ_Julius 3 года назад +1

    NGL, the sushi in the thumbnail is on point

  • @nxone9903
    @nxone9903 3 года назад

    Referenced The Cherno?? Now this is awesome

  • @neillunavat
    @neillunavat 3 года назад

    I have been struggling with OpenGL and here we have it! Lets go!

  • @PureASM-ShellCoder
    @PureASM-ShellCoder 2 месяца назад

    This tutorial video was definitely eye-opening & insightful, I've read about OpenGL & DirectX game dev, but nothing really stuck /w me. This course video really shed some light on it. Thank you, I appreicate it !! 😎

  • @river6634
    @river6634 3 года назад +1

    This channel... it fucking rocks.

  • @bin9294
    @bin9294 2 года назад

    This is the best OpenGL course I saw.

  • @averagecornenjoyer6348
    @averagecornenjoyer6348 3 года назад +1

    Instead of making a header and a cpp file for classes, you can immediately go and create a c++ class that does that automatically, only is left for you to do is create your function interface. Also, to avoid re-typing the function to define in in the cpp file, you can right-click on the green underlined function declaration in the header, go to quick action and refactorization, and create function definition. I bound a key shortcut for that, you might wanna do that too.
    also for constructor initialization you may also do this:
    class MyClass {
    int a_in_class;
    MyClass(int a_in_constructor)
    : a_in_class(a_in_constructor)
    { /*do something */ }
    };

    • @VerMishelb
      @VerMishelb 3 года назад

      There is one issue though: when you create class, it is always created in solution root directory which might be annoying if you want to create it in subfolder, like src/Object/Object.h. This can be done by redacting full path but this is more annoying than creating two separate files. Plus practicing these actions never hurts because you might have a different IDE some day.

    • @VictorGordan
      @VictorGordan 3 года назад

      Yeah, I recently saw this in a tutorial. But tbh I still prefer the manual way. Thx for the tip though! ;)

    • @averagecornenjoyer6348
      @averagecornenjoyer6348 3 года назад

      @@VerMishelb well, you can just move the newly created class files in the dir you want them in.

  • @johndoe-xz2en
    @johndoe-xz2en 3 года назад +9

    "Important OpenGL was deprecated in macOS 10.14. To create high-performance code on GPUs, use the Metal framework instead."

  • @barmetler
    @barmetler 3 года назад +5

    I have used DirectX11 before with hlsl shaders, but I always wanted to learn opengl. This is perfect!

  • @BICS
    @BICS 2 года назад +1

    fantastic course

  • @atzefatze
    @atzefatze 3 года назад +3

    ...im glad you did the video in speed x10.

  • @tylerstevens9022
    @tylerstevens9022 2 года назад

    that set up was pretty lit

  • @rubiciq_devitron
    @rubiciq_devitron 2 года назад +2

    0:19 Hey you finally awake 🤣🤣
    Nice meme

  • @Dezomm
    @Dezomm 3 года назад +7

    I'm personally not a huge fan of the video speeding up while writing code, in my opinion it's much easier to follow along if we get to see you type the code out at normal speed. But other than that, this is great stuff.

    • @VictorGordan
      @VictorGordan 3 года назад +2

      Thank you :)
      Yeah, some people don't like the speed, some do. Just different styles I guess. If you prefer slower videos (like 10 times as slow) I suggest Michael Grieco's OpenGL series :)

  • @methodinsane
    @methodinsane 3 года назад +3

    Very good. Thanks. My only criticism is the volume is very low - relative to most other media/content. Other than that thank you very much.

  • @abhishekshah11
    @abhishekshah11 3 года назад +14

    Perfect timing.

  • @ProjectCity1
    @ProjectCity1 Год назад +65

    I would not recommend for beginners, he copies and pasted code for no reason, he speeds up for no reason and he writes code without telling you to.

    • @gerardonavarro3400
      @gerardonavarro3400 3 месяца назад +6

      Thank you, a lot, really

    • @vanci2039
      @vanci2039 2 месяца назад +4

      True lol 10 months ago I stopped at 30% of the course lol

    • @mchl843
      @mchl843 2 месяца назад +6

      Revisiting, thinking might gain something.
      Edit: Looking back, I agree this course is not for beginners but once you get grasp some idea of opengl then come back to this course and you'll definitely get it.

  • @saidielhoussaine8007
    @saidielhoussaine8007 2 года назад

    The Quality of this material is high , congratulations

  • @nyxspirited272
    @nyxspirited272 2 года назад +1

    What they teach at school :
    cout

  • @thincvivid
    @thincvivid 3 года назад

    This is one grateful comment section!

  • @draneolfesoj13
    @draneolfesoj13 9 месяцев назад

    this tutorial is easy to understand and it explains the details of how to properly make the graphics work maybe if i have a time thank you for this tutorial.

  • @dr20231may
    @dr20231may 2 года назад +3

    Perfect tutorial , thank you

  • @brennankabalkin4840
    @brennankabalkin4840 2 года назад +2

    Great tutorial! Excellent explanations

  • @tan8067
    @tan8067 3 года назад

    Needed this badly! Thank you

  • @kewtomrao
    @kewtomrao 3 года назад +1

    Wow!!! This is pure gold!!

  • @gnsf
    @gnsf 3 года назад

    I always wanted to learn opengl, i'll check the whole video as soon as possible

  • @DavidKim-ph6up
    @DavidKim-ph6up Год назад +2

    jesus help me through this. it took me a 30 mins just downloading and setting things up because the GLFW solution build kept failing

  • @abhishekbiswas2267
    @abhishekbiswas2267 3 года назад +1

    Didn't know you guys were expert in reading minds apart from coders 😘🥰😍🥰 This is just awesome... Thanks a zillion powered zillion times..

  • @ProjectCity1
    @ProjectCity1 Год назад +2

    53:11 if you get the error you can change the GL_RGBA to GL_RGB, anymore questions about this problem reply to me.

  • @teacherinthailan6441
    @teacherinthailan6441 3 года назад +7

    I think I'll stick with the Turtle module(Python) for now. Great tutorial though. Very well explained and clear. I'm just not ready for this yet. I'll be back though.... eventually. lol

    • @superscatboy
      @superscatboy 2 года назад

      SFML is a nice compromise if you're looking to get there incrementally.

  • @MT-rc3gn
    @MT-rc3gn 2 года назад +1

    You cant configure with Cmake with Visual Studio 2019 as in timestamp 3:12. use the latest version!

  • @pranavtiwari_yt
    @pranavtiwari_yt 3 года назад

    U guys are literally reading our minds

  • @TomtheMagician21
    @TomtheMagician21 2 года назад +2

    I don't understand what a lot of this means because I've just started learning C++ lol but I'm still under 30 minutes into the video. It is really helpful though how you explain what everything does. 👍

    • @hexiram
      @hexiram Год назад

      To understand what is going on try to test everything and see what happens. I did this and now i completely understand OpenGL. I watched this course 2 times to actually understand what is going on. For example i did not know what is a void* and why we enter as argument (void*)0. After i made a variable void* v = (void*)23 and then printed it to the screen i found out i was entering 23 but transformed into a hexadecimal number. After i saw the x,y,z,r,g,b graph i found out void* is used because we are telling the amount of bytes as offset. We enter (void*)0 when we configure the vertex attribute because the 3 floats which are x,y and z for position have the offset of 0 bytes.

    • @TomtheMagician21
      @TomtheMagician21 Год назад

      @@hexiram Oh ok thank you, I am sticking to C# right now as I've done some more because of Unity and I'm doing C# in school for one of my A-levels but this sort of makes sense kind of

  • @penk1838
    @penk1838 11 месяцев назад

    realy happy at the fact it worked at the first try

  • @sydk35
    @sydk35 2 года назад

    I dont think i have seen a single youtube video which has zero disllike ...
    this one has 380K+ views 11K likes no dislikes .. nicee

  • @qwert-ly7uc
    @qwert-ly7uc 2 года назад +1

    OpenGL真的对游戏开发很重要。

  • @antoniradny2188
    @antoniradny2188 2 года назад

    You even went through all the trouble to make the additional excercises so we could train! I feel bad for enjoying this gold for free

    • @VictorGordan
      @VictorGordan 2 года назад

      Good to know some people actually do them haha
      I think most people missed those :c

  • @S41L0R
    @S41L0R 2 года назад +1

    honestly a great video

    • @VictorGordan
      @VictorGordan 2 года назад +1

      Thank you ^-^

    • @S41L0R
      @S41L0R 2 года назад +1

      @@VictorGordan (:

  • @BD-hx9lf
    @BD-hx9lf 2 года назад +2

    we need complete flutter course please

  • @gopalv7546
    @gopalv7546 3 года назад +7

    A blessing from the LORD

  • @muyvello4646
    @muyvello4646 2 года назад +2

    What books you recommend me to learning and improve all this ?, sorry for my english jeje.

  • @ep3576
    @ep3576 2 года назад

    This is pure gold........ omg

  • @slothlair
    @slothlair 3 года назад +1

    Looks really good for covering fundamentals and Game Engine design.

  • @seidsvik123
    @seidsvik123 2 года назад +2

    my suncube got created at the center. i have no clue why as the sun is in the right position but there is a pyramide collored,untextured cube in the center of my pyramid instead of a suncollored cube on the other side.

    • @seidsvik123
      @seidsvik123 2 года назад +1

      i have checked every single line of code. everything is correct. the only difference between our code is that i use a RGB image(i get error when i change it in main and texture).

  • @marianionita3282
    @marianionita3282 3 года назад +282

    Spend more time explaining WHY you're doing what you're doing. It's supposed to be a tutorial, not a cookbook.

    • @_Omni
      @_Omni 3 года назад +7

      I agree..

    • @superduper6090
      @superduper6090 Год назад +12

      you must be a terrible learner, to understand how opengl works you need to learn how this stuff works

    • @marianionita3282
      @marianionita3282 Год назад +42

      @@superduper6090 and you must be that guy that comments randomly on youtube...

    • @superduper6090
      @superduper6090 Год назад +3

      @@marianionita3282 Yup

    • @marianionita3282
      @marianionita3282 Год назад +2

      @James HARRIS it's not hard, but the video is not designed as a tutorial, but a cookbook.

  • @erawanthewise8227
    @erawanthewise8227 3 года назад

    OMG IVE BEEN WAITING ON THIS!

  • @bruce2053
    @bruce2053 3 года назад +3

    Please make Vulkan crash course also. Very much needed.

  • @omegafala720
    @omegafala720 2 года назад +1

    For me is black the triangle

  • @kjyhh
    @kjyhh 3 года назад +1

    Great video of openGL. Thanks so much.
    POV: Pointing is better than zooming.

  • @erasmocalzadilla8004
    @erasmocalzadilla8004 7 месяцев назад +1

    Thanks!

  • @tunderues8061
    @tunderues8061 2 года назад

    Wow a Steve jobs learning about opengl

  • @moofymoo
    @moofymoo 3 года назад +1

    yey.. now in 2021 it is even more convoluted to set up hello world project in opengl.

  • @potatokitty
    @potatokitty 2 года назад +1

    OpenGL is fun for game engines.

  • @IntermittentArt
    @IntermittentArt 2 года назад +1

    Thank you so much!