@@nolram ogl is actually only a couple years older than dx but ogl isnt in development anymore while on the other hand we now have dx12 im surprised vulkan isnt as popular since is marginally newer than both dx and ogl and it tends to be a bit faster and better supported on more platforms
The indices are index numbers of vertices. They're there to make the data smaller. Rather than copying a vertex that consists of 3 to 4 numbers many times we only store it once and then place it by index which is a single number.
@@IgorSantarek Not just smaller but more efficient; GPUs remember (=cache) result of vertex shader by the vertex index.. the cache size varies but is somewhere between 16 and 64 last seen vertices (by their index).
As a senior engineer y really appreciate that you showcase your thinking path, demonstrating the use of Divide and Conquer, it gives a roadmap for beginners of an order in which you could start learning. Awesome Content!
This video inspired me to learn C++, and now after about a week I have already coded a discord bot, a openGL renderer (very basic) and a CLI tool for manipulating images. Thanks!
Nice fun little video, I like your editing skills. You should totally give more modern OpenGL versions (3+) a go. It's a different way of going about things and is quite different to older versions of OpenGL e.g. relying on Vertex Buffer Objects and Vertex Array Objects. Unless you plan to go full insane and use Vulkan or DirectX 12 which are two different beasts lol Keep up the good work!
@@alexjoel1602 Vulkan "could" be easier then opengl if you really abstract it well, but then the abstraction is gonna take more time then shipping a game with opengl
1:33 The lines are not vertices. A vertex is a point that connects to other points to make the shape (in this case triangles). A vertex can contain only the position, but usually they contain position, normals and uvs, color is also a popular choice, you can have 4 floats for vertex colors (RGBA). These are ordered in sequence with all the other vertices in a float array to be sent to video memory with OpenGL, for example this would be a single vertex with position, normals, uvs and color float array: float [12] = {posX, posY, posZ, normX, normY, normZ, uvX, uvY, colorR, colorG, colorB, colorA}. The index array is a separate array of unsigned integers that is used to inform OpenGL the order to iterate the vertices previously described (this is how triangles are drawn). You can draw triangles without the index array only with the vertices array, OpenGL can draw the triangles using the order the vertices were written in the vertices array. The problem is however doing so you will have to repeat vertices in the array, because most vertices are shared with multiple triangles, so doing so uses more memory of the video card, and that is why there is indexed drawing, so you can only write the unique vertices and then send the vertex drawing order to the shader as an index array.
You actually answered a question I had a long while ago and never followed up on which effectively boiled down to 'how do they handle the inefficiency of repeating the same vertex shared by multiple polygons?' since every mesh has them in multitude. This question arose around the same time I was asking myself why they don't use RGB as a way of flat mapping xyz coordinates to define a 3d object.
@@feen.y tbf calling the lines "vertices" and the points "indices" in graphics programming is like saying that 2+2 is 7. it needs to be pointed out lmao
I would have tried to make the grass move as if there was wind in the vertex shader. I'm just finished a re-write of my personal game engine, switched from DirectX11 to Vulkan. This was a nice video, thanks for making this :)
@@joechristo2 It's linear algebra at most, pretty basic stuff. It becomes a nice puzzle to solve once you start optimizing and making things as simple as possible because there are numerous solutions with different tradeoffs.
Story time: I was in my bedroom many years ago when I was still a teenager and struggling with projection matrices.. I just did projection using similar triangles method, you know the classic: y' = y / z. Then by scaling the y with some factor you can have different focal lengths.. easy peasy, works like dream. But the PROFESSIONAL textbooks, and graphics code uses something called "projection matrix", which is the linear algebra way of doing crap. Basically you have 4x4 matrix, and you multiply a vector by it and it is transformed.. rotations, translations and such are easy to understand with matrices but projection was a big mystery. One has to drill into the details a little bit for it to "click" Basically a 3D point is (x, y, z), right? Yeah, but this 4x4 matrix scheme actually thinks the vector as (x, y, z, w) .. where the W is the 4th dimension!? No, it's not a dimension at all.. it's just a mathematical construct.. for 3D points w is always 1.0. Transformations like rotation and translation keep w at 1.0, it's not modified at all. But projection transformation does modify w! After you multiply any 3D point by projection matrix, the w is often not 1.0 !!! This is called "homogeneous coordinate" (not making light of anyone's sexual identity here, look it up, it's a thing). We get "back" to 3D by dividing by this w coordinate: x = x / w y = y / w z = z / w BAM! Back in 3D, above operation is called.. PROJECTION! See the similarity to the similar triangles way? y' = y / z... that's right, the division... Now here's the COOL TRICK THE BIG 3D DON'T WANT YOU TO KNOW: You can do THREE divisions with just one.. whaaat!? yeah man, check this out.. x / 2.0 y / 4.0 z / 8.0 Is same as: x * 4 / 8.0 y * 2 / 8.0 z * 1 / 8.0 In this scenario w would equal 8.0.. we can divide x, y and z by w.. but to get the correct result we must scale them before the division, and this is what the perspective projection matrix is doing! It's scaling the xyz and setting up w so that all can be divided by the same value.. why we don't just divide by z and scale x and y, is because z/z would always equal 1.0, so that's doesn't work at all. So we introduce this w, A COMMON DIVISOR, so that we can do our dirty business with the other components. The unfortunate fact is that this crap is not written down anywhere, you just have to kind of read between the lines to "get it", of course it helped I was already doing it the stupid way to begin with (similar triangles and dividing by z). This just recomposes this into 4x4 matrix form that is basic linear algebra. I'm looking 20+ years back into my past here, so this is not a big newsflash anymore but hope it helps someone out there.
@@n00blamer a few days after reading the transformation and dimensions chapter on learnopengl i tried to force myself to learn matrices in like 30 minutes and I couldn't, which caused me to almost rage quit, then after a few days it all kinda clicked and I understood the W component, why we use vectors and why the order of multiplication matters, etc... But still when looking at code, I can't tell what's what, which matrix is which, and I can't just glance at a Matrix multiplication and just be like "oh yeah this scales it 0.5x and moves it -12.3f to the left, and 4.7f away from the camera", maybe it's just muscle memory or not enough experience yet, I'm 3 weeks into learning opengl and writing an engine alongside it
All of the window names throughout the video are hilarious, "When I wrote this code, only God and I understood what I did. Now only God knows..." is definitely the best one!
very cool video :) however i would like to point out that some of the sound effects you use to put emphasis on speaking are sometimes a bit loud and excessive. loved the video though :)
I'm learning c++ with SFML, and I thought a great first project would be to remake terraria. about a week in, as I'm programming my enemies, I realised my code was TERRIBLE. O(n^2) efficiency. and that's not speed, that's lines of code. adding a new enemy type doubled the length of enemy related code. So I deleted it all, and I'm working on it all again. currently trying to figure out how to use one vector to store a bunch of extended classes. It's tough. EDIT: also the battleblock theatre music is CLASS.
silly fun potential fact: DirectX is usually faster since it is specifically optimized for the only platforms it runs on, but since OpenGL works pretty much everywhere its mainly up to the programmer to keep it up to speed depending on the situation
It's crazy how even when you go waay low into computer shit, still most of the hard work is already done by people with waay more advanced knowledge than you, and you simply use their functions to do all the job
I'm just a person who work on godot to learn and making an actual graphic engine is so much it's a giagantic scary monster to me omg idk how did you do this but I respect that fr ❤👌
I can see this is your passion, through all this work you deserve much more subs. Congrats for being such a game dev, if I would be your father I would be so proud.
Cool video! Your narration is calm and straight to the point, which I like a lot. The pacing of the video is also really tight, which is one of the hardest things to nail down. The abundance of sound effects for every little thing can be distracting tho, and the energy of the editing doesn't match the performance of the narration. Imo, leaning into easing the "energetic" editing style (popping subtitles, sound effects for every minute thing happening, etc.) could be the way to go
I understand coordinate geometry somewhat. Decently good with blender and computer programming. I always knew what are the underlying principles in 3D but never got to visualize that in reality until I bumped across this video. Great video. But I'm more interested in how the GPU processes the data.
Amazing, I would love to learn OpenGL and C++ but don't know where to start, I do know some C++ but I should start on some basic things. What would you recommend? (love the video and keep up the good work 👍)
Hey thank you . Honestly you can go straight into graphics programming, like OpenGL. If you don't feel confident to star there I'd recommend just trying to make a bunch of really simple programs using c++. You can use the default visual studio console c++ project, and try out different things. That's something that I did and in the end I had around 40 little projects all doing very simple things like, calculations, arrays, loops, lists and then more complicated algorithms as I got confident. But at the same time, don't overthink it and just start anywhere :))
They gave us an assignment for precisely this in University and it fucking broke me. I tried using Python and Pygames and I got fairly far, but when time came to texturize, create lighting and even to create solid colours I just couldn't get past it.
Fam i love that your a youtuber that's human, the fact that these man in the comments and point out things to improve and you react like a normal human shows that there's still hope for communities and people to just help each other work on things without it seeming like it's always an attack.
Praising the TH-cam algorithm to recommend your channel after I started searching for blender assets with C++ / Unreal. I recently completed learning basics of C++ and wanted to apply it in "fun" projects. And seems like you know how to have fun with C++. Thank you for such memeducation content! Easy +1 sub!
@@halfbakedproductions7887 im learning it right now, and if you already know other graphics api's like opengl or dx11 its actually not impossible to start using. But if you want to make a production level renderer with multithreading and everything then yeah.
You are incorrect with your definition of vertices and indices. Vertices are the points of the cube. Indices (plural of index) state in which order these points/vertices should be connected, by splitting up the vertices into triangles.
You could read this here which is a very good little article/doc that explains how to get post processing and specifically bloom set up: learnopengl.com/Advanced-Lighting/Bloom
Some comments are so harsh on the vertex vs line! I hope this is part where a YT comments section fills up with "wow calm down guys" and then you can't even find the original comments of people being so picky. 😆 Great video
no hate but i instantly gagged at 1:40 where you said the points are indecies and the lines are vertices. points are vertices. lines are edges. and the fillers are faces
I'm really impressed. I've been working on a graphics engine for a project at university for a few weeks, and I'm not even close to where you are. Would it be possible for you to share the project?
Awesome work, might take a shot at this kind of a project myself. Wanted to for a while just didn't really know where to start. And I believe Fresnel is pronounced "freh-nell"
Nice, I'm working on my own engine too, but don't really have the time to work on it. So far only loading model (obj and fbx) and shader/texture. Keep it up.
I loved the video so much, great humor! hahaha But, I'm a newbie to that universe and I'm recently engaging on gaming development. I'd really like to know: to build your own engine is necessary? I'd like to do that for improvent of the gaming rendering and all that stuff; but I'm afraid it's gonna be too much to start, you know? But, anyway, your video really showed me that's possible and can be kind fun to do it. Thanks a lot!!
Yes I know its not actually "built in" but I wanted it to be easier to understand for people who have never heard of OpenGL before. What I actually meant is that I didn't use any external libraries to render text such as FreeType. Instead used bitmap fonts.
@@ZygerGFX That's a cool shortcut, font glyph rendering is a huge pain when you start covering everything.. texture font atlases, caching and keeping track what's where.. optimizing to minimize texture changes.. or go even crazier with fragment shader font resolver from the outline curves. It blows up really fast, some time you just want that text out there. :)
For someone who posts random Unity videos, it would be such a pivot to focus on low level programming. I don't know what caused you to do so, but from some rando-on-the-Internet's perspective, I'd say it's a good pivot. Keep it up!
It literally said DirectX is faster in that first part, which is because of being optimized for windows. (Vulkan is still faster though, just a harder API and I think it's less stable)
It's really cool to see women getting into computer graphics! Nice! Just a few more nitpicks: "Fresnel" is pronounced without the "S", also, it's spelled "indices" not "indecies". I don't mean to sound discouraging though, quite the opposite! Using the correct terms instantly makes you seem like more of an expert. This video seems aimed at less experienced viewers, but it was fun to watch nonetheless. P.S. look into using Vulkan instead of OpenGL if you want a real deep-dive (it is more difficult, but a lot more powerful, newer, and a great learning experience), I recommend the tutorial series by Brendan Galea.
After some people pointed out I realised that I got this section: 1:38 wrong, and muddled up. Oops... just somewhat ignore me here haha.
@@nolram that's not what she was referring to, but yes she also got it wrong at 0:40 (DX is faster)
@@nolram ogl is actually only a couple years older than dx but ogl isnt in development anymore while on the other hand we now have dx12
im surprised vulkan isnt as popular since is marginally newer than both dx and ogl and it tends to be a bit faster and better supported on more platforms
@@Rocco-tb9ihmb she talking about learning curve 😅
but what dx you are referring to
opengl is meant to be compared with directx 11
directx12 is now compensating with vulkan @@Rocco-tb9ih
is it possible to call from opengl & direct x files into a single program?
The points are the vertices not the lines. They are edges and they form the faces.
Ah Yes that is true I have made a mistake, thanks for pointing it out :))
The indices are index numbers of vertices. They're there to make the data smaller. Rather than copying a vertex that consists of 3 to 4 numbers many times we only store it once and then place it by index which is a single number.
If you're already in the comments section, wouldn't you have seen that a bunch of people have already pointed out the same thing.
@@IgorSantarek Not just smaller but more efficient; GPUs remember (=cache) result of vertex shader by the vertex index.. the cache size varies but is somewhere between 16 and 64 last seen vertices (by their index).
The points you could even call it a Vertex (in the context of mathematics, since a vertex is a N-dimensional array of data)
As a senior engineer y really appreciate that you showcase your thinking path, demonstrating the use of Divide and Conquer, it gives a roadmap for beginners of an order in which you could start learning. Awesome Content!
Programming content can sometime be monotonous but the way you add humor and fun editing makes it really fun to watch
This video inspired me to learn C++, and now after about a week I have already coded a discord bot, a openGL renderer (very basic) and a CLI tool for manipulating images.
Thanks!
You probably just got them muddled up but at 1:38 the points are vertices not lines
Yep realised now that you pointed it out haha
Vertices are the points, indi-CES (btw) are used to tell the graphics library how are these vertices connected..
its been 5 months, we're ready for the vulkan video now 👍
in all seriousness, great video, mad respect to you graphics developers
Now use Vulkan
why would you wish such a horrible fate on someone
NOO NO NO NO NON OH GOD NONONO OO NOOO
I loved the editing and the humour, way to go!
I'm also working on a graphics engine myself on OpenGL, hardcore mode lol
roulma racing let's goo
@@LukasOwen how can you still remember that xD
@@spounka i never forget great things
vulkan is the true hardcore mode. when you start learning vulkan you realize opengl is easy
Nice fun little video, I like your editing skills.
You should totally give more modern OpenGL versions (3+) a go. It's a different way of going about things and is quite different to older versions of OpenGL e.g. relying on Vertex Buffer Objects and Vertex Array Objects. Unless you plan to go full insane and use Vulkan or DirectX 12 which are two different beasts lol
Keep up the good work!
Vulkan is too much easier that OpenGL, or DX11. Using FPGA to render graphics would be a better challenge.
@@alexjoel1602vuklan is harder than opengl tho
@@alexjoel1602 should just start hand assembling your own GPU
@@kubic-c3186 do it on a breadboard like Ben Eater
@@alexjoel1602 Vulkan "could" be easier then opengl if you really abstract it well, but then the abstraction is gonna take more time then shipping a game with opengl
1:33 The lines are not vertices. A vertex is a point that connects to other points to make the shape (in this case triangles). A vertex can contain only the position, but usually they contain position, normals and uvs, color is also a popular choice, you can have 4 floats for vertex colors (RGBA). These are ordered in sequence with all the other vertices in a float array to be sent to video memory with OpenGL, for example this would be a single vertex with position, normals, uvs and color float array: float [12] = {posX, posY, posZ, normX, normY, normZ, uvX, uvY, colorR, colorG, colorB, colorA}. The index array is a separate array of unsigned integers that is used to inform OpenGL the order to iterate the vertices previously described (this is how triangles are drawn). You can draw triangles without the index array only with the vertices array, OpenGL can draw the triangles using the order the vertices were written in the vertices array. The problem is however doing so you will have to repeat vertices in the array, because most vertices are shared with multiple triangles, so doing so uses more memory of the video card, and that is why there is indexed drawing, so you can only write the unique vertices and then send the vertex drawing order to the shader as an index array.
ur fun at parties
You actually answered a question I had a long while ago and never followed up on which effectively boiled down to 'how do they handle the inefficiency of repeating the same vertex shared by multiple polygons?' since every mesh has them in multitude. This question arose around the same time I was asking myself why they don't use RGB as a way of flat mapping xyz coordinates to define a 3d object.
@@feen.y tbf calling the lines "vertices" and the points "indices" in graphics programming is like saying that 2+2 is 7. it needs to be pointed out lmao
@@feen.y This is quite important though.
@@feen.y mf watches an educational video and gets uppity when someone corrects mistakes lol
I would have tried to make the grass move as if there was wind in the vertex shader.
I'm just finished a re-write of my personal game engine, switched from DirectX11 to Vulkan. This was a nice video, thanks for making this :)
thats really cool, i cant really understand the math behind graphics engines
those who make them don’t either i think
@@joechristo2 bro be on drugs if typed that
@@joechristo2 It's linear algebra at most, pretty basic stuff. It becomes a nice puzzle to solve once you start optimizing and making things as simple as possible because there are numerous solutions with different tradeoffs.
Story time: I was in my bedroom many years ago when I was still a teenager and struggling with projection matrices.. I just did projection using similar triangles method, you know the classic: y' = y / z. Then by scaling the y with some factor you can have different focal lengths.. easy peasy, works like dream.
But the PROFESSIONAL textbooks, and graphics code uses something called "projection matrix", which is the linear algebra way of doing crap. Basically you have 4x4 matrix, and you multiply a vector by it and it is transformed.. rotations, translations and such are easy to understand with matrices but projection was a big mystery. One has to drill into the details a little bit for it to "click"
Basically a 3D point is (x, y, z), right? Yeah, but this 4x4 matrix scheme actually thinks the vector as (x, y, z, w) .. where the W is the 4th dimension!? No, it's not a dimension at all.. it's just a mathematical construct.. for 3D points w is always 1.0. Transformations like rotation and translation keep w at 1.0, it's not modified at all.
But projection transformation does modify w! After you multiply any 3D point by projection matrix, the w is often not 1.0 !!! This is called "homogeneous coordinate" (not making light of anyone's sexual identity here, look it up, it's a thing).
We get "back" to 3D by dividing by this w coordinate:
x = x / w
y = y / w
z = z / w
BAM! Back in 3D, above operation is called.. PROJECTION! See the similarity to the similar triangles way? y' = y / z... that's right, the division...
Now here's the COOL TRICK THE BIG 3D DON'T WANT YOU TO KNOW:
You can do THREE divisions with just one.. whaaat!? yeah man, check this out..
x / 2.0
y / 4.0
z / 8.0
Is same as:
x * 4 / 8.0
y * 2 / 8.0
z * 1 / 8.0
In this scenario w would equal 8.0.. we can divide x, y and z by w.. but to get the correct result we must scale them before the division, and this is what the perspective projection matrix is doing! It's scaling the xyz and setting up w so that all can be divided by the same value.. why we don't just divide by z and scale x and y, is because z/z would always equal 1.0, so that's doesn't work at all. So we introduce this w, A COMMON DIVISOR, so that we can do our dirty business with the other components.
The unfortunate fact is that this crap is not written down anywhere, you just have to kind of read between the lines to "get it", of course it helped I was already doing it the stupid way to begin with (similar triangles and dividing by z). This just recomposes this into 4x4 matrix form that is basic linear algebra.
I'm looking 20+ years back into my past here, so this is not a big newsflash anymore but hope it helps someone out there.
@@n00blamer a few days after reading the transformation and dimensions chapter on learnopengl i tried to force myself to learn matrices in like 30 minutes and I couldn't, which caused me to almost rage quit, then after a few days it all kinda clicked and I understood the W component, why we use vectors and why the order of multiplication matters, etc... But still when looking at code, I can't tell what's what, which matrix is which, and I can't just glance at a Matrix multiplication and just be like "oh yeah this scales it 0.5x and moves it -12.3f to the left, and 4.7f away from the camera", maybe it's just muscle memory or not enough experience yet, I'm 3 weeks into learning opengl and writing an engine alongside it
Your C++ OpenGL skills are OP
I love your use of technical lighting terms like "Shininess". Such a better word than roughness or gloss anyway :P
oh, a video on legacy opengl in 2023 o.o
ngl didn't expect that, it was an awesome throwback ^^
This isn't legacy
the editing is so cool wow some serious skills going on there
I lost it when the arrow would move and keep doing the rock sliding sound 😂
All of the window names throughout the video are hilarious, "When I wrote this code, only God and I understood what I did. Now only God knows..." is definitely the best one!
I really like how you present these concepts, thank you for sharing this video :D
this battleblock theater music is incredible!
very cool video :) however i would like to point out that some of the sound effects you use to put emphasis on speaking are sometimes a bit loud and excessive. loved the video though :)
This keyboard sound is the thing i enjoyed the most
It like it.
I'm learning c++ with SFML, and I thought a great first project would be to remake terraria.
about a week in, as I'm programming my enemies, I realised my code was TERRIBLE. O(n^2) efficiency.
and that's not speed, that's lines of code. adding a new enemy type doubled the length of enemy related code. So I deleted it all, and I'm working on it all again.
currently trying to figure out how to use one vector to store a bunch of extended classes. It's tough.
EDIT: also the battleblock theatre music is CLASS.
silly fun potential fact: DirectX is usually faster since it is specifically optimized for the only platforms it runs on, but since OpenGL works pretty much everywhere its mainly up to the programmer to keep it up to speed depending on the situation
Ohh my god thank you for this dope video, it's really helping me on visually seeing programming a project in works.
It's crazy how even when you go waay low into computer shit, still most of the hard work is already done by people with waay more advanced knowledge than you, and you simply use their functions to do all the job
that is like saying most of the hard work in building a house is done by the guy who designed the saw blade
Just stumbled onto this channel. The editing is absurdly good.
its really shit
0:40 bruh if you read for like 2 seconds you can see that DirectX is faster
Snapped the rubber band in my brain with that mistake, silly goose.
I'm just a person who work on godot to learn and making an actual graphic engine is so much it's a giagantic scary monster to me omg idk how did you do this but I respect that fr ❤👌
I can see this is your passion, through all this work you deserve much more subs. Congrats for being such a game dev, if I would be your father I would be so proud.
Now this is the dev content I was craving, subbed
finally i found the perfect video to watch while im eating my food
Try making a 3D engine from scratch in c++ with the only gpu operation being rendering a pixel array. Trust me, it's easier than it sounds.
This is so dope, you made grass to touch grass.. Awesome!
Cool video! Your narration is calm and straight to the point, which I like a lot. The pacing of the video is also really tight, which is one of the hardest things to nail down. The abundance of sound effects for every little thing can be distracting tho, and the energy of the editing doesn't match the performance of the narration.
Imo, leaning into easing the "energetic" editing style (popping subtitles, sound effects for every minute thing happening, etc.) could be the way to go
Fantastic to see you jump back into making a graphics engine again!
Scary, really scary.
Definitely interesting though
1:36 the points are vertices and the lines are edges
I like this changing window titles, thats so funny tho xD
Really cool Video! I liked the edit style really much :)
thank you :))
I understand coordinate geometry somewhat. Decently good with blender and computer programming. I always knew what are the underlying principles in 3D but never got to visualize that in reality until I bumped across this video. Great video. But I'm more interested in how the GPU processes the data.
2:34 my utter shock at seeing the title of window say "3 hours" not "3 days"
Says "So I touched grass" - *touches monitor panel* SCREAMS IN INFINITE LOOP
Amazing, I would love to learn OpenGL and C++ but don't know where to start, I do know some C++ but I should start on some basic things.
What would you recommend? (love the video and keep up the good work 👍)
Hey thank you . Honestly you can go straight into graphics programming, like OpenGL. If you don't feel confident to star there I'd recommend just trying to make a bunch of really simple programs using c++. You can use the default visual studio console c++ project, and try out different things. That's something that I did and in the end I had around 40 little projects all doing very simple things like, calculations, arrays, loops, lists and then more complicated algorithms as I got confident. But at the same time, don't overthink it and just start anywhere :))
@@ZygerGFX Thank you for the recommendations! Hope you have a amazing day!
Okay. Now it's time to do it with vulkan
They gave us an assignment for precisely this in University and it fucking broke me. I tried using Python and Pygames and I got fairly far, but when time came to texturize, create lighting and even to create solid colours I just couldn't get past it.
im gonna do this in python and C, thanks for the inspiration!
You made this seem like its easy, maybe i should try that also
Fam i love that your a youtuber that's human, the fact that these man in the comments and point out things to improve and you react like a normal human shows that there's still hope for communities and people to just help each other work on things without it seeming like it's always an attack.
Praising the TH-cam algorithm to recommend your channel after I started searching for blender assets with C++ / Unreal. I recently completed learning basics of C++ and wanted to apply it in "fun" projects. And seems like you know how to have fun with C++. Thank you for such memeducation content! Easy +1 sub!
Just fyi, there's a lot of places that still say that opengl is faster than dirextx but nowadays d3d12 and vulkan are actually faster than opengl
I've never really looked at Vulkan, but lots of people much smarter than me say that it's horrible. So there's that.
@@halfbakedproductions7887 im learning it right now, and if you already know other graphics api's like opengl or dx11 its actually not impossible to start using. But if you want to make a production level renderer with multithreading and everything then yeah.
@@halfbakedproductions7887IMO vulkan should (hopefully) become the standard as its cross platform and open source
You are incorrect with your definition of vertices and indices.
Vertices are the points of the cube. Indices (plural of index) state in which order these points/vertices should be connected, by splitting up the vertices into triangles.
came for the knowledge stayed for the coder cutie
really surprised you managed to implement bloom with your emission material. Curious how you went about doing that!
You could read this here which is a very good little article/doc that explains how to get post processing and specifically bloom set up: learnopengl.com/Advanced-Lighting/Bloom
Brilliant work 👏
Just keep up the good work.
Very smooth of you to have your call to actions hidden in the engine titles :P
5:55 you git me there vro instant subscribe
great video! what tools did you use to learn opengl?
whats your programming background?
great video btw
Some comments are so harsh on the vertex vs line! I hope this is part where a YT comments section fills up with "wow calm down guys" and then you can't even find the original comments of people being so picky. 😆 Great video
no hate but i instantly gagged at 1:40 where you said the points are indecies and the lines are vertices. points are vertices. lines are edges. and the fillers are faces
I'm really impressed. I've been working on a graphics engine for a project at university for a few weeks, and I'm not even close to where you are. Would it be possible for you to share the project?
Awesome work, might take a shot at this kind of a project myself. Wanted to for a while just didn't really know where to start. And I believe Fresnel is pronounced "freh-nell"
I am a simple man: I see a programming video with Maplestory references = Like
you make it sound so easy
1:30 Wait a minute.. those aren't "indecies" they aren't even unsigned integers lol
Nice, I'm working on my own engine too, but don't really have the time to work on it. So far only loading model (obj and fbx) and shader/texture. Keep it up.
Дуже круті відео) Мені подобаєтся
I loved the video so much, great humor! hahaha
But, I'm a newbie to that universe and I'm recently engaging on gaming development. I'd really like to know: to build your own engine is necessary?
I'd like to do that for improvent of the gaming rendering and all that stuff; but I'm afraid it's gonna be too much to start, you know?
But, anyway, your video really showed me that's possible and can be kind fun to do it. Thanks a lot!!
Rendering Text isn't "build in" into OpenGL. So did you use Bitmap-Fonts or TrueType-Rendering, or a good and fast combination of both?
Yes I know its not actually "built in" but I wanted it to be easier to understand for people who have never heard of OpenGL before. What I actually meant is that I didn't use any external libraries to render text such as FreeType. Instead used bitmap fonts.
@@ZygerGFX Thanks for the clarification! :)
@@ZygerGFX That's a cool shortcut, font glyph rendering is a huge pain when you start covering everything.. texture font atlases, caching and keeping track what's where.. optimizing to minimize texture changes.. or go even crazier with fragment shader font resolver from the outline curves. It blows up really fast, some time you just want that text out there. :)
Nice. Imma try making one too.
For someone who posts random Unity videos, it would be such a pivot to focus on low level programming. I don't know what caused you to do so, but from some rando-on-the-Internet's perspective, I'd say it's a good pivot. Keep it up!
Is it just me seeing the cursed window names?
Incredible, I'm amazed 👏 👏 👏 👏 👏 👏 👏 👏
Thb your voice gives me "if Arya from GOT was smart" vibes.
Now you need to make a vulkan game engine
nice now draw a custom title bar on your app window (and pls teach me how because i'm struggling with it so much)
love this series 💝. try Vulkan next
dam girl u are like a unicorn ! keep working on it
NO WAY your using the battleblock theater song
Next time: "I Made a Graphics Engine (again) (again) in WebGPU!"
What will be harder Trying to make this in a high level language like Python with a similar frame rate to the one in C++ or making this but it's 4D
how the hell did you manage to do this without knowing what a vertex is 🤣
i know what a vertex is, just got it mixed up and confused a bit when writing the script and trying to make it easy to understand
Jeez you've never misspoken once in your life?
Looks pretty cool nice job
i have worked with opencl but not with opengl, now i have to try it thanks
OpenGL is pretty much deprecated but no harm in learning
did you make a graphics engine or use one to make something????
It literally said DirectX is faster in that first part, which is because of being optimized for windows. (Vulkan is still faster though, just a harder API and I think it's less stable)
i lvoe you(r pacing and tone of voiceand also very cool)
Não entendo muito inglês mais curtir muito seu conteúdo você ganhou +1 fã brasilero 🇧🇷🇧🇷
Can't believe you actually touch grass to make an entertaining video, that shows dedication ❤ maybe one day I'll touch grass
I loved your video! You have a new fan (subcriber is quiet formal xD). I'm studying C++ to make an engine in the future :)
Great video. Super entertaining and educational. Keep up the great work! Just curious what do you use to edit your videos?
V U L K A N?
😶
next time, use VGA addressing in a pure OS with only your kernel and no other resource where you have to do everything yourself
The "When I wrote this code, only God and I understood what I did. Now only God knows" average experience.
oh god! 😀
I'm so sorry that happened....
It's really cool to see women getting into computer graphics! Nice! Just a few more nitpicks: "Fresnel" is pronounced without the "S", also, it's spelled "indices" not "indecies". I don't mean to sound discouraging though, quite the opposite! Using the correct terms instantly makes you seem like more of an expert. This video seems aimed at less experienced viewers, but it was fun to watch nonetheless.
P.S. look into using Vulkan instead of OpenGL if you want a real deep-dive (it is more difficult, but a lot more powerful, newer, and a great learning experience), I recommend the tutorial series by Brendan Galea.
this