Комментарии:
This video is complete bullshit. An absolute waste of time.
It doesn't tell anything useful other than defining what complex and verbose means.
What should someone who's just now getting into graphics programming learn?
What if you want to make your own engine? These are the things people want to know when they click on a video like this.
Don't chose, learn both
ОтветитьWhy are you starting your sentences with "So...." ? it's not 2017 Grandad
ОтветитьGreat, gonna learn vulkan now.
ОтветитьOpenGL is shit and slow, I know lot of fanboys telling you that opengl is relevant in industry, but when you are a game dev and want make money forget it, nobody cares about linux gaming this assholes want everything for free, so go for DirectX and Vulcan.
Ответитьopengl, directx, and vulkan are not apis. they are specs which is a big state machine. They are not an api.
ОтветитьPlaying games using opengl I typically find issues to be rare, and vulkan games I try yo steer clear of due to it being a mess to run on any machine I've had. Trying to lear more about it consequently opengl is the entry point so it's good to know what kinds of differences there are.
ОтветитьWrite more code, potentially more bugs, and much difficult.
Ответитьvulkan is just more verbose? As a seasoned graphics programmer i could not disagree more. Incoherent caches, manual synchronization queue ownership, manual memory allocation, descriptor pool pool pools etc, etc...
Vulkan is exponentially more complex and is so very much on purpose.
The nearly 1000 lines of code required to even get Vulkan to display something is enough to make most beginners not even attempt it. Whereas in OpenGL you could do the same in like a 10th the amount of code. That makes prototyping and iteration certainly leagues faster in OpenGL and makes it a lot less daunting. The setup is the most annoying part about working with Vulkan, it's tedious, boring, and not exciting even in the slightest. Altogether it just feels like a massive chore. After that though, it becomes a lot more intuitive and usable. It's really meant for you to build your own abstraction layer on top of it (DIY) whereas OpenGL already is its own abstraction layer.
The only real benefit you get from using Vulkan is if you actually know what you're doing with it. A beginner isn't likely to find all that lower-level access that Vulkan provides to be super helpful anyways, since they likely don't even understand what most of it does or the situations in which it can be applied. The biggest difference between the two, from a high-level conceptual point of view, is that OpenGL assumes a lot of things for you, and Vulkan does not, it needs to be explicitly told everything. 99% of the time the default assumptions that OpenGL makes will be perfectly fine, and certainly for beginners.
Vulkan really shines when you're trying to run high-performance 3D graphics on limited hardware (gaming consoles) where having that fine-grained low-level access to the hardware actually becomes super beneficial to the developers. It lets them squeeze out more detail and performance than they'd otherwise be able to get with OpenGL. Of course, Vulkan also provides support for all the newest graphical effects like raytracing, so if that's your goal, you'll want to learn Vulkan.
If you want to learn, I would recommend opengl. There are way more tutorials and as long as you know how to code its easier to follow. To be honest, you probably dont need the speed vulkan has if you are not working on a triple a game with a team. Opengl, while not easy, is more simple than vulkan but it will definitely be more than enough for any indie projects
ОтветитьTrue,i'm making a game engine with opengl
ОтветитьI'd say out of all the APIs, OpenGL (2.0+) is by far the least verbose, but a bit more complex than something like DirectX9. Vulkan though, as you said is more verbose than OpenGL, but is also a fair bit more complex. In OpenGL you just call a loader function and the entire API is ready to render, but in Vulkan and Direct3D APIs you need to create an instance and to a lot more set-up before being able to even clear the screen
ОтветитьVulkan is faster if you use it right. Otherwise it’s easy to make it run magnitudes slower than OpenGL
Ответитьnot gonna lie thing is the video i was looking for great job
ОтветитьLearn Vulkan first. Vulkan has way better branding then OpenGL. It has way better color scheme too (the striking red color). Not to mention the logo: the Minotaur, Teapot, dragon, and bunny are iconic. I don't think OpenGL even has a mascot. So... LEARN VULKAN.
Ответитьfor me I started using vulkan first because why not. either way I don't think it matters just choose one and stick with it. the real Uber chads will always make their graphics with assembly and a custom cpu
ОтветитьUse rust + wgpu instead!
Ответитьe
ОтветитьI never have such thought. By the time I learnt OpenGL, vulkan is not out yet not even mentle API from AMD. I learnt Vulkan when it just came out in 2016 Feb. I think vulkan is a bit verbose and over abstraction. But for multi-thread it really provide you complete freedom un-like in OpenGL we need to do stupid workaround like shared context. And in Vulkan you are more aware of GPU state and you have more control.
To learn OpenGL or Vulkan first, it's never about performance. Think about you learn a programming language, it's ridiculous to say you only want to learn the fastest language in the world.
More freedom, more complexity
I think people should always learn OpenGL, because it's more productive and it helps you open the gate to real-time graphics programming. Say you want to hardware accelerate on android, simply by uploading an image to GPU. Usually OpenGL is enough. And I think if you are experienced with OpenGL, learning vulkan just take a few steps further, won't be that painful anymore. Fun thing is you can compare two APIs to figure out the design decision and story behind Vulkan.
Good distinction: Complexity vs. Verbosity
ОтветитьNo matter the API, framework. Always use C++ :D
ОтветитьImo when I first looked at graphics APIs, OpenGL was a lot less intimidating than Vulcan, but now that I can make a textured cube spin around, I think I'll try Vulcan again and see if it makes any more sense lol
Great, clear, and concise video though!
I'd say, if you are a beginner programmer, or beginner in the field of 3d graphics or you want to see results ASAP - go OpenGl.
But if you are an experienced one and you want to master complex but #1 API - vulkan...
Personally, I'm learning vulkan after some huge expirience in software development and 3d graphics (OpenGl, DirectX, SDL, Unity) and it's still feels quite more complicated then older APIs, there also lack of good tutorials (just few good ones)... Though, I totally like this API...
Even though I do agree with you, I would still say Vulkan is not beginner-friendly simply for the fact that by the time you get any visual feedback, a lot of people would have given up.
Some people also quickly give up with OpenGL, and it only requires 2 libraries to link and 100 lines of code to get some visual results...
yes
ОтветитьI recently learned rust and now I want to learn graphics programming soo do you have any resources for vulkan/opengl? I have heard wrappers aren't that good if you want to learn how it works please help me
ОтветитьTho vulkan is verbose, i think it's still more complex than opengl. You have to be on a lower level in vulkan thus messing with lower levels things like devices. (but vulkan provides validation layers so it's easier to navigate so idk)
ОтветитьWell i suck at both anyways lol i been happy just making the screen show up in glfw-
Ответить