Shader School - An introduction to GLSL shaders that runs in your web browser
github.com
github.com
Still incomplete but browsable online and has its own interactive shader editor
(try to click on values like floats or vectors)
And for WebGPU, it seems like C++, Rust and HLSL had a baby named WGSL.
Finally, GLSL on desktop, GL ES, WebGL and Vulkan isn't the same language anyway, just close enough to port most shaders.
I originally learned opengl in school and after a few years of working with it I transitioned to a job where we primarily used Direct3D. I guess I had passively picked up enough bits and pieces along the way because I never really thought about the shift.
I briefly looked at Vulkan when it first came out, but I haven't had the time to get into it. That's a whole different beast.
For me I settled on: 1) Learn WebGL in the browser. It’s a pretty good subset of OpenGL [ES] and an easy environment to experiment in. Then 2) learn a more “native” approach with good tooling support, such as Direct3D 11. (I wouldn’t get into D3D12 or Vulkan until you learn the basics pretty well).
As others have mentioned, while the landscape is confusing, the concepts across them are pretty similar once you get a foothold.
Sony uses a variant of HLSL called PSSL [1], where one of the goals to it was being HLSL-compatible.
[0] https://tcrf.net/Mario_Kart_8/Kiosk_Demo_(April_4th,_2016)/d... [1] https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdceurope201...
Not all Nintendo consoles do so.
And the switch has even GL 4.5, Vulkan and NVN to chose from.
As anyone with some graphic programming experience in cross platform knows, even among GL variants, being a variant is enough for shaders not to compile the same way and require code rewrites.
The Wii U has a custom GX2 API, where the official shader language is GLSL (again, see the Mario Kart 8 kiosk demo).
The Switch has NVN, GL, Vulkan, where the official shader language for all three is GLSL (based on NVIDIA's GLSL compiler).
Secondly, the Cafe SDK documentation clearly refers to OpenGL 3.3, and GX2 is basically OpenGL in spirit while using naming and some utility functions, which fits "GL based API similar to GL 3.3".
I assume you also have access to Cafe documentation.
Safari 15 just added WebGL 2.0 available on stable, and native debugging tools are still the way to go for most cases.
After 10 years.
I still remember Macromedia/Adobe showing off their flash 3d engine. Nothing was accelerated, just software rendering. Ugly and slow but there wasn't anything better at the time. It went nowhere I think
See Unreal Engine 3 demo on Flash.
And with Web 3D reflecting 2012 hardware in 2021, no wonder that the answer for ultimate 3D and good debugging tools is native on mobile, or server side rendering with streaming.
Lol, Flash 3d was built on OpenGL and DirectX, which are still here and have progressed since then. What are we catching up with? Adobe chose to kill flash because of WebGL.
Even when WebGPU eventually comes out into stable Chrome, it will take again 10 years to similar adoption, and it won't be anything more than a plain 1.0 MVP, short of many things that Vulkan, Metal and DirectX 12 Ultimate are capable of in 2021.
Enjoy your pyrrhic victory.
> Enjoy your pyrrhic victory.
I don’t understand why you’re repeatedly spending time on WebGL threads sharing sour grapes about Flash. They don’t compete. At all. WebGL is not an authoring tool, and Flash was. Your sentiment is just laughably misplaced. Adobe killed flash, Adobe alone is where your ire should be aimed, for not making an ecosystem that could withstand abusive content creators.
Worse, they can't be be turned off, can be used for tracking analytics as well and it isn't as if shaders can't be used for mining.
Those flags are mostly only known to Webdevs and not directly exposed in the settings panel.
How to create something like this (including sound!) while thinking on a per color x,y basis is mind boggling.
It's not printed on dead trees but there's easily enough covered there for a book or three.
https://www.youtube.com/watch?v=rvDo9LvfoVE is a good first watch.
A good example is the Revision 2021 semi-finals[1]. The entire video is worth watching, but I especially recommend watching the last half of evvvil-vs-flopine (from about 43:00); the last few minutes (from ~56:00) fundamentally changed my understanding of what is possible in a fragment shader. Ray marching into a hand crafted signed distance field is such a bizarre way of thinking about a scene.
[1] https://www.youtube.com/watch?v=NBdRfFwuP40
edit: corrected 'last few minutes' time
5 hour video of its creation: https://www.youtube.com/watch?v=Cfe5UQ-1L9Q
Utterly amazing.