@@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
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!
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
@@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
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
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 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.
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 :)
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 :)
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
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
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
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. :)
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
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.
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.
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 ❤👌
Praising the RUclips 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.
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.
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!
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 :))
mr. Snorkel is such a swag model.. oh, distracted by a cute mesh.. forgot I came here with complaints! vertex/vertices, index/indices -- rename the variables in your code OR ELSE..
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"
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
the editing is so cool wow some serious skills going on there
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!
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
Now use Vulkan
why would you wish such a horrible fate on someone
NOO NO NO NO NON OH GOD NONONO OO NOOO
Vertices are the points, indi-CES (btw) are used to tell the graphics library how are these vertices connected..
Your C++ OpenGL skills are OP
its been 5 months, we're ready for the vulkan video now 👍
in all seriousness, great video, mad respect to you graphics developers
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
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
oh, a video on legacy opengl in 2023 o.o
ngl didn't expect that, it was an awesome throwback ^^
This isn't legacy
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!
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
I love your use of technical lighting terms like "Shininess". Such a better word than roughness or gloss anyway :P
I lost it when the arrow would move and keep doing the rock sliding sound 😂
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
I really like how you present these concepts, thank you for sharing this video :D
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
V U L K A N?
😶
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 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.
Really cool Video! I liked the edit style really much :)
thank you :))
Fantastic to see you jump back into making a graphics engine again!
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 :)
this battleblock theater music is incredible!
Just stumbled onto this channel. The editing is absurdly good.
its really shit
came for the knowledge stayed for the coder cutie
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 :)
Brilliant work 👏
Just keep up the good work.
Now this is the dev content I was craving, subbed
I like this changing window titles, thats so funny tho xD
Ohh my god thank you for this dope video, it's really helping me on visually seeing programming a project in works.
1:36 the points are vertices and the lines are edges
This is so dope, you made grass to touch grass.. Awesome!
What’s the name of the song from the intro? (0:00)
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
Incredible, I'm amazed 👏 👏 👏 👏 👏 👏 👏 👏
finally i found the perfect video to watch while im eating my food
Scary, really scary.
Definitely interesting though
1:30 Wait a minute.. those aren't "indecies" they aren't even unsigned integers lol
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
dam girl u are like a unicorn ! keep working on it
zyger, your Java is showing
Snapped the rubber band in my brain with that mistake, silly goose.
Looks pretty cool nice job
Amazing video 🌚💜
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
love this series 💝. try Vulkan next
5:55 you git me there vro instant subscribe
This keyboard sound is the thing i enjoyed the most
It like it.
3:15 at thsi point i see that the shark is already smooth shaded si it the default setting or you implimented it?
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. :)
Дуже круті відео) Мені подобаєтся
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
You made this seem like its easy, maybe i should try that also
im gonna do this in python and C, thanks for the inspiration!
did you make a graphics engine or use one to make something????
Says "So I touched grass" - *touches monitor panel* SCREAMS IN INFINITE LOOP
you make it sound so easy
Very smooth of you to have your call to actions hidden in the engine titles :P
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.
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
Nice. Imma try making one too.
Is it just me seeing the cursed window names?
Okay. Now it's time to do it with vulkan
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 am a simple man: I see a programming video with Maplestory references = Like
Praising the RUclips 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!
2:24 "Why have I spent 3 hours on this already and all I have is a cursed dolphin".
Oh dear friend, you didn't try Vulkan yet 😂
Can't believe you actually touch grass to make an entertaining video, that shows dedication ❤ maybe one day I'll touch grass
where did you study all this?
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
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
Great video yeee :)
not bad 👍
i lvoe you(r pacing and tone of voiceand also very cool)
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.
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 :)
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!
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!
W
I love these random sounds 🤣🤣🤣🤣
hahahahahahha random sound so funny omg....
whats your programming background?
great video btw
2:34 my utter shock at seeing the title of window say "3 hours" not "3 days"
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?
Next time: "I Made a Graphics Engine (again) (again) in WebGPU!"
0:39 Did you only read the part you marked? In the next line, they explain, that DirectX outperforms OpenGL.
its a joke. I know directX is faster, that's why i left the part highlighted :))
@@ZygerGFX Ohh... well I feel dumb now...
@@killergoldfisch1 nah dont. i should have made it more obvious haha
mr. Snorkel is such a swag model.. oh, distracted by a cute mesh.. forgot I came here with complaints! vertex/vertices, index/indices -- rename the variables in your code OR ELSE..
Now do it in *Vulcan*
Jokes aside, awesome video
Vulkan
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"
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.
😮wow nice!!
this is the nerdiest shit that i heard in a good way
great video! what tools did you use to learn opengl?
wow fellow programmer girl
5:03 not really important but "fresnel" is pronounced something more like "fruh nell". The S is silent because it is named after a French guy.
Thb your voice gives me "if Arya from GOT was smart" vibes.