🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

WebGL ES 3.0

Started by
4 comments, last by VildNinja 7 years, 7 months ago

So I guess earlier this year Khronos released an API called Vulkan to develop WebGL 2.0 web content. This is supposed to be some pretty cutting edge stuff able to, in theory, render high quality 3D scenes with all sorts of effects right in your internet browser. it also support android devices. Turns out my computer doesn't have the nuts to support webGL 2.0 which is surprising since my computer is really good. I'm looking to realize the short aim of my project which I'm developing in WebGL 1.0 to show a proof of concept so to say, then if there is enough interest in what I've thrown together, putting more serious work and effort into a WebGL 2.0 game. Anyone out there working with Vulkan yet? or interested in developing content for this??

Advertisement
WebGL 2.0 is based on OpenGL ES 3.0, not Vulkan.

You can find the WebGL 2.0 draft specification here.

k maybe you can help me understand this better. what is Vulkan? I thought it was a low level API that can be used to develop content for OpenGL ES 3.0? at least that's the information I've found. How could someone go about developing content for OpenGL ES 3.0?

k maybe you can help me understand this better. what is Vulkan? I thought it was a low level API that can be used to develop content for OpenGL ES 3.0? at least that's the information I've found. How could someone go about developing content for OpenGL ES 3.0?

Vulkan is a low-level API.

OpenGL is a low(ish) level API.

OpenGL ES is a low(ish) level API.

OpenGL is not a platform, it's not software, it's none of those things; it's an API too; they're all APIs and you don't use one API to develop content for another.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

Ah, o.k. So then I've tried to find out how one could go about developing WebGL 2.0 and that's when I came across Vulkan. Also if WebGL 1.0 is based off of OpenGL and OpenGL is an API then why am I using the Threejs API to develop content using WebGL 1.0? Could Vulkan not be used in the same way to develop WebGL 2.0 content? Sorry I'm just trying to wrap my head around this. Does anyone know how to develop content for WebGL 2.0?

Disclaimer I am not a rendering expert, but this is a rough explanation of Vulkan vs OpenGL

No, WebGL works because it is supported by modern browsers through javascript. In the far future browsers might support some form of Vulkan, but don't wait for it. Also at the moment the performance benefits of using Vulkan in browsers would drown completely in the bottleneck of executing the application as a webpage.

OpenGL is pretty damn sufficient for most things. But the API started to have issues keeping up with modern requirements for games, since it also have two huge requirements of both being somewhat backwards compatible, and being relatively easy to use while still having a clean interface.

Vulkan is developed without too much focus on ease of use, but more focus on giving as direct access to the hardware as possible. In short OpenGL is an API designed to create 3D applications. Vulkan is an API designed to create highly optimized frameworks, that can be used to create 3D applications. I.e. in Vulkan you have to manually specify pretty much every command pipeline you use to communicate with the graphics card. This is hidden away in OpenGL, where you pretty much just requests a buffer to copy your data into.

Edit: OpenGL ES is a subset of OpenGL stripping away most of the utility functions from OpenGL such as rendering a single triangle at a time (which is highly ineffective, but usefull for the beginer trying to learn OpenGL). in OpenGL ES you can only upload entire buffers of triangles to batch render. This is also how you would do it in both OpenGL and Vulkan (though the upload step has a ton more customization in Vulkan)

This topic is closed to new replies.

Advertisement