That is why I use OpenGL. Yeah, thats why i dont code when im hungry. This has nothing to do with OpenGL in general, though. X format for loading 3D models, which in turn defeats the purpose of writing your own parser and learning how the file format works. Obviously, OpenGL. OpenGL is currently on its 1. The problem is, every time they release a new version of their API, you have to relearn the whole damn thing.
Under XP, I run both with a monitor refresh rate of 85hz the best my monitor can do at x , and have no problems. Also, for both there are ways to disable the vertical sync, so your app can actually run faster than the monitor can technically keep up. Which one is faster seems to depend on the hardware vendor. In my experience, nVidia generally has faster OGL drivers than D3D, though lately they seem to have been getting much closer in speed.
Learn which ever one you like the looks of first. They are both similar enough now that once you learn one, the other is easy to pick up. I can write programs for Linux, Mac, Windoze, etc. You mean Direct3D. You say I am niggling well programming takes attention to detail so get used to it. You have to code the file loading routines yourself… It is true that opengl can only taje power of 2 texture dimentions, but thats a graphics card issue, and as far as i know d3d can also only take power of 2 textures.
Just outta interest, if i was looking forward to a carreer in the game industry, would d3d or opengl suit? Anyone knows that they can write an image parser better than Microshaft can, and they should to suit the needs of their program, or use something like DevIL to do the job.
Now, to answer your question, MrShoe, you should learn OpenGL if you were looking forward to a career in the game industry, in general. But if you go this route you should at least know everything that I had mentioned above and some!
So as you can see Vulkan is not really geared towards beginner programmers in this field. You have to have extensive knowledge of all of the math, programming paradigms, all of the different types of data sets and algorithms including threading, memory synchronization, parallel programming.
And even then that's just to get the application to load a simple 2D triangle on to the screen. Vulkan leaves everything up to you as your are responsible for all aspects of how you are using Vulkan in your application. There is no hand holding, it doesn't get in your way, it'll allow you to shoot yourself in the foot or allow you to hang yourself buy a recursive noose!
Now this isn't to say that beginners or those that are new to this field shouldn't learn Vulkan, but what I would suggest for them is this: First Learn enough of OpenGL and or DirectX to get your feet wet to see how a basic application is structured just to render a simple triangle or a spinning cube.
Get familiar with their APIs and their recurring patterns of their structures. While learning that you could learn Vulkan on the side in Parallel then this way you can see how each of the three are accomplishing the same task, but know how they do it differently, then you can also compare the results between the different APIs and from there you can then make a choice of which is preferred to you. This method would also give you another tool in your tool box, and you could even write your application to support all 3 and have the "User" select which Renderer to choose at application start up.
In the end it is all up to that person to choose which route they want to go down, and from there their success will be determined by their dedication, constant study, hard work, trial and error, and most importantly their failures. If you don't fail then you are not successful! You are only successful if you have failed, found your mistake s , fixed them, moved on and got back up and did it all over again! You should be learning OpenGL first, as that is the standard for Graphics, across so many platforms.
Even if there is a newer library, understanding the basics, and working with a language that is used all over the industry, is very important Especially since Vulkan wont be used in Big Companies for awhile, since.
This has happened with frameworks such as JavaFX from 1. Framework Also 1. Complete changes to the framework, meaning we have to relearn That means wait until Probably the 2. IT doesn't mean you cannot learn about the basics of Vulkan, but just know this might change. I would assume that a group like Kronos would provide a very stable API from the start, especially since there are multiple Nvidia and AMD engineers working on Vulkan, including a high up Nvidia person overseeing the project apparently, as well as The base of Mantle; however, like any software, we the coders will see how well it works from the start, but many are wary and waiting to see what happens.
Sign up to join this community. The best answers are voted up and rise to the top. Stack Overflow for Teams — Collaborate and share knowledge with a private group. Create a free Team What is Teams? Learn more. Should new graphics programmers be learning Vulkan instead of OpenGL? Ask Question. Asked 5 years, 5 months ago. Active 1 year, 10 months ago. Viewed 42k times.
Improve this question. Dan Hulme 6, 1 1 gold badge 12 12 silver badges 35 35 bronze badges. Add a comment. Active Oldest Votes. Specialization is rarely a marketable skill. Specialization is rarely an efficient paradigm. Improve this answer. A translator that knows all of five words in every single spoken language is useless, people will hire translators that mastered a. Now over -specializing is problematic. A translator that completely mastered one language and only knows that language is also not a useful translator.
And devs indie or otherwise need to be careful not to spend all their time learning new tools. According to Khronos, they are "complementary". That would be a next-gen successor, if it successfully combined performance-gains with higher-level API calls for programmer convenience. Show 2 more comments. Dan Hulme Dan Hulme 6, 1 1 gold badge 12 12 silver badges 35 35 bronze badges.
Vulkan and DX12 has proven to be very difficult to implement, for experienced devs. With all the power that Vulkan gives you, it's very very easy to shoot yourself in the foot. In a addition, Vulkan requires a lot more boilerplate code. For someone just learning about GPU programming, I tend to think that Vulkan will be very overwhelming.
Believe me, I've done it! But assuming you meant it's difficult to integrate with or program against, I've added a paragraph with some information I learned from the Vulkan WG. Implement is perhaps a poor word choice.
I meant 'to use' in your program. But I like your edits. I thought that was only true of early OpenGL versions? But it's still a foundation that was set in the immediate-mode age, which is why those people decided a fresh start in Vulkan was needed. And I still see a lot of new users starting with GL and forming an immediate-mode mental model of how implementations work.
But they aren't actually graphics concepts. They are a means to an end. Graphical performance. Nicol Bolas Nicol Bolas 7, 10 10 silver badges 20 20 bronze badges. I think where we differ is that you encourage GL because it's easier to get started, while I think that ease of getting started brings a risk of doing things in legacy ways. It's quite hard to know in GL what the "modern GL idiom" is, compared with programming in a legacy style. If nobody tells you to use VAOs instead of a separate draw call per primitive, it's a lot harder to unlearn that mistake later.
There are plenty of such materials online that use modern idioms. Nobody should ever try learning graphics just by reading a reference manual or specification. Even so, I still see programmers getting started in graphics - some of them very competent in other fields - and using legacy features and learning nothing about the performance characteristics.
It's really hard to get that wrong in Vulkan, because it makes expensive things look expensive. Anyway, we don't need to argue. I agree with your main point: learning the concepts is most important, and you can do that without Vulkan or GL.
Unnecessary synchonization. Using only the "general" image layout. Not taking advantage of subpasses. Frequent pipeline changes. Not to mention, different vendors don't even agree on how best to use Vulkan. If people insist on learning from garbage sites like NeHe, or by reading random documentation, that's not something anyone can help. You can lead horses to water, but you can't make them drink.
Show 4 more comments. Gavin Higham Gavin Higham 71 1 1 bronze badge. And Apple is highly unlikely to adopt later OpenGL versions. The Apple platform is all-in on Metal, so cross-platform is a bust either way. By going all in on Metal, they hope to lock in mobile game developers that need more than GLES2 can offer but don't have the resources to write their games for both Vulkan and Metal. They're prepared to sacrifice Mac's tiny gaming ecosystem for this, especially if iOS devs also release on the Mac App Store.
Learn Linear Algebra and geometry like a pro. Without this, forget any fancy API or graphics Buy a good book on computer graphics e.
Fundamentals of computer graphics While you study the book, set up a programming environment with something that allows you to draw on an image and implement the algorithms! At this stage you need to get your spinning textured gears with multiple camera views up and running before trying to get FPS Now take on OpenGL, Vulkan or DirectX and repeat your fancy example see above.
Derag Derag 2 2 silver badges 11 11 bronze badges. I can't hold out for OpenGL updates forever, and I wont. So since you mentioned UE4 and you wish to learn the behind-the-scenes mechanics that can assist you with using UE4, you need to know this: OpenGL 1. Learning OpenGL 1. So it's down to a choice between more modern versions of the two APIs, and in such a case the major difference is that D3D has better quality drivers and better tools and documentation.
What all of this means is that 1 if something goes wrong you can be more certain that it's your code rather than some obscure or stupid driver bug, 2 you stand a better chance of being able to more meaningfully find out what that something that went wrong was, and 3 if you need help it's going to be easier to find it.
Log In. Sign Up. Remember me. Forgot password? Don't have a GameDev. Sign up. Email Address. Careers Careers. Learn about game development. Follow Us. Chat in the GameDev.
Back to For Beginners. Which is easier: OpenGL or Directx. For Beginners. Started by Romee November 15, PM. Romee I don't really care about performance yet. I'm just looking for what's easier to learn and use for someone that hasn't any experience in these topics yet. Cross platform abilities way less for me than the learning curve. I'm not trying to start a war here, but I just wanted to know I hope you want to share your own experiences and arguments and thanks.
0コメント