The Vulkan Graphics API Is Here, and Your NVIDIA GPU Is Ready
Stack Exchange network consists of 176 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. Visit Stack Exchange From the wiki: "the Vulkan API was initially referred to as the 'next generation Open GL initiative' by Khrono", and that it is "a grounds-up redesign effort to unify Open GL and Open GL ES into one common API that will not be backwards compatible with existing Open GL versions". This seems a lot like asking "Should new programmers learn C instead of C," or "Should new artists be learning digital painting instead of physical painting." Especially because it's NOT backward compatible, graphics programmers would be foolish to exclude the most common graphics API in the industry, simply because there's a new one. So should those now getting into graphics programming be better served to learn Vulkan instead of Open GL? Additionally, Open GL does different things differently. It's entirely possible that a company would choose Open GL over Vulkan, especially this early in the game, and that company would not be interested in someone who doesn't know Open GL, regardless of whether they know Vulkan or not. For those who don't need to market their skills as such, like indie developers, it'd be even MORE foolish to remove a tool from their toolbox. If you're getting started now, and you want to do GPU work (as opposed to always using a game engine such as Unity), you should definitely start by learning Vulkan.
RDR2 Dx12 vs. Vulkan - YouTube
An indie dev is even more dependent on flexibility and being able to choose what works, over what's getting funded. Maybe you should learn GL later too, but there are a couple of reasons to think Vulkan-first. I was concerned at first that Vulkan is much harder to program against, and that while it would be OK for the experienced developers at larger companies, it would be a huge barrier to indies and hobbyists. I posed this question to some members of the Working Group, and they said they have some data points from people they've spoken to who've already moved to Vulkan.
These people range from developers at Epic working on UE4 integration to hobbyist game developers. getting to having one triangle on the screen) involved learning more concepts and having longer boilerplate code, but it wasn't too complex, even for the indies. But after getting to that stage, they found it much easier to build up to a real, shippable application, because (a) the behaviour is a lot more predictable between different vendors' implementations, and (b) getting to something that performed well with all the effects turned on didn't involve as much trial-and-error. With these experiences from real developers, they convinced me that programming against Vulkan is viable even for a beginner in graphics, and that the overall complexity is less once you get past the tutorial and starting building demos or applications you can give to other people.
As others have said: GL is available on many platforms, Web GL is a nice delivery mechanism, there's a lot of existing software that uses GL, and there are many employers hiring for that skill. It's going to be around for the next few years while Vulkan ramps up and develops an ecosystem. For these reasons, you'd be foolish to rule out learning GL entirely. Even so, you'll have a much easier time with it, and become a better GL programmer (and a better GPU programmer in general), if you start off with something that helps you to understand the GPU, instead of understanding how they worked 20 years ago. I don't know whether this is relevant to you in particular, but I feel I should say it for the other visitors anyway. To be an indie games developer, or a game designer, or to make VR experiences, you don't need to learn Vulkan or GL.
Why do game companies still use DirectX instead of Vulkan? linux
Many people get started with a games engine (Unity or UE4 are popular at the moment). Using an engine like that will let you focus on the experience you want to create, instead of the technology behind it. It will hide the differences between GL and Vulkan from you, and you don't need to worry about which is supported on your platform.
It'll let you learn about 3D co-ordinates, transforms, lighting, and animation without having to deal with all the gritty details at once. Some game or VR studios only work in an engine, and they don't have a full-time GL expert at all. Even in larger studios which write their own engines, the people who do the graphics programming are a minority, and most of the developers work on higher-level code.
Learning about the details of how to interact with a GPU is certainly a useful skill, and one that many employers will value, but you shouldn't feel like you have to learn that to get into 3D programming; and even if you know it, it won't necessarily be something you use every day. Learning graphics programming is about more than just learning APIs. Vertex transformations, lighting models, shadow techniques, texture mapping, deferred rendering, and so forth.
These have absolutely nothing to do with the API you use to implement them. So the question is this: do you want to learn how to use an API? In order to do stuff with hardware-accelerated graphics, you have to learn how to use an API to access that hardware. But once you have the ability to interface with the system, your graphics learning stops focusing on what the API does for you and instead focuses on graphics concepts. If your goal is to learn graphics concepts, the time you're spending with the API is time you're not spending .
Казино Вулкан Платинум 777 - Официальное зеркало Vulkan Platinum
How to compile shaders has nothing to do with graphics. Nor does how to send them uniforms, how to upload vertex data into buffers, etc. It takes a of work and learning with Vulkan before you can reach the point where you're ready to start learning graphics concepts. These are tools, and important tools for doing graphics work. Passing data to shaders requires explicit memory management and explicit synchronization of access. By contrast, getting to that point with Open GL requires less work. And yes, I'm talking about modern, shader-based core-profile Open GL. Just compare what it takes to do something as simple as clearing the screen. You don't need to know what a framebuffer is or where its image comes from. Because Open GL hides a lot from you, it takes a lot less effort to get to the point where you're actually learning graphics as opposed to learning the interface to graphics hardware. It will issue errors when you do something wrong, usually. While there are debugging layers that you can use to help, the core Vulkan API will tell you almost nothing unless there is a hardware fault. In Vulkan, this requires at least some understanding of a large number of concepts: command buffers, device queues, memory objects, images, and the various WSI constructs. If you do something wrong, you can get garbage rendering or crash the GPU. Coupled with Vulkan's complexity, it becomes very easy to accidentally do the wrong thing.
Forgetting to set a texture to the right layout may work under one implementation, but not another. Being a 3D graphics programmer usually requires some idea of how to optimize your code. Forgetting a sychronization point may work sometimes, but then suddenly fail for seemingly no reason. And it is here where Open GL's hiding of information and doing things behind your back becomes a problem. The implementation is allowed to issue commands asynchronously so long as the user cannot tell the difference.