5 ms·
WebGL is already implemented on top of DirectX on Windows using ANGLE: https://en.wikipedia.org/wiki/ANGLE_(software) https://en.wikipedia.org/wiki/ANGLE_(softw
by mcpherrinm 8y ago
WebGL is already implemented on top of DirectX on Windows using ANGLE: https://en.wikipedia.org/wiki/ANGLE_(software) https://en.wikipedia.org/wiki/ANGLE_(software)
As a result, operating system support isn't really relevant to browser support, since ANGLE will eventually be able to target metal or vulkan on Mac os
- zerr 8y agoWhat about OpenGL? Is it worth learning now?
- skolemtotem 8y agoYes! I'd suggest learning OpenGL, then Metal, then Vulkan/DX12, which is how I'd rank them from high to low level.
- zerr 8y agoI'd prefer to stay at OpenGL level. Maybe some kind of standardized high-level API pops up on top of Vulkan/Metal, for those who don't want to go that low-level.
- skolemtotem 8y agoMetal is actually not that bad to live in. Vulkan, on the other hand, is micromanagement hell. I definitely agree with the people saying that it's for "building your own OpenGL".
- pjmlp 8y agoWorse, because they took the extensions concept and took them a step further. Every couple of weeks there is a new version, and each card supports a certain minor version. https://vulkan.gpuinfo.org https://vulkan.gpuinfo.org
- Teknoman117 8y agoSpecifically I'd suggest sticking to OpenGL 4.x and ES 3.x when learning OpenGL. Even OpenGL 4.4+ brought a lot of changes that should be used instead of what existed before (bindless resources, texture/buffer storage, persistently mapped buffers, etc.)
- tzahola 8y agoJust learn the fundamentals in a platform-agnostic way and you’ll be set for life: - 3D geometry (lines, planes, implicit and parametric surfaces) - basic splines (Bezier, Hermite, maybe NURBS) - matrix transformations - rotation via quaternions - projective 3D geometry - shading (diffuse, Phong, etc) - advanced tricks (shadows, reflections, etc) Once you nail down these topics, the rest is just learning the specific API quirks (memory model, synchronization, etc), be it OpenGL, Metal, DirectX, Vulkan, or whatever comes next in ten years.
- Bekwnn 8y agoGraphics apis are similar in their fundamentals. Dont bother fretting about which to learn. Instead make sure you understand how the systems transfer and process data between the CPU and GPU.
- megaman22 8y agoDepends on your target platform and what you're doing. On Windows? Learning DirectX will be more bang for your buck. Apple? Then Metal is probably the way to go, if you need low-level control and performance. Vulkan if you want crossplatform low-level control. If you don't care so much about the nitty gritty details and want to get things done quickly, Unreal or Unity is probably more rewarding. One of the difficulties with OpenGL is that it's awfully fragmented and there are many ways to do things that have evolved over time. Learning resources are consequently spread around, and it's really easy to learn suboptimal obsolete ways of doing things.
- pjmlp 8y agoYou should learn 3D in general, and then the platform APIs. Contrary to popular belief, OpenGL wasn't never the universal 3D API outside the PC world. Games consoles and some embedded stuff always favoured their own. Also the APIs are very low level. So when you finish doing a scenegraph, font, texture, materials, math, shader management, physics, frame management, UI, Mesh loader, the actual conversion of triangles into pixels is a tiny portion of the overall code.
- zerr 8y agoI meant for the person who is more or less knowledgeable in 3D in general but needs to use a specific API to actually put some pixels on the screen. And also career-wise, would it make sense to become an "OpenGL programmer" nowadays? (or product-wise - should we do it in OpenGL when we care about long-term support?). Again, I want something like OpenGL level, i.e. don't care about Vulkan like low-level control.
- pjmlp 8y agoOpenGL still has lots of steam in it and 4.6 was recently released, so it isn't going away anytime soon. Even on mobile devices, Vulkan is hardly being embraced by Android developers, because it requires Android 7 or later, while being an optional API, which implies a tiny portion of their customer base. So very few devices support it, to the point Google doesn't think it is worthwhile to display on Android dashboards. https://developer.android.com/about/dashboards/ https://developer.android.com/about/dashboards/ http://vulkan.gpuinfo.org/vulkansupport.php#android_devices http://vulkan.gpuinfo.org/vulkansupport.php#android_devices AMD is also busy trying to cater CAD vendors to adopt Vulkan, with initiatives like V-EZ. https://gpuopen.com/v-ez-brings-easy-mode-vulkan/ https://gpuopen.com/v-ez-brings-easy-mode-vulkan/ However, if you want to be an engine developer, probably it would be better to have Vulkan knowledge than the APIs that everyone else already knows. Some guys at Khronos sessions (check their YouTube) stated they would favor candidates in interviews in such cases. For product development, I am a bit fan of middleware where each API is just a tick box away, though.