What is WebGPU?
Vložit
- čas přidán 14. 05. 2024
- In this video, we will go over everything you need to know about WebGPU. We’ll start with a history lesson on the state of 3D computer graphics. Then, we will learn what WebGPU is and how it’s different from WebGL. After that, we will look at how big tech companies like Adobe, AutoDesk, Apple, Google, and OpenAI are investing in WebGPU. Finally, we go over how you can start learning WebGPU today.
🐦 Twitter - / suboptimaleng
💻 GitHub - github.com/SuboptimalEng
🌎 Website - suboptimaleng.com
== [ Resources ] ==
Tutorials:
WebGPU Fundamentals - webgpufundamentals.org/
Learn WebGPU with JavaScript - codelabs.developers.google.co...
General:
History of WebGPU - cohost.org/mcc/post/1406157-i...
From WebGL to WebGPU - developer.chrome.com/blog/fro...
Brandon Jones’ WebGPU Talk - • Introduction to WebGPU...
WebGPU Compute Shaders Tutorial - developer.chrome.com/docs/cap...
Building a Professional Design Tool on the Web - www.figma.com/blog/building-a...
Building WebGPU with Rust - • Building WebGPU with Rust
WebGL Water Demo - madebyevan.com/webgl-water/
Figma WebGL Blog Post - www.figma.com/blog/building-a...
Shadertoy - www.shadertoy.com/
Shadertoy Award - practitioner.siggraph.org/pos...
BioDigital - www.biodigital.com/
OnShape - www.onshape.com/en/
== [ Timestamps ] ==
00:00 Intro to WebGPU
00:58 History of 3D Graphics
03:21 What is WebGPU?
04:34 WebGPU vs WebGL
05:29 WebGPU in a Nutshell
06:09 2D Design Tools
07:35 Computer-Aided Design
08:59 Health Technology
09:39 WebGPU at Google
10:06 AI + ML with WebGPU
11:15 Computer Graphics Research
12:20 How to Learn WebGPU?
12:52 Future of WebGPU
== [ Tags ] ==
#suboptimal #webgl #webgpu - Věda a technologie
Hello friends! It takes me a while to upload videos on CZcams, but I'm pretty active on Twitter. I post all things related to computer graphics. Please look forward to my tweets: twitter.com/SuboptimalEng
Thank God Adobe got stopped. I'm getting tired of them consuming useful software and fencing it up behind their paywall.
I second this !
If there's 2 companies that need to stop their greedy monopolies it's Apple and Adobe. I hate having to subscribe to a product or having to pay $3,000 for a product license.
Love how you went from the big picture to the details of webgpu.
Thanks! It took months to research WebGPU and write the script for this video 😅
DirectX was a thing long before XBox. It is the main graphics library for windows and was the heart of "PC" gaming.
Yea that makes sense. I read the story of John Carmack roasting it and saying OpenGL was better. Suppose the tides have changed now 😅
@@SuboptimalEng Direct3D is the name of the Graphics API, DirectX is a collection of Windows APIs for multimedia (which includes D3D)
@@SuboptimalEngdirectx story is a bit confusing. Back in the mid/late 90s despite being the best selling computer platform PC/windows was lagging behind hard in terms of multimedia compared to the competition
The issue was that every soundboard, video card, etc did things their own way. And barely anyone ever used the hardware because of that and did everything in software.
So Microsoft came with direct x, the idea was to give a unified interface to features, and if they were not available on the hardware side, they would be emulated in software, so any program made using it would always work, so you had directdraw, directsound, directinput, etc
But then they also saw this company doing 3d hardware and a 3d API to go with it, they bought the company and used their API as the basis for direct3d... Which was completely different from the other direct x libraries and had no emulation.
Funny enough, few years in the future direct3d became the only survivor of directx, as everything else directx either died out or become more standardized and build in on windows.
And even funnier, the initial d3d supposely was super low level and based on buffers and display lists... Kinda like dx12/vulkan, But mapped horribly to the wildly different 3d hardware at the time and it is a lot harder to use than the very abstract opengl
Great summary, love it!
Great to learn that WebGPU can be used on desktop apps too, as well as web apps!
Even better that it's being developed as a standard by the W3C!
That fact alone has me sold on it!
Totally agree!
This is an amazing video. Thank you for taking the time to make this.
Thanks! It took months to gather all that info and turn it into a video. I actually started writing the script last year 🤓
@@SuboptimalEng wow...impressive work. CZcams videos are no joke. What's was the most tedious part of the process. And what was the most fun part.
1. Research
2. Scripting
3. Recording
4. Video & Audio Editing
Most tedious part was the scripting. A tough balance between what to keep, what to remove, and what to simplify.
I made this video because I wish something like this existed when I started learning about WebGPU. Helping others understand its importance is a great feeling 🥹
great explanation lil broski, thanks
This video is incredible! Thank you for the level of research that went into this. Instant sub!!
Thanks, I'm glad that this video helps convey the importance of WebGPU for graphics programming!
Great overview, thank you!
super interested in the native applications. loved the video, i love hearing passionate people share their views on an extensively researched topic
Yep! I’m definitely interested in seeing what kind of native apps people make with WebGPU.
Old-school game programmer here. I looked at Vulkan for doing 3D graphics, but decided it was for making engines, not applications. This looks like a nice middle ground of performance vs boilerplate.
This is exactly how I felt when learning WebGPU. Get 80% performance with 20% of the code!
That’s more than enough for most applications and simulations I want to make. And the added bonus of being able to distribute each project on a web app!
So freaking thorough and engaging. Amazing work on WebGPU. Have a couple of entrepreneurial ideas this night just by watching this. Thank you.
Thanks! It’s great to see more folks get excited about WebGPU.
This was great!
I'd love a video on the state of javascript-browser-based game engines, and how they currently compare with state-of-the-art game engines. Just found this channel, amazing content man!
Really good video!
Good video! Thanks!
I remember seeing WebGPU news but skipping over it. Thanks for this.
It’ll be interesting if web GPU front ends to coreML. Also, if React Native, Native Script, Electron etc start folding this in.
In any case, browsers with web assembly and web GPU are getting to be quite peformant.
Interesting! I do not know much about Apple's native ecosystem, but I do know that already Apple released WebGPU for Safari. And Google released it for Chrome and Android 12.
Hopefully, Apple will follow suit and release it for Safari on iOS. That's when the fun really begins!
Very informative!
Best video on CZcams explaining this topic
Thanks Varun!
really great video
I was introduced to WebGPU exactly due to WGPU being the go-to graphics API for Rust applications. So for me WGPU is more important. I prefer writing desktop applications, but working the same on Windows/Linux.
That’s awesome! I didn’t realize all the hype about WebGPU until it came to the web last year. Did you use WGPU to make any projects yet?
@SuboptimalEng, not yet, I'm still using OpenGL (or rather Miniquad crate, which is based on OpenGL). But I know that every big Rust project uses WGPU these days. Good example is Veloren - a free and open source Voxel RPG.
Super concise explanation... Browsed many other vdos from your channel.... So lovely... Thanks
Subscribed !
13:50 actually, vulkan is multiplatform, it support linux, android and windows. (and probably consoles, but they are NDA proprietary platforms so i cant say for sure, on xbox you probably can use something akin to dxvk)
the issue is apple, but you can solve it with moltenVK (at least on macOS, im not sure if its accepted on apple store for iOS)
Nice explanation. I won't be using it directly myself but indirectly as Unity switches from webGL to WebGPU later this year.
Thanks! I believe the folks at Unity are already making progress on getting games running on WebGPU.
Interesting...
I plan on keeping vulkan as my game engine’s main rendering implementation, and maybe pickup webGPU/OpenGL/etc later so the engine can reach more platforms. WebGPU is nice but a little too new for me for now.
That’s a good point. No need to jump ship to WebGPU immediately. It is a little early right now, but I do hope it ends up becoming what it’s promising to be.
Great video!
wgpu provides a dll which you can use to easily bind in other languages. It's really nice API.
This is great info. Put some this info on Wikipedia, if you add media there back linking from that to your website is good for SEO.
Thank you, learned a lot!! Can you also do WebXR? I started to learn both, and to know if they could work together and add to each others strength. Logo's look similar, are they or will they eventually be the same? These two would be a dream team in XR future and userfriendly ness
WebGPU doesn’t support WebXR yet. I believe there is a proposal for it.
Does it even run on pc with only cpu
Thanks for the video.
BTW, Dassault is pronounced 'daso'
I watched a video on how to pronounce it and still struggled to say it correctly 😂
The attempt to consolidate fragmented graphics APIs is commendable, but I wonder if this ambitious project can succeed without conflicting interests. I still think it might be premature. By the way, despite my opinion, the video was excellent. I'll share it with my friends. Thank you.
Thank you! And I must admit that you raise a valid point. WebGPU may struggle to find the perfect consensus, but I'm hopeful since a lot the big tech companies are invested in it.
For example, even Apple, the company that stopped supporting OpenGL and had a slow release cycle for WebGL, released WebGPU for Safari last month. This is much sooner than what the graphics community expected and it shows a sign of commitment from their end. Google already released WebGPU for Chrome and Android 12. These are good signs and make me stay hopeful!
On a side note: I really appreciate your level-headed approach of disagreeing with me on the comments section. It can get heated down here. Thank you!
I am investigating webgpu. I bounced off of vulkan a few times now because I feel like its benefits don't fully justify its complexity from a developer perspective.
Great to hear that! We need people need to get on the WebGPU train. It’s got a good balance of performance and ease of use.
Nice video! Do you think its reasonable for me to try to learn 3d graphics/games programming with WebGPU if I only have experience with full stack web development, making a fairly complex JS ray casting game engine, and making a basic HTML/TS 2D Game? I don't really have any knowledge of 3D graphics programming concepts
I'm really not sure. I'd always recommend Three.js for those interested in 3D graphics on the web😅
@@SuboptimalEng I'll definitely learn Three.js eventually. I just really like the idea of building a game from scratch, which is why I decided to build a relatively complex raycasting engine with vanilla JS not long ago.
An actual basic 3D game engine definitely requires more specialized knowledge, but it also seems a lot less messy compared to a raycasting engine.
does it work with every XR headset or just vision pro ? I'm totally a nooob with those things
WebGL supports WebXR. So websites using WebGL + WebXR should work on headsets. WebGPU doesn’t not support WebXR yet.
I Guess it time for Tauri to shine like you can create an app with vanilla react or any other js lib and build for desktop and mobile i guess js game dev will get a little boost
That would be an interesting outcome for sure. Electron needs some competition 😅
awesome video. thank you for making a coherent picture of everything.
as for new APIs, i hope it stays. my argument is that directX, openGL and metal should have been the glue between software & hardware, yet we didnt need 3 of them. vendors creating competing platforms is the core of so much of our problems in life.
we get something that eventually wraps the existing multitudes of frameworks and then someone will make a competitor to the high level framework. android and ios should be able to run the same programs, given similar hardware.
xbox and playstation should be able to play the same games. PCs and macs should be able to run the same programs. vendors could have put their efforts into making this the reality, but they simply dont want to. and that simply not wanting to steers these platform decisions & gives us a perpetual problem they simply dont want to fix.
Weird to have this type of vendor lock-in. Not like we pay them to use these APIs.
Not the 1970s... the 1990s... that hit hard... why do you want to hurt us. lol.
I’m a 90s kid. It’s hurts me as much as it hurts you 🥲
4:15 - But you do not need 2000 lines of code to draw two triangles, because most of those 1000 lines of code is just initialization and you will never write them again! ;-)
You got me there 😂
I love your channel man even tho that " by no means you're not an expert on this topic" 😛😛
I appreciate that, thanks Recursion!
I want to see a fusion 360 or blender using wGPU and rust
That would be interesting! Hopefully open source too.
I think at the end you forgot vulkan also works on Windows
True, missed that detail 🥲
Vulkan was designed by AMD. Only when they understood that no one cares about an AMD-only API, they tossed it to Khronos and forgot about it themselves.
Oh interesting! I did not know that.
Great content. Spend time on Q/A to assure all of the companies and/or words you are saying, are pronounced correctly. “Dassault” is pronounced like ‘Da-Soh’ not like the word assault with a “d” at the beginning. It is important to remember that when you are putting content online that nearly 20,000 people have consumed within the past five days, that for some viewers also responsible for helping them learn the vernacular. You are effectively giving a lesson here, so you need to make sure that it is as accurate possible.
Thank you!
In my defense, I did watch a video about how to pronounce Dassault Systemes last year. I've spent months writing and rewriting this script and I just forgot about the pronunciation by the time I recorded.
One a side note: I thought that WebGPU was a niche topic. I did not expect this video to get this many views. I'm actually really hyped that so many people are interested in learning more about WebGPU!
WebGPU is great since it will allow gaming on Web! We will be able to publish demos of our games! On the other hand it will not dominate native gaming since it performance could never match native, so UE5 will still use Metal or Vulkan as backend
I'd love to see more games made directly on the web! I actually think of Figma as a video game that disguises itself as a design tool.
@@SuboptimalEng we have web based care game 😉
Right now it's currently working draft, not standard yet.
You seem to act like Vulkan doesn't run in multiple places. It's not for the browser, but it does run everywhere else. You don't actually need directx or metal.
Do you have a Discord Community ?
I’m more of a lurker on other peoples discord channels. I do use Twitter quite a bit though!
@@SuboptimalEng ohh...I'm not on Twitter.
But I'm in a few Discord Servers. If you are active on Discord we could connect there. I'm planning to get into 3D Web Development and Graphics.
I'm currently learning React and I plan to get into React Three Fiber and then ThreeJS and WebGPU later in the year.
Vulcan and Metal are based on AMD's Mantle... Thats why they are so similar 😂
I thought Metal was much easier to work with than Vulkan tho?
I think web is getting to be a very ineficient vm made out of many parts that have nothing to do with the final state and bogged down by decades of compatibility targets!
this video is all over the place..
So is the graphics industry, until WebGPU 😉
What is it? It's more of "you won't own anything, we'll let you use it under very controlled scenarios at very expensive prices because we buy all of it up so you can't."
Every time you said “And for that reason”, I expected you to say “I m out”
Heh. I’m all in on the future of web graphics!
Before you take his deal I want to talk to you about licensing
On that last point nobody needs direct X. Now that the Xbox is dead hopefully dx will follow.
I stopped at 4:32.
Assumptions, TV-box, octaCore snap dragon expensive nor, runs webGPU, browser-plugin on mobile-phome runs webGL and user draw triangle using scalable-vector presentation-software as WYSIWYG rapid-program-development and convert scalable-vector graphics to game-engine API...
I am retired and leaving the expensive for the in-the rat-race people. Just got an update to tech interfaces... Thanks.
Oh, and CAD-CAM circa 1992 with sticker plotter printer cutter 3D painting oops printing model with 2 roll bar and a laser drum and laser heating edge and powder and inkjet and scanner-calibration and camera-calibration... heads... Or something old-tech lumped together to aim heat and stick powder before-after ion drum... Small room...
What in the non euclidean fuck?
I thought I was the only one confused about this comment 😅
@@cold_ultra why you give a fuck.? Try - don't give a fuck.
@engchoontan8483 u good bro? You are giving off a few sings of having a stroke
flormp
Yet another nice name. 😒😒😒😒
An other generic "hot shit" supported by "high tech companies" which will abandon this for the next "hot shit" in roughly two seconds from now on. By the way the same "big tech companies" (who are big because of their money not because of their ideas) strongly go against an open Internet by introducing "hot shit" after "hot shit" again.
I have been really excided when i first heard about it and thought it would be revolutionary for a lot of software but i feel like there havent been a lot of big projects(maybe exept figma) that use it.
Technically Figma started WebGL and still uses it heavily.
I believe that WebGPU will enable engineers to port apps (that are more complex than 2D design tools like Figma) to the web.
This makes me falling in love with game making again 🥲
Don’t do that. Don’t give me hope 🥲
@@SuboptimalEng yes please don't 🥲