What's a good API to learn?


#1

Hi, I’ve never programmed 3D cards before, but I think the time has come where I’ll have to bite the bullet and do so. How do I approach it? I’ll have to start right from the basics - ie. where 3D cards were 20 years ago, I think, or is there some way to “skip ahead”? I’m a little confused with all the terminology - as I understand it, I have to use either DirectX, or OpenGL, with the latter being replaced by Vulkan, am I right? I’m on a Linux system, so the former is out. So it’ll have to be the latter. What I want to do is program for the web (so it’ll be WebGL?), but I’m also kind of curious about CUDA (AND the AMD equivalent, forget what it’s called), and I would LOVE to get into realtime raytracing, now that the hardware’s here!! :)(I probably have no clue what I’m talking about :)) So - how do I do these? What’s the API to learn? Can I pick it up with Youtube tuts?

Just to state, I’ll be starting off on all these with my ooooooold 3D card, so I hope I can do that.

Thanks for your help.


#2

…367 views and no one can tell me? :frowning:


#3

Since you’re having trouble getting a response. I’ll give you my thoughts.
But the fact that you’re a Linux user might make what I say worthless. Because I’m a Windows user.

Vulkan is not going to replace OpenGL any time soon. It’s probably only going to be used for big projects where OpenGL is struggling to get good performance.
I think you’re still safe to invest time learning OpenGL for a while. It’s probably going to take several years for it to catch on and be popular for smaller projects.

www.opengl-tutorial.org has a series of tutorials that start from making a window with a simple triangle…on up to more advanced stuff.
OpenGL uses old fashioned ugly looking code. With lots of old style memory handling syntax. So it’s a bit of a tough thing to slog through.
It’s also a little bit hard to go from making a triangle to making something more substantial. There’s a lot of learning in between.
The other thing that I found very rough to deal with when I started out is the fact that OpenGL examples use 3rd party libraries ( Glut, Free-Glut, GLEW, etc…)
One person might use GLUT in their code. While another used GLEW. And each of these libraries needs to be set up with your IDE and compiler.
I found it to be a very frustrating experience. Most newbies just want to get started writing code. But these 3rd party libraries are an obstacle you’ll need to to get past first.
A lot of people throw up their hands and give up and don’t even get to the point of writing code because of this 3rd party library mess.

Since your main focus is WebGL. I think you would get to where you want to go much, much easier and faster using three.js.
Three.js uses WebGL to do all the heavy lifting. But the code is much simpler to write. And it handles a lot of the complex 3d stuff for you.
The problem is you’re on Linux. And I have no idea if three.js works on that OS.

-ScottA


#4

Uhh no - with Javascript, ie. WebGL, there’s no libs to setup or anything, I’m sure - everything will just run inside the browser. Yes, if Firefox etc. run on Linux, obviously <whatever .js library> will run on it too…?! :slight_smile:
However , I really wouldn’t like to USE three - I’m a low level kinda guy, I like to know what my code is doing - for me, programming a 3D card itself is a bit of an…aberration, shall we say…

…but I’m curious - why do you say Vulkan won’t take over? You say it’s “only going to be used for big projects where OpenGL is struggling to get good performance”, ie. it’s performance is better…so why shouldn’t people use it? Simply due to the large nos. of entrenched folks who are using OpenGL? :frowning:


#5

Because Vulcan supposedly only makes small speed gains over OpenGL if you aren’t pushing it very hard. So it’s not worth the extra effort to convert small things to it.
I have no personal experience with it myself. But that’s the general consensus I’m reading about it.

WebGL and OpenGL/Vulcan are different things.
WebGL is code that is written in C and then compiled into javascript to run it in a browser.
You can learn to code WebGL by hand in C if you want. But three.js takes a lot of that pain away and helps make writing things easier and faster.

You also had a question about where to start learning OpenGL.
The code changes a little bit depending on version of OpenGL. So how far back you go depends on who your target users will be.
My laptop is very old and can only run OpenGL 3.1 or less. But most people are probably running cards that are in the 4.x range.
It might not make sense to bother learning 3.x OpenGL if you don’t care to target older machines like mine.

-ScottA


#6

There are so many types of a college that they ask for though and you need to learn all of them to pursue your dream job that matter a lot for your future in term of anything, as you can even go by Best Assignment Services which have good positive customer responses and you will be feeling good after taking their service. plus you can note my person expertise from the same website that matter a lot and you can try more on yourself for learning