14 ms·
I would not advise anyone to try to get into computer graphics directly with the Vulkan or DX12 APIs. Start with DX11, modern OpenGL and/or WebGL, and work thro
by Jare 9y ago
I would not advise anyone to try to get into computer graphics directly with the Vulkan or DX12 APIs. Start with DX11, modern OpenGL and/or WebGL, and work through your computer graphics theory (and a lot of practice) using those. Geometry, illumination, shaders, tools and GPU computation will take a lot of time to master. When you decide you want to go into low level APIs, if you are comfortable with Apple systems, Metal will likely be easier than Vulkan/DX12.
A lot of the theory from classic books is still valid, so even a copy of Computer Graphics: Principles and Practice will look fine on your desk. "Real Time Rendering" by Moller/Haines and "Physically Based Rendering" by Pharr are excellent. "Game Engine Architecture" by Gregory and "Mathematics for 3D Game Programming and Computer Graphics" by Lengyel will probably prove very useful and relevant to you as well.
Online resources, the free https://learnopengl.com/ https://learnopengl.com/ and the $10 http://graphicscodex.com/ http://graphicscodex.com/ are both fantastic. Make sure to read https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/ https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-..., and also study the techniques used for the craziest entries in https://www.shadertoy.com/ https://www.shadertoy.com/
And then, lots and lots of papers and presentations from the past 5 or 10 years of Game Developers Cconference and Siggraph.
- greggman 9y agohttp://webglfundamentals.org http://webglfundamentals.org ?
- moron4hire 9y agoIn a lot of ways, all that old software rasterizing theory is even more relevant now, because shader languages really don't give you very much. They can convert polygons into screen fragments, but it's up to you to figure out projection, mapping, lighting, and everything else. It makes advanced techniques infinitely easier. There is stuff you just couldn't do on the fixed function pipeline without a vendor-specific extension. But it makes for a huge learning curve for simple stuff. For that reason, I general suggest people start with a game engine like Unity or PlayCanvas, or if they are already experienced programmers, a scene graph like Three.js.
- jorvi 9y ago> When you decide you want to go into low level APIs, if you are comfortable with Apple systems, Metal will likely be easier than Vulkan/DX12. Why would you this though? You'll restrict yourself to a comparatively tiny market (10% PC market share, 20% smartphone market share), and your low level knowledge will be somewhat nontransferable.
- jeremiep 9y agoMost concepts in Metal build on concepts learned from GL/DX11 and carry on to Vulkan/DX12. This is better than starting directly in Vulkan/DX12, quickly getting overwhelmed and giving up. Plus it makes the step from GL/DX11 easier. I bought an iPad last month just so I can play with Metal on an actual iOS device at home :) I don't think hobbyists care about market share that much; they want to get hands-on and learn, and Metal is a rather fun API to work with.
- Recurecur 9y agoAs far as mobile goes, iOS has some compelling advantages. In particular, you don't have the headache of supporting all the different Android devices. Plus, despite the difference in raw numbers of devices, iOS offerings often bring in as much or more money than the Android version.
- sillysaurus3 9y agoThis is an unpopular opinion, but nobody knows how to make anything look real. The quicker you accept and internalize this, the easier it is to dive into graphics programming. It reveals graphics programming for what it is: A bag of tricks that mostly look good in certain constrained circumstances. When I first started out, I chased book after book looking for knowledge. "Someone must know how to make things look real, right? Everyone is talking so authoritatively on the topic." No, no one knows. There's no source of knowledge that represents the cutting edge of the field, because the cutting edge is whatever happens to look pretty good today. And that's mostly thanks to very good art, not very good techniques. Just dive in and start doing geometric puzzles. Look at it like a game, not like a quest for knowledge. If you have fun with it you'll go further than any book will take you.
- miketuritzin 9y agoFrom my experience this is very much true of the current state of real-time rendering (and there's nothing really wrong with that, because it's just not possible to run anything resembling physically accurate algorithms in real-time). However, in the world of offline rendering and raytracing, there has been considerable work on doing physically accurate rendering. Of course a lot of approximations are still made due to memory/CPU constraints, but it is a different world. "Physically Based Rendering" by Pharr and Humphreys is a good intro to this way of doing things.
- sillysaurus3 9y agoIf that were true, we'd see the evidence in Hollywood. But nobody knows how to make a realistic fully-simulated video. The reason everyone believes that it's just around the corner is because those academics talk with authority on the topic, and the still frames look pretty convincing. But still frames are completely different from video -- the human visual system processes video differently. I've written about this before: https://news.ycombinator.com/item?id=13892671 https://news.ycombinator.com/item?id=13892671 https://news.ycombinator.com/item?id=12461883 https://news.ycombinator.com/item?id=12461883 https://news.ycombinator.com/item?id=13893305 https://news.ycombinator.com/item?id=13893305 The only technique that we know produces realistic video is if you mix actual, real footage with simulated content. That's very effective, but it's unsatisfying for obvious reasons. I think it hints at a way toward fully simulated realistic video, though.
- phkahler 9y ago>> even a copy of Computer Graphics: Principles and Practice will look fine on your desk My copy of CGPnP is from 1993. Math doesn't get old, we just build more on top of it ;-)