Тёмный

Modern OpenGL Tutorial - Direct State Access (DSA) 

Victor Gordan
Подписаться 13 тыс.
Просмотров 38 тыс.
50% 1

Опубликовано:

 

15 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 99   
@zyapguy
@zyapguy 2 года назад
Interesting video. I never knew that things changed so much in newer versions of OpenGL. Great vid Victor!
@VictorGordan
@VictorGordan 2 года назад
Thank you, your videos are also nice! :) Yeah, quite a few things changed in the newer versions. I'll make some follow-up videos with other modern features.
@oraz.
@oraz. 2 года назад
This looks much better. The binding stuff always seemed archaic.
@VictorGordan
@VictorGordan 2 года назад
Yeah, all that binding felt a bit weird to me as well 😅
@graphicsrush
@graphicsrush 2 года назад
Nice video. DSA is *significantly* underrated in the OGL community and has serious potential!
@VictorGordan
@VictorGordan 2 года назад
Thank you! :)
@chris_burrows
@chris_burrows 2 года назад
Not enough content on the late OpenGL features. Thanks for the hard work man!
@VictorGordan
@VictorGordan 2 года назад
Planning to put out more Modern OpenGL videos. Next should be Compute Shaders ;)
@chris_burrows
@chris_burrows 2 года назад
@@VictorGordan Awesome man, I followed a tutorial once that wrote color values into a texture buffer with a compute shader but it'd be cool to see something that used it to process data more, or I suppose then you just use Cuda when the data has nothing to do with color.
@justarandomspaceenthusiast5187
@justarandomspaceenthusiast5187 2 года назад
DSA really helps in terms of performance. I’m currently having two separate but similar OpenGL projects, one to follow your original OpenGL tutorial (currently pausing at the Lighting one), one to fiddle around with (also does the same job as the tutorial one). I ported the DSA code to the latter project, and it barely produce any lag when moving around the pyramid, compare to the former OpenGL project, which does have some minor but noticeable lag. I’m not mocking your tutorial of any kind, I’m actually really appreciating that you made the tutorial playlist.
@VictorGordan
@VictorGordan 2 года назад
Thank you for the kind words! :) Glad you're enjoying my playlist!
@onkarshinde2033
@onkarshinde2033 2 года назад
Great video. Short, simple and very effective to understand things👍
@VictorGordan
@VictorGordan 2 года назад
Good to hear it was effective :)
@TheJoKeR7
@TheJoKeR7 2 года назад
Very good video ! would love to see other AZDO principles in OpenGL like the persistent mapping and all ! keep it up man you deserve a lot more view and subs !
@TheAwakeningMission
@TheAwakeningMission 2 года назад
Subscribed without actually watch a single video, just because "OpenGL". Your channel seems promising.
@VictorGordan
@VictorGordan 2 года назад
Haha thx. Might wanna give the videos a watch though :p
@discreet_boson
@discreet_boson 2 года назад
Suuuper helpful vid! I couldn't find a single table of non-dsa vs dsa on the net
@VictorGordan
@VictorGordan 2 года назад
Glad it was helpful :)
@daven9536
@daven9536 2 года назад
Short, clear, to the point. Subscribed.
@VictorGordan
@VictorGordan 2 года назад
Good to have you aboard ;)
@joysaha3927
@joysaha3927 2 года назад
Great video! Please continue making videos on SFML & ImGui. Thanks!👍
@VictorGordan
@VictorGordan 2 года назад
Thanks! I doubt I'll make any videos on SFML and ImGui anytime soon :(
@joysaha3927
@joysaha3927 2 года назад
@@VictorGordan :(
@Byynx
@Byynx Год назад
Always well made and explained videos.
@RagnarokFate
@RagnarokFate 2 года назад
I recommend to not unwatch this video, interesting topic right here!!!
@xinaesthetic
@xinaesthetic 2 года назад
Thanks, having watched the video I'll try to make sure not to unwatch it. ;)
@toast1797
@toast1797 2 года назад
YESSS one of the less known feature of modern OpenGL!
@VictorGordan
@VictorGordan 2 года назад
I'll be covering even more soon enough ;)
@undeadpresident
@undeadpresident 3 месяца назад
So does the glProgramUniform1i function not work for textures? At 3:23 you do BindTextureUnit then glUniform1i which is non-DSA?
@kylevondra
@kylevondra 2 года назад
Great video!! Love to see it
@VictorGordan
@VictorGordan 2 года назад
Thanks for the continuous support! :)
@SUUHOO-i4g
@SUUHOO-i4g Год назад
hello victor! To train opengl skill, I was watch in your opengl tutorial class after yesterday. My question is that, it's okay to use DSA for binding/unbinding as above to practice the openGL tutorials? p.s. I'm korean, so I translated it once and understood it, but I haven't met anyone who explains opengl better than you. Really thank you :)
@VictorGordan
@VictorGordan Год назад
Yes, you can do my original tutorials using DSA
@ZFCaio
@ZFCaio 2 года назад
Great video man, keep it up!
@VictorGordan
@VictorGordan 2 года назад
Will do! :)
@maxencedupont5523
@maxencedupont5523 2 года назад
great video as always
@VictorGordan
@VictorGordan 2 года назад
Thank you! :)
@coderedart
@coderedart 2 года назад
great video. modern gl resources are so rare :( immediately subscribed
@VictorGordan
@VictorGordan 2 года назад
Thx! :)
@luuminhhuy9459
@luuminhhuy9459 2 года назад
Your tutorial is really helpful. Just one question: What Visual Studio theme you are using in this video?
@VictorGordan
@VictorGordan 2 года назад
One Dark Pro ;)
@saraboccaletti5726
@saraboccaletti5726 2 года назад
Keep up the hard work 🎉
@VictorGordan
@VictorGordan 2 года назад
@etaashmathamsetty7399
@etaashmathamsetty7399 2 года назад
does this significantly improve perf or is it only a small amount? (worse case, with 1000s of objects on screen and stuff)
@VictorGordan
@VictorGordan 2 года назад
I would say it improves it in the worse case scenario like you said. It's more about convenience and lowering the chance of a binding related bug rather than performance improving ;)
@codeblend5225
@codeblend5225 2 года назад
Love your videos. keep up the good work.
@VictorGordan
@VictorGordan 2 года назад
Thanks!
@codeblend5225
@codeblend5225 2 года назад
btw, I am following your openGL course and I am at ep-13 (loading models). my models are not showing up. I matched my code with the source code and even pasted your code to check my setup, but nothing seems to be working. however, when I draw a light object, the model renders but without the textures.
@codeblend5225
@codeblend5225 2 года назад
and really sorry for bringing up the topic from past tutorials.
@VictorGordan
@VictorGordan 2 года назад
Sadly there are many many things that can go wrong with model loading, so I can't really help you with that 😅 It might be a problem with the models tho, rather than the code itself
@codeblend5225
@codeblend5225 2 года назад
thanks but, the thing is that I have tried everything 😔. and the only possible way now is to use an external library for importing models. is it okay if I do that. but I will go through your tutorials and create this engine from scratch once again before that.
@jgcodes2020
@jgcodes2020 11 месяцев назад
Bonus of DSA is that it's easier to wrap OpenGL objects into classes, which can make the code even more readable.
@bassbatterer
@bassbatterer 2 года назад
nice vid, didnt even know about this.
@VictorGordan
@VictorGordan 2 года назад
Thx! :) Hope u'll find it useful!
@CodeParticles
@CodeParticles 2 года назад
@Victor Gordan, Sheesh I'm so used to doing it the non DSA way that doing it the new way is almost intimidating. But if it's considerably more efficient I suppose there's no choice no? 🤔🤔
@VictorGordan
@VictorGordan 2 года назад
I mean you can just do it the old way if you like it that much haha. The old way also allows you to have support for older devices that don't support OpenGL 4.5 ;)
@ohfacts
@ohfacts 6 месяцев назад
Could you make a series on azdo opengl techniques?
@stackyoverflocky5199
@stackyoverflocky5199 2 года назад
Aren 't you going to do some lessons on Vulcan ? :)
@VictorGordan
@VictorGordan 2 года назад
Maybe at some point in the future, but for now I'll focus on OpenGL and Computer Graphics in general
@jonatanlind5408
@jonatanlind5408 2 года назад
Really interesting features presented here Now that I no longer need to bind created resources to the active context does that also mean I can use multithreading as in DirectX? btw I really like this it's short and concise :)
@VictorGordan
@VictorGordan 2 года назад
Yes, I believe you can use multithreading to a certain extent. Not with VAOs, or Framebuffers since those still have to be binded, but with VBOs it should work in theory (I never tried it myself). Try it out and see if it works out ;)
@ClayWheeler
@ClayWheeler 2 года назад
So that's how OpenGL progressed so far. How about Gnmx as in PlayStation 4? I'm still curious about PlayStation 5 API
@VictorGordan
@VictorGordan 2 года назад
I know nothing about consoles, sorry haha
@Subdest
@Subdest 2 года назад
Is this calls thread safe? Can texture/vbo/vao created and populated with data from other thread?
@VictorGordan
@VictorGordan 2 года назад
Idk, never tried to multi-thread OpenGL :(
@Subdest
@Subdest 2 года назад
@@VictorGordan from my experience (I work with OpenGL ES, Vulkan, Metal) OpenGL is very bad in that :(. Even if you create a shared context and try upload some data - it will block rendering thread (somewhere in drivers). As a result you have to create temporary buffers, send them to render thread and upload data with rendering. And ofc you have to limit amount of data to upload or you will have frame drops. Metal is shining in that (you can create objects and upload data at any time/thread and you will not see any blocks in rendering). Vulkan is still unusable - too many bugs in drivers on many popular mobile devices :(
@debsarkar4893
@debsarkar4893 Месяц назад
What theme in vs 2022 is he using
@swordoman2158
@swordoman2158 2 года назад
Hmmm, I wonder what is the key difference between the glGen* and glCreate* functions? I Always thought they did pretty much the same thing before this video
@VictorGordan
@VictorGordan 2 года назад
As far as I know, glGen only creates an object ID, and the object itself gets initialized when you bind it, while glCreate also initializes the object, and for most objects it also removes the need to bind it as mentioned in the video ;)
@swordoman2158
@swordoman2158 2 года назад
@@VictorGordan Ok, it's clearer now! Thank you 😃
@alexjulius69
@alexjulius69 2 года назад
GOSH, I'm still struggling with grasping wtf is going on with the NON-DSA version, feel like I'm 10 years behind the current tech level. How do people learn this? In universities they don't teach you this as they don't adapt quickly enough... so how? How do developers learn all of this
@VictorGordan
@VictorGordan 2 года назад
Imo DSA is easier than non-DSA (conceptually speaking). As to how I learn the newer stuff, I usually hear about it from other devs, and then I either look for a tutorial (which is rly hard to find or non-existent usually), or I look at the official documentation (which is a pain to read, but useful). I learnt 0 computer graphics from my university.
@sneper53
@sneper53 2 года назад
so, What is your discord server?
@VictorGordan
@VictorGordan 2 года назад
It's in the description of the video
@WeaselDev
@WeaselDev 2 года назад
Didn't had time yet to test out the performance difference for my engine, but I can at very least clearly see the convenience of it haha. Goodbye dumb bindings!
@VictorGordan
@VictorGordan 2 года назад
Also a small tip, when you do have to bind stuff like VAOs or Framebuffers, make a variable on the CPU side "bindedVAO" that keeps track of the binded VAO, and before binding a VAO make sure it is different from that variable. An if statement on the CPU should be much faster than sending an instruction to the GPU ;)
@WeaselDev
@WeaselDev 2 года назад
@@VictorGordan Could that also apply to a texture binding call ?
@VictorGordan
@VictorGordan 2 года назад
I believe so, yeah
@SianaGearz
@SianaGearz 2 года назад
cries in target spec: OpenGL 3.1 OK maybe 4.0. (after fighting with a few thousand users having unique OpenGL driver issues) oh sod it, i'm porting to DX11.
@kerasus0028
@kerasus0028 2 года назад
i've always found weird the binding part of creating buffers in opengl
@VictorGordan
@VictorGordan 2 года назад
Yeah, if you don't have any previous experience with state machines, then it's really weird, and it feels sort of pointless, just work for the sake of work
@sneper53
@sneper53 2 года назад
Hey Victor, where I can contact you if I have any questions. Can you say your email?
@VictorGordan
@VictorGordan 2 года назад
You can write a comment here, or join the Discord server and ask there
@chrishbeatboxing2291
@chrishbeatboxing2291 2 года назад
sadly mac only supports up to 4.1
@VictorGordan
@VictorGordan 2 года назад
Yeah, I've heard :(
@hengstus8411
@hengstus8411 2 года назад
It's a shame that OpenGL is now falling by the wayside, since the modern versions (4.5 and above) are quite good!
@VictorGordan
@VictorGordan 2 года назад
As long as Vulkan will also add a good way of skipping the boilerplate and having higher level control like OpenGL, as opposed to the base low level control Vulkan has, I am ok with it :)
@MaZe741
@MaZe741 2 года назад
Just saying, the thumbnail kinda reads "NO MORE OPENGL"
@VictorGordan
@VictorGordan 2 года назад
I know!!! haha I thought the same thing, but I really couldn't come up with a better one, cause let's be honest, it's a pretty "boring" concept and video. Plus that if you read it like that it's sort of intriguing imo, might be part of the reason people clicked on the video ;)
@pw1169
@pw1169 2 года назад
Good video on why opengl is so terrible. Why would anyone use it in 2022?
@VictorGordan
@VictorGordan 2 года назад
What exactly are you comparing it to?
@pw1169
@pw1169 2 года назад
@@VictorGordan Any other API, Vulkan, DX, Metal, literally anything
@VictorGordan
@VictorGordan 2 года назад
Vulkan requires a lot of boilerplate code, DX is Windows only, Metal in Apple only. If you are new to computer graphics, I think OpenGL is one of the best ways to start learning. Especially since there are way more materials online to learn OpenGL compared to the other APIs you mentioned. So that's why I'd say people still use it ;)
@Eugene-Polyakov
@Eugene-Polyakov 2 года назад
30 лет жили без DSA и ничего. Откровенно бесполезная фигня, для поклонников Direct3D пойдёт.
Далее
Modern OpenGL Tutorial - Compute Shaders
11:27
Просмотров 60 тыс.
ITZY "GOLD" M/V
03:20
Просмотров 6 млн
OpenGL Alternatives
13:12
Просмотров 14 тыс.
Modern OpenGL Tutorial - Tessellation Shaders
7:59
Просмотров 19 тыс.
Direct State Access // OpenGL Tutorial #50
22:56
Просмотров 4,8 тыс.
I Made a Drawing Software From Scratch (C++ & OpenGL)
11:05
Let's Program Doom - Part 1
25:13
Просмотров 441 тыс.
An introduction to Shader Art Coding
22:40
Просмотров 991 тыс.
Making a GAME in ONE HOUR using MY ENGINE
25:51
Просмотров 354 тыс.
ITZY "GOLD" M/V
03:20
Просмотров 6 млн