3 ms·
Is there a serious MOOC that gets into this? I'd like some academic rigour rather than some kid on YouTube. I tried the Unity route and had issues with shaders.
by throwawaybbq1 9y ago
Is there a serious MOOC that gets into this? I'd like some academic rigour rather than some kid on YouTube. I tried the Unity route and had issues with shaders. Trying to get into GPU programming.
- microcolonel 9y agoI tried courses a few years back, but what actually helped me get into OpenGL (I started with ES2 because it was compatible with every device I owned) was to find an existing OpenGL ES 2.0 program which compiled and ran on my computer, and tinker with that week after week. I think I have a pretty good grasp now of shading and how to take good advantage of the pipeline stages. I suspect Vulkan will require the same sort of effort. I bought the Programming Guide in the first preorder campaign, but I think the way I will learn Vulkan is by transplanting my pet ES2 projects into an existing Vulkan skeleton.
- Impossible 9y agoWhat issues did you have with shaders? Unity doesn't always make documentation easy to browse, especially when it comes to shaders, but outside of shadertoy its one of the best environments to just start writing shader code with limited setup. If you don't understand Unity (like what a game object or component or material is) it will be challenging to drive into writing shader code first though. There is a MOOC on Udacity that is introductory, but could be good for you if you are a beginner. A lot of the deep information about graphics is in vendor documentation and GDC or siggraph presentations. Some of it is in blogs or books. If by GPU programming you're thinking more compute focused than graphics, reading Nvidia's CUDA documentation and tutorials could be a good start.
- greggman 9y agoStart with WebGL? The concepts are the same. http://webglfundamentals.com http://webglfundamentals.com
- animal531 9y agoIt's relatively easy in Unity to get OpenGL going. For 3d Objects: 1. Create a mesh. There are a lot of tutorials/free asset store helper classes that can show you how to do this, alternatively just copy the mesh out of an instanced object 2. Assign a pre-made shader to it 3. Render it with OpenGL, e.g. GL.DrawMesh/Instanced For general starter OpenGL you can just make calls using GL.Begin etc. The nice thing about doing this is that things like lighting, shaders, OpenGL state switching/machine etc. are already taken care of for you (and those little things can take a long time to figure out if you're new).
- throwawaybbq1 9y agoThank you. The OpenGL calls you refer to .. is there a C# binding that is easy to setup with Unity? I tried OpenGL in a computer graphics undergrad course (sadly, one I dropped) and it was a crazy amount of C/C++ libraries and header files (along with esoteric things like GLUT, etc.). I didn't realize I could do OpenGL within a Unity/C# context.